otlp: add suport for lazy deserializing otel protobuf messages #1056
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.
This enable support for lazy deserializing of OTLP protobuf messages. By default nothing is actually changed, the added
Unmarshalon a message that wasn't lazy deserializing simply return what was deserialized and can't fail.Importantly, this PR changes the OpenTelemetry
pdatapackage to a fork https://github.com/grafana/opentelemetry-collector, but there is an open pull request to upstream the changes topdata, see open-telemetry/opentelemetry-collector#14371Related: grafana/mimir#13962
Does this PR introduce a user-facing change?
Note
Introduces lazy deserialization for OTLP metrics and adopts a forked
pdatato enable it.go.opentelemetry.io/collector/pdatawithgithub.com/grafana/opentelemetry-collector/pdataviago.modreplace; updatesgo.sumaccordinglymetrics_to_prw.go, reads metrics withmetricSlice.Unmarshal(k, &metric)instead ofAt(k), adding error handling while keeping downstream processing unchangedWritten by Cursor Bugbot for commit 7bcd4da. This will update automatically on new commits. Configure here.