feat(trace-utils)!: add v1 decoder#2174
Conversation
Clippy Allow Annotation ReportTracked Clippy
By file and crateBy file
By crate
About This ReportThis report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality. Panic-inducing macros in particular should be avoided. In the future, this report may become a PR-blocking quality gate. |
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 8245c33 | Docs | Datadog PR Page | Give us feedback! |
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5434161c71
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
ajgajg1134
left a comment
There was a problem hiding this comment.
Another thing we can do here to build confidence in the decoder is take the working dd-trace-go implementation and generate a bunch of various traces and put them just in to flat files, then decode them with this implementation and the trace-agent implementation to make sure they align? (Maybe there's an easier way to check this though)
ekump
left a comment
There was a problem hiding this comment.
Approving as none of my suggestions are blocking. But, I think mine, @Aaalibaba42 and @yannham's suggestions are simple enough that they can be addressed before merging and will improve the decoder.
…cto-2' into anais/add-v1-decoder # Conflicts: # libdd-trace-utils/src/tracer_payload.rs
BenchmarksComparisonBenchmark execution time: 2026-07-20 09:49:24 Comparing candidate commit a2fbd74 in PR branch Found 1 performance improvements and 2 performance regressions! Performance is the same for 136 metrics, 0 unstable metrics.
|
# Conflicts: # libdd-data-pipeline/src/trace_exporter/trace_serializer.rs # libdd-trace-utils/tests/test_send_data.rs
ajgajg1134
left a comment
There was a problem hiding this comment.
From a V1 perspective this looks good! (And I saw some new rust things I don't see often so that was cool 😎 )
What does this PR do?
Adds a V1 msgpack decoder in
libdd-trace-utilsand wires the V1 variant through the trace pipeline so any V1 payload can be decoded, inspected, and re-encoded.Motivation
APMSP-2813 : Prerequisite for the sidecar V1-native path. Splitting out the
libdd-trace-utils/libdd-data-pipelineplumbing so it can land before the sidecar wiring.Additional Notes
trace_serializer.rsnow dispatches on(TraceChunks, OutputFormat); the existing v0.4 → V1 cross-encode path is preserved.trace_utils::collect_trace_chunksrenamed toconvert_trace_chunks_v04_to_v05.