You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Wires the sidecar so SDKs (PHP first) can send V1 msgpack payloads. Adds the FFI entry points, tarpc methods, blocking/sender wrappers, and server handlers — symmetric to the existing send_trace_v04_* chain.
When the sidecar receives V1 bytes, it decodes them through msgpack_decoder::v1 (added in #2174), can inspect the payload, and re-encodes as V1 on the way to the agent's /v1.0/traces endpoint.
Motivation
APMSP-2813 : enable the sidecar V1-native path. PHP keeps computing its stats SDK-side via the SHM concentrator, so this PR only touches the trace transport pipeline.
Additional Notes
⚠️Do not merge before #2174 — this PR depends on the V1 decoder + plumbing landed there. Once that's merged, rebase this branch on main and the decoder commit will drop automatically.
Files reviewers should focus on (sidecar-specific only — the rest comes from the decoder PR):
datadog-sidecar/src/service/sidecar_server.rs — tarpc handlers + the internal send_trace_v1 helper (factored through a shared send_trace(... TraceEncoding))
This 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.
The reason will be displayed to describe this comment to others. Learn more.
Do we still have SerializedTracerHeaderTags with v1?
Well, yes, we do, but only for the booleans, the string values in TracerHeaderTags are part of the Payload now.
As is, I believe this is going to send datadog-meta-lang: <empty string> and the other headers too in <TracerHeaderTags as HeaderMap>::from?
Maybe we need to split TracerHeaderTags in two parts, one for the generic headers like stats-computation (which are just bools/ints, and can be transferred without dedicated SerializedTracerHeaderTags), and one containing the strings and embedding the new struct.
Base automatically changed from
anais/add-v1-decoder to
mainJuly 17, 2026 17:57
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
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.
What does this PR do?
Wires the sidecar so SDKs (PHP first) can send V1 msgpack payloads. Adds the FFI entry points, tarpc methods, blocking/sender wrappers, and server handlers — symmetric to the existing
send_trace_v04_*chain.When the sidecar receives V1 bytes, it decodes them through
msgpack_decoder::v1(added in #2174), can inspect the payload, and re-encodes as V1 on the way to the agent's/v1.0/tracesendpoint.Motivation
APMSP-2813 : enable the sidecar V1-native path. PHP keeps computing its stats SDK-side via the SHM concentrator, so this PR only touches the trace transport pipeline.
Additional Notes
Files reviewers should focus on (sidecar-specific only — the rest comes from the decoder PR):
datadog-sidecar-ffi/src/lib.rs—ddog_sidecar_send_trace_v1_{shm,bytes}FFI exportsdatadog-sidecar/src/service/sidecar_interface.rs— tarpc trait methodssend_trace_v1_{shm,bytes}datadog-sidecar/src/service/sender.rs—TransportSender::send_trace_v1_{shm,bytes}datadog-sidecar/src/service/blocking.rs— blocking wrappersdatadog-sidecar/src/service/sidecar_server.rs— tarpc handlers + the internalsend_trace_v1helper (factored through a sharedsend_trace(... TraceEncoding))