feat(otlp): support http/protobuf OTLP trace export#18609
Conversation
Bumps the libdatadog git rev from v35.0.0 to 664f16fb (the OTLP HTTP/protobuf branch, libdatadog#2115). Renames the renamed crate datadog-remote-config -> libdd-remote-config and ports tracer_flare.rs to the redesigned RemoteConfigContent parse API (per-product parsing via AgentConfigFile/AgentTaskFile instead of the removed RemoteConfigData enum). Regenerates Cargo.lock. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Wires the new libdatadog set_otlp_protocol builder setter so OTLP trace export honors OTEL_EXPORTER_OTLP_TRACES_PROTOCOL. http/json (default) and http/protobuf are supported over HTTP; any other value (e.g. the OTel grpc default) falls back to http/json, preserving prior behavior. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Codeowners resolved as |
There was a problem hiding this comment.
This is to fix a breaking change in libdatadog
BenchmarksBenchmark execution time: 2026-06-12 21:46:47 Comparing candidate commit ecefde5 in PR branch Found 0 performance improvements and 7 performance regressions! Performance is the same for 609 metrics, 10 unstable metrics. scenario:iast_aspects-re_match_noaspect
scenario:iastaspects-capitalize_noaspect
scenario:iastaspects-title_aspect
scenario:iastaspectsospath-ospathbasename_aspect
scenario:iastaspectssplit-rsplit_aspect
scenario:span-start
scenario:telemetryaddmetric-1-count-metric-1-times
|
Description
Adds
http/protobufas a second OTLP trace-export encoding alongside the existinghttp/jsonpath. The encoding is selected from the OTel-standardOTEL_EXPORTER_OTLP_TRACES_PROTOCOLvalue and passed to libdatadog via the newset_otlp_protocolbuilder setter.http/json(default) andhttp/protobufare supported over HTTP.grpcdefault, which libdatadog can't speak) falls back tohttp/json, preserving pre-wiring behavior.This PR also bumps libdatadog from
v35.0.0to the OTLP branch (664f16fb, DataDog/libdatadog#2115), which the binding depends on. That bump pulls in thedatadog-remote-config→libdd-remote-configrename and the redesigned remote-config parsing API, sotracer_flare.rsis ported to parse per-product viaRemoteConfigContent(AgentConfigFile/AgentTaskFile).Depends on DataDog/libdatadog#2115. The
revis pinned to that PR's branch head; bump it to the squash-merge SHA (or the next libdatadog release that includes it) before merging.Testing
cargo check --all-featurespasses with 0 warnings against the bumped libdatadog rev.application/x-protobufon the wire (HTTP 200), spans landed with correct service/resource names and a preserved 128-bit trace id.http/jsonregression also confirmed (application/jsonwire, HTTP 200).APM_TRACING_OTLPprotobuf coverage: DataDog/system-tests companion PR.Risks
_otlp_endpointbeing set; non-OTLP export is unaffected.cargo check --all-featuresis green; full CI build/test should be watched once the rev is repointed at the merged libdatadog SHA.Additional Notes
Commits are split: (1) the libdatadog bump + tracer_flare port, (2) the OTLP protobuf feature.