Skip to content

chore(config): use typed OTLP traces configuration - #2260

Merged
webern merged 1 commit into
mainfrom
m/confra-trcfg
Aug 6, 2026
Merged

chore(config): use typed OTLP traces configuration#2260
webern merged 1 commit into
mainfrom
m/confra-trcfg

Conversation

@webern

@webern webern commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Replace the local OTLP trace configuration with the resolved typed otlp::Traces model across the OTLP source, decoder, and trace translator. This removes duplicate configuration fields and keeps the interner size and trace options on one configuration path.

Change Type

  • Non-functional (chore, refactoring, docs)

How did you test this PR?

  • make fmt
  • make check-docs
  • make check-clippy
  • make check-all
  • Targeted OTLP trace translator tests
  • cargo check -p agent-data-plane --tests

References

@dd-octo-sts dd-octo-sts Bot added area/components Sources, transforms, and destinations. source/otlp OTLP source. decoders/otlp labels Aug 5, 2026
@pr-commenter

pr-commenter Bot commented Aug 5, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: ae0fae9 · Comparison: ada1d81 · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 41.50 MiB (baseline) vs 41.50 MiB (comparison)
Size Change: -1.20 KiB (-0.00%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
anon.4a29db1e19c408ff1e16e39b748f19e4.1182.llvm.16037465561292757490 -17.80 KiB 1
anon.4a29db1e19c408ff1e16e39b748f19e4.1182.llvm.6244214685882301534 +17.79 KiB 1
anon.4a29db1e19c408ff1e16e39b748f19e4.525.llvm.16037465561292757490 -9.71 KiB 1
anon.4a29db1e19c408ff1e16e39b748f19e4.525.llvm.6244214685882301534 +9.71 KiB 1
anon.4a29db1e19c408ff1e16e39b748f19e4.1066.llvm.16037465561292757490 -9.16 KiB 1
anon.4a29db1e19c408ff1e16e39b748f19e4.1066.llvm.6244214685882301534 +9.15 KiB 1
anon.4a29db1e19c408ff1e16e39b748f19e4.16.llvm.16037465561292757490 -8.84 KiB 1
anon.4a29db1e19c408ff1e16e39b748f19e4.16.llvm.6244214685882301534 +8.84 KiB 1
saluki_io::deser::framing -7.58 KiB 4
saluki_components::sources::dogstatsd +6.99 KiB 20
anon.c4b332ddd4d20c9bd979b2ea15d086f9.478.llvm.11458168340857200966 +2.15 KiB 1
anon.c4b332ddd4d20c9bd979b2ea15d086f9.478.llvm.14305262117607595878 -2.15 KiB 1
anon.4a29db1e19c408ff1e16e39b748f19e4.164.llvm.16037465561292757490 -1.86 KiB 1
anon.4a29db1e19c408ff1e16e39b748f19e4.164.llvm.6244214685882301534 +1.86 KiB 1
anon.0e7d4892d801ce7dd46e546bca24a825.293.llvm.10221113605552022564 -1.77 KiB 1
anon.f9e43ab12424bff38d6cf49350e326fe.298.llvm.9688340638093320765 +1.77 KiB 1
anon.c4b332ddd4d20c9bd979b2ea15d086f9.389.llvm.11458168340857200966 +1.58 KiB 1
anon.c4b332ddd4d20c9bd979b2ea15d086f9.389.llvm.14305262117607595878 -1.58 KiB 1
anon.c4b332ddd4d20c9bd979b2ea15d086f9.384.llvm.11458168340857200966 +1.23 KiB 1
anon.c4b332ddd4d20c9bd979b2ea15d086f9.384.llvm.14305262117607595878 -1.23 KiB 1
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW] +17.8Ki  [NEW]     +76    anon.4a29db1e19c408ff1e16e39b748f19e4.1182.llvm.6244214685882301534
  [NEW] +9.71Ki  [NEW]     +79    anon.4a29db1e19c408ff1e16e39b748f19e4.525.llvm.6244214685882301534
  [NEW] +9.15Ki  [NEW]     +91    anon.4a29db1e19c408ff1e16e39b748f19e4.1066.llvm.6244214685882301534
  [NEW] +8.84Ki  [NEW]     +81    anon.4a29db1e19c408ff1e16e39b748f19e4.16.llvm.6244214685882301534
  [NEW] +7.14Ki  [NEW] +6.97Ki    _<saluki_components::sources::dogstatsd::framer::DsdFramer as saluki_io::deser::framing::Framer>::next_frame::hc27c705b3a6be4c8
  [NEW] +2.73Ki  [NEW]    +157    std::sync::poison::mutex::Mutex<T>::lock::h163fa9f97ebffad7
  [NEW] +2.15Ki  [NEW]    +101    anon.c4b332ddd4d20c9bd979b2ea15d086f9.478.llvm.11458168340857200966
  [NEW] +1.86Ki  [NEW]     +95    anon.4a29db1e19c408ff1e16e39b748f19e4.164.llvm.6244214685882301534
  [NEW] +1.77Ki  [NEW] +1.68Ki    anon.f9e43ab12424bff38d6cf49350e326fe.298.llvm.9688340638093320765
  [NEW] +1.58Ki  [NEW]     +80    anon.c4b332ddd4d20c9bd979b2ea15d086f9.389.llvm.11458168340857200966
  [DEL] -1.62Ki  [DEL] -1.46Ki    _<saluki_io::deser::framing::newline::NewlineFramer as saluki_io::deser::framing::Framer>::next_frame::ha411bb9ec3b8d04f
  [DEL] -1.77Ki  [DEL] -1.68Ki    anon.0e7d4892d801ce7dd46e546bca24a825.293.llvm.10221113605552022564
  [DEL] -1.86Ki  [DEL]     -95    anon.4a29db1e19c408ff1e16e39b748f19e4.164.llvm.16037465561292757490
  [DEL] -2.15Ki  [DEL]    -101    anon.c4b332ddd4d20c9bd979b2ea15d086f9.478.llvm.14305262117607595878
  -0.1% -2.33Ki  +0.0%    +216    [5261 Others]
  [DEL] -2.73Ki  [DEL]    -157    std::sync::poison::mutex::Mutex<T>::lock::h0466917236bf0577
  [DEL] -5.96Ki  [DEL] -5.79Ki    _<saluki_io::deser::framing::NestedFramer<Inner,Outer> as saluki_io::deser::framing::Framer>::next_frame::h80ac341ce8e3f625
  [DEL] -8.84Ki  [DEL]     -81    anon.4a29db1e19c408ff1e16e39b748f19e4.16.llvm.16037465561292757490
  [DEL] -9.16Ki  [DEL]     -91    anon.4a29db1e19c408ff1e16e39b748f19e4.1066.llvm.16037465561292757490
  [DEL] -9.71Ki  [DEL]     -79    anon.4a29db1e19c408ff1e16e39b748f19e4.525.llvm.16037465561292757490
  [DEL] -17.8Ki  [DEL]     -76    anon.4a29db1e19c408ff1e16e39b748f19e4.1182.llvm.16037465561292757490
  -0.0% -1.20Ki  +0.0%     +16    TOTAL

@pr-commenter

pr-commenter Bot commented Aug 5, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: b1b55208-149c-4d7f-a127-963c59bc4442
Baseline: c3563758 · Comparison: 007041c4 · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (5)

Experiments configured erratic: true are tagged (ignored) and skipped when determining which experiments regressed or improved. Experiments which are detected as erratic at runtime are tagged (erratic) to flag that the run's sample dispersion was high, but their regression / improvement signal still counts.

experiment goal Δ mean % links
quality_gates_rss_idle memory ⚪ -0.36 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ -0.45 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ -0.52 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ -0.80 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ -1.03 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 139 MiB ≤ 145 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 49.7 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 76.4 MiB ≤ 80 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 202 MiB ≤ 205 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 31.9 MiB ≤ 40 MiB metrics profiles logs
Explanation

A change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression (is_regression: true). Improvements use the matching criteria for the improving direction. Experiments configured erratic: true (tagged (ignored)) are skipped outright; experiments detected as erratic at runtime (tagged (erratic)) still count, since that flag describes sample dispersion rather than directional certainty. The Δ mean % cell is colored accordingly: 🟢 = improvement, 🔴 = regression, ⚪ = neutral. Reduction in CPU or memory is an improvement; reduction in ingress throughput is a regression.

@datadog-datadog-prod-us1-2 datadog-datadog-prod-us1-2 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: PASS

More details

The typed OTLP trace model preserves the prior translator flags and now carries the validated interner size through both native ingestion and proxy decoding; no diff-only behavioral regression was identified. Runtime adversarial execution was blocked before compilation because the sandbox could not fetch the repository's pinned hyper-http-proxy dependency.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Datadog Autotest · Commit 1b5d6d1 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

fn translate(resource_spans: ResourceSpans) -> Vec<Trace> {
let mut translator = OtlpTracesTranslator::new(TracesConfig::default(), NonZeroUsize::new(64 * 1024).unwrap());
let mut translator = OtlpTracesTranslator::new(domains::otlp::Traces {
string_interner_size: std::num::NonZeroUsize::new(64 * 1024).unwrap(),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trying to understand this bit... is this not actually configurable? If not, should it just be a constant somewhere instead of passing it in like this?

@datadog-datadog-prod-us1-2 datadog-datadog-prod-us1-2 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: PASS

More details

The typed configuration migration preserves the reviewed runtime paths: generated Datadog defaults still populate schema-backed sampler and OTLP values, while Saluki-only defaults and overrides seed the moved fields. No diff-only behavioral regression was found; runtime tests were blocked by unavailable Rust 1.94 and an uncached git dependency.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Datadog Autotest · Commit fd91e24 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

@webern
webern merged commit 18ea9f3 into main Aug 6, 2026
74 of 92 checks passed
@webern
webern deleted the m/confra-trcfg branch August 6, 2026 12:49
dd-octo-sts Bot pushed a commit that referenced this pull request Aug 6, 2026
## Summary

Replace the local OTLP trace configuration with the resolved typed
`otlp::Traces` model across the OTLP source, decoder, and trace
translator. This removes duplicate configuration fields and keeps the
interner size and trace options on one configuration path.

## Change Type
- [x] Non-functional (chore, refactoring, docs)

## How did you test this PR?

- `make fmt`
- `make check-docs`
- `make check-clippy`
- `make check-all`
- Targeted OTLP trace translator tests
- `cargo check -p agent-data-plane --tests`

## References

- Progresses #2169
- Progresses #2193 18ea9f3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/components Sources, transforms, and destinations. decoders/otlp source/otlp OTLP source.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants