in universal-profiling-integration/src/main/java/co/elastic/otel/hostid/ProfilerHostIdApplyingSpanExporter.java [38:68]
public CompletableResultCode export(Collection<SpanData> collection) {
// do a pre-check to avoid unnecessary allocations
boolean anyUpdatesRequired =
collection.stream()
.anyMatch(
data ->
data.getResource()
!= ProfilerHostIdResourceUpdater.applyHostId(data.getResource()));
Collection<SpanData> updatedSpanData = collection;
if (anyUpdatesRequired) {
updatedSpanData =
collection.stream()
.map(
data -> {
Resource original = data.getResource();
Resource updated = ProfilerHostIdResourceUpdater.applyHostId(original);
if (original != updated) {
return new DelegatingSpanData(data) {
@Override
public Resource getResource() {
return updated;
}
};
} else {
return data;
}
})
.collect(Collectors.toList());
}
return delegate.export(updatedSpanData);
}