Skip to content

chore(metrics): route V3 metric intake paths as metrics traffic - #1760

Merged
tobz merged 1 commit into
tobz/datadog-metrics-v3-payload-supportfrom
rayz/metrics-v3-route-detection
May 29, 2026
Merged

chore(metrics): route V3 metric intake paths as metrics traffic#1760
tobz merged 1 commit into
tobz/datadog-metrics-v3-payload-supportfrom
rayz/metrics-v3-route-detection

Conversation

@rayz

@rayz rayz commented May 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Treat V3 metrics intake paths as metrics traffic for ADP forwarding/routing decisions.

This pr adds the Agent V3 series, V3 beta series, and V3 sketches routes to the shared metrics intake path list, and also recognizes a configured serializer_experimental_use_v3_api.series.beta_route as metrics traffic.

Change Type

  • Bug fix
  • New feature
  • Non-functional (chore, refactoring, docs)
  • Performance

How did you test this PR?

References

@dd-octo-sts dd-octo-sts Bot added area/components Sources, transforms, and destinations. encoder/datadog-metrics Datadog Metrics encoder. labels May 28, 2026
@rayz rayz changed the title route v3 intake paths chore(metrics): route V3 metric intake paths as metrics traffic May 28, 2026
@rayz
rayz marked this pull request as ready for review May 28, 2026 19:26
@rayz
rayz requested a review from a team as a code owner May 28, 2026 19:26
Copilot AI review requested due to automatic review settings May 28, 2026 19:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@pr-commenter

pr-commenter Bot commented May 28, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: 1ad7cde · Comparison: eaf9fa4 · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 37.65 MiB (baseline) vs 37.95 MiB (comparison)
Size Change: +306.18 KiB (+0.79%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
saluki_components::encoders::datadog +69.00 KiB 355
core +49.01 KiB 14499
prost -40.88 KiB 505
anyhow +40.07 KiB 1699
alloc +34.07 KiB 2402
hyper +29.64 KiB 583
figment +24.83 KiB 702
[sections] +22.85 KiB 9
saluki_components::sources::otlp -22.16 KiB 236
tonic_prost +15.78 KiB 74
saluki_components::common::datadog +15.15 KiB 440
hashbrown +13.72 KiB 1098
chrono -13.08 KiB 23
hyper_util -12.07 KiB 137
http +11.92 KiB 419
tonic +10.39 KiB 445
axum +9.93 KiB 422
tracing -9.78 KiB 175
tokio_rustls +8.97 KiB 93
tokio +8.68 KiB 4509
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +1.5%  +305Ki  +1.5%  +241Ki    [46991 Others]
  [NEW]  +136Ki  [NEW]  +136Ki    agent_data_plane::cli::run::handle_run_command::_{{closure}}::hf265beba717a8ffb
  [NEW] +66.7Ki  [NEW] +66.5Ki    saluki_core::topology::built::BuiltTopology::spawn::_{{closure}}::hef6f38503239c166
  [NEW] +66.1Ki  [NEW] +66.0Ki    agent_data_plane::cli::run::create_topology::_{{closure}}::hdcdf70adbde87ffc
  [NEW] +58.7Ki  [NEW] +58.5Ki    agent_data_plane::internal::env::workload::build_collector::_{{closure}}::ha56b75595a60c965
  [NEW] +58.2Ki  [NEW] +58.0Ki    saluki_core::topology::blueprint::TopologyBlueprint::build::_{{closure}}::hacbbeaf29f1d76dc
  [NEW] +57.1Ki  [NEW] +56.9Ki    agent_data_plane::internal::env::ADPEnvironmentProvider::from_configuration::_{{closure}}::hb77df6cc347f39b1
  [NEW] +56.7Ki  [NEW] +56.5Ki    agent_data_plane::cli::debug::handle_debug_command::_{{closure}}::ha2e6796c57380dae
  [NEW] +56.0Ki  [NEW] +55.8Ki    agent_data_plane::cli::dogstatsd::handle_dogstatsd_command::_{{closure}}::hb45f834f247c7f00
  [NEW] +49.8Ki  [NEW] +49.5Ki    agent_data_plane::main::_{{closure}}::hafe55c655b44bc0f
  [NEW] +49.7Ki  [NEW] +49.6Ki    core::ops::function::FnOnce::call_once::he29f19ec791745c2
  [DEL] -48.9Ki  [DEL] -48.8Ki    core::ops::function::FnOnce::call_once::h669ff363e842dff3
  [DEL] -49.7Ki  [DEL] -49.4Ki    agent_data_plane::main::_{{closure}}::h7d49a9469c34b899
  [DEL] -56.5Ki  [DEL] -56.3Ki    agent_data_plane::cli::dogstatsd::handle_dogstatsd_command::_{{closure}}::he79b0808df75cda1
  [DEL] -56.6Ki  [DEL] -56.4Ki    agent_data_plane::cli::debug::handle_debug_command::_{{closure}}::h7c655b6902e2f89a
  [DEL] -57.1Ki  [DEL] -56.9Ki    agent_data_plane::internal::env::ADPEnvironmentProvider::from_configuration::_{{closure}}::ha0920a2b79b02cce
  [DEL] -57.8Ki  [DEL] -57.6Ki    saluki_core::topology::blueprint::TopologyBlueprint::build::_{{closure}}::h32219546faa6f65a
  [DEL] -58.4Ki  [DEL] -58.2Ki    agent_data_plane::internal::env::workload::build_collector::_{{closure}}::ha8e6b4b93de14a84
  [DEL] -66.2Ki  [DEL] -66.0Ki    saluki_core::topology::built::BuiltTopology::spawn::_{{closure}}::hfe1e9d26bba4c0cd
  [DEL] -66.3Ki  [DEL] -66.1Ki    agent_data_plane::cli::run::create_topology::_{{closure}}::h9611a56813a60eb8
  [DEL]  -136Ki  [DEL]  -136Ki    agent_data_plane::cli::run::handle_run_command::_{{closure}}::h4399bd59161f275e
  +0.8%  +306Ki  +0.8%  +242Ki    TOTAL


fn is_metrics_request_uri(uri: &Uri) -> bool {
METRIC_INTAKE_PATHS.contains(&uri.path())
fn is_metrics_request_uri(uri: &Uri, v3_beta_series_route: &str) -> bool {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm not immediately understanding why we treat this separately. Is the beta path somehow dynamically configurable? 🤔

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@pr-commenter

pr-commenter Bot commented May 28, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: 4e2bc0c9-aa1f-4789-9029-2a6ab878c9b4
Baseline: 1ad7cde2 · Comparison: eaf9fa40 · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (35)

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
dsd_uds_1mb_3k_contexts_cpu (erratic) cpu ⚪ +4.66 metrics profiles logs
dsd_uds_10mb_3k_contexts_cpu (erratic) cpu ⚪ +3.09 metrics profiles logs
dsd_uds_500mb_3k_contexts_throughput throughput ⚪ -1.90 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_cpu (erratic) cpu ⚪ +1.72 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ +1.21 metrics profiles logs
quality_gates_rss_idle memory ⚪ +0.82 metrics profiles logs
dsd_uds_500mb_3k_contexts_memory memory ⚪ +0.72 metrics profiles logs
dsd_uds_1mb_3k_contexts_memory memory ⚪ +0.68 metrics profiles logs
dsd_uds_512kb_3k_contexts_memory memory ⚪ +0.61 metrics profiles logs
dsd_uds_100mb_3k_contexts_memory memory ⚪ +0.54 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_memory memory ⚪ +0.53 metrics profiles logs
dsd_uds_10mb_3k_contexts_memory memory ⚪ +0.51 metrics profiles logs
otlp_ingest_traces_5mb_memory memory ⚪ +0.51 metrics profiles logs
otlp_ingest_metrics_5mb_memory memory ⚪ +0.46 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ +0.44 metrics profiles logs
otlp_ingest_logs_5mb_memory (ignored) memory ⚪ +0.40 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_throughput throughput ⚪ -0.38 metrics profiles logs
otlp_ingest_logs_5mb_throughput (ignored) throughput ⚪ -0.07 metrics profiles logs
dsd_uds_10mb_3k_contexts_throughput throughput ⚪ -0.01 metrics profiles logs
dsd_uds_100mb_3k_contexts_throughput throughput ⚪ -0.01 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_memory memory ⚪ +0.00 metrics profiles logs
dsd_uds_512kb_3k_contexts_throughput throughput ⚪ -0.00 metrics profiles logs
dsd_uds_1mb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
otlp_ingest_metrics_5mb_throughput throughput ⚪ +0.00 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_throughput throughput ⚪ +0.05 metrics profiles logs
dsd_uds_100mb_3k_contexts_cpu (erratic) cpu ⚪ -0.07 metrics profiles logs
otlp_ingest_traces_5mb_throughput throughput ⚪ +0.19 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ -0.22 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ -0.25 metrics profiles logs
otlp_ingest_metrics_5mb_cpu (erratic) cpu ⚪ -0.97 metrics profiles logs
dsd_uds_500mb_3k_contexts_cpu (erratic) cpu ⚪ -1.01 metrics profiles logs
otlp_ingest_logs_5mb_cpu (ignored) cpu ⚪ -1.37 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_cpu (erratic) cpu ⚪ -1.68 metrics profiles logs
otlp_ingest_traces_5mb_cpu (erratic) cpu ⚪ -1.96 metrics profiles logs
dsd_uds_512kb_3k_contexts_cpu (erratic) cpu 🟢 -5.05 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 123 MiB ≤ 140 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 40.2 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 60.6 MiB ≤ 75 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 178 MiB ≤ 200 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 27.2 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-prod-us1-6

datadog-prod-us1-6 Bot commented May 28, 2026

Copy link
Copy Markdown

Pipelines

Fix all issues with BitsAI

⚠️ Warnings

🚦 2 Pipeline jobs failed

Copilot | copilot-pull-request-reviewer   View in Datadog   GitHub Actions

🛟 This job is unlikely to succeed on retry. Please review your pipeline configuration. CAPI proxy request failed with status 401. Duplicate item found with id fc_call_km7p6YOqFgAjtCYs5sZJhh6H.

Semantic PR Title Check | Check For Semantic PR Title   View in Datadog   GitHub Actions

🛟 This job is unlikely to succeed on retry. Please review your pipeline configuration. No release type found in pull request title 'route v3 intake paths'. Add a prefix to indicate the release type.

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: eaf9fa4 | Docs | Datadog PR Page | Give us feedback!

@tobz
tobz merged commit 99bb658 into tobz/datadog-metrics-v3-payload-support May 29, 2026
77 of 79 checks passed
@tobz
tobz deleted the rayz/metrics-v3-route-detection branch May 29, 2026 13:48
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. encoder/datadog-metrics Datadog Metrics encoder.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants