fix(codecs): prevent spurious timestamp injection in OTLP trace events#25404
Open
kimjune01 wants to merge 1 commit intovectordotdev:masterfrom
Open
fix(codecs): prevent spurious timestamp injection in OTLP trace events#25404kimjune01 wants to merge 1 commit intovectordotdev:masterfrom
kimjune01 wants to merge 1 commit intovectordotdev:masterfrom
Conversation
When using `LogNamespace::Legacy`, the ProtobufDeserializer injects a timestamp into log events. However, this behavior should not apply to trace events, as the log_namespace concept is logs-specific. This fix ensures that trace events are always parsed with `LogNamespace::Vector`, preventing the spurious timestamp injection while maintaining compatibility with the OTLP trace specification. Fixes vectordotdev#25045
Contributor
|
All contributors have signed the CLA ✍️ ✅ |
Author
|
I have read the CLA Document and I hereby sign the CLA |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
When
log_namespaceisLegacy, the OTLP deserializer forwards the raw namespace to the innerProtobufDeserializer. For log events this is correct — legacy mode injects atimestampfield. But trace events also flowed through this path, andProtobufDeserializerinjected a spurious timestamp into the trace payload.This forces
LogNamespace::Vectorwhen deserializing traces, since the log namespace concept doesn't apply to trace events. TheTODOcomment referencing #25045 is replaced by the fix.How did you test this PR?
Added
deserialize_traces_with_legacy_namespace_should_not_inject_timestamp— parses a trace request underLogNamespace::Legacyand asserts no timestamp key is present at the root level.Change Type