feat(otlp): duplicate resource and instrumentation attrs into spans #4533
+179
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
OTLP trace payloads contain a nested structure wherein resources contain instrumentation scopes, and instrumentation scopes contain spans. The attributes set on the resource or instrumentation scope apply to all contained spans, and are useful to query and aggregate on at the span level. (For example, resource attributes conventionally contain the service name and version of the service emitting spans).
When converting incoming OTLP traces into individual
OtelSpan
items, denormalize these incoming extra attributes onto each span. This will make the data available in Sentry for viewing, searching, and aggregation. Prefix each attribute name with a prefix indicating its source so that attributes with the same name from different sources don't clobber each other.(We might change our mind on whether these attributes should be prefixed or not - that's fine as no one is using the OTLP endpoint or
OtlpSpan
envelope item type yet).In addition to an
attributes
dictionary, instrumentation scopes also havename
andversion
string properties. Copy those to spans too.