Skip to content

fix(ci): use localhost instead of 127.0.0.1 to avoid dual-stack issues in certain SMP experiments - #2327

Merged
tobz merged 1 commit into
mainfrom
tobz/fix-otlp-smp-experiments
Aug 13, 2026
Merged

fix(ci): use localhost instead of 127.0.0.1 to avoid dual-stack issues in certain SMP experiments#2327
tobz merged 1 commit into
mainfrom
tobz/fix-otlp-smp-experiments

Conversation

@tobz

@tobz tobz commented Aug 13, 2026

Copy link
Copy Markdown
Member

Summary

This PR fixes an issue with the OTLP-specific SMP experiments referencing 127.0.0.1 directly when ADP was referencing localhost, leading to mismatches in dual-stack environments where one side was expecting IPv4 and the other expecting IPv6.

This was a little messed up with some recent refactoring around how the ports are defined and we had added some compensating configuration changes in some tests, but not SMP experiments. Rather than add the same compensating changes (listen on 0.0.0.0 instead of localhost, basically), we've simply mirrored the use of localhost on the lading side, which means that while we may use IPv4 or IPv6... both sides (ADP and lading) always use the same version.

Change Type

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

How did you test this PR?

  • Locally reproduced the issue and then observed that this PR fixed it.
  • Ran the "full" SMP experiment suite in CI and ensured all OTLP-specific experiments completed successfully, including analysis.

References

DADP-2

@tobz
tobz requested a review from a team as a code owner August 13, 2026 13:29
@tobz tobz added the type/bug Bug fixes. label Aug 13, 2026
@dd-octo-sts dd-octo-sts Bot added the area/test All things testing: unit/integration, correctness, SMP regression, etc. label Aug 13, 2026
@tobz tobz changed the title fix(smp): use localhost instead of 127.0.0.1 to avoid dual-stack issues in certain SMP experiments fix(smp): use localhost instead of 127.0.0.1 to avoid dual-stack issues in certain SMP experiments Aug 13, 2026
@pr-commenter

pr-commenter Bot commented Aug 13, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: 0dee0a9 · Comparison: ff46a33 · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 41.45 MiB (baseline) vs 41.45 MiB (comparison)
Size Change: +0 B (+0.00%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
anon.44a0faa3240fa409baa379409d152aec.1.llvm.15520861671972362209 -130 B 1
anon.44a0faa3240fa409baa379409d152aec.1.llvm.3311800770411154093 +129 B 1
anon.44a0faa3240fa409baa379409d152aec.4.llvm.15520861671972362209 -114 B 1
anon.44a0faa3240fa409baa379409d152aec.4.llvm.3311800770411154093 +113 B 1
anon.44a0faa3240fa409baa379409d152aec.3.llvm.15520861671972362209 -109 B 1
anon.44a0faa3240fa409baa379409d152aec.3.llvm.3311800770411154093 +108 B 1
anon.44a0faa3240fa409baa379409d152aec.0.llvm.15520861671972362209 -97 B 1
anon.44a0faa3240fa409baa379409d152aec.0.llvm.3311800770411154093 +96 B 1
anon.44a0faa3240fa409baa379409d152aec.2.llvm.15520861671972362209 -95 B 1
anon.44a0faa3240fa409baa379409d152aec.2.llvm.3311800770411154093 +94 B 1
[Unmapped] +5 B 1
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW]    +129  [NEW]     +40    anon.44a0faa3240fa409baa379409d152aec.1.llvm.3311800770411154093
  [NEW]    +113  [NEW]     +24    anon.44a0faa3240fa409baa379409d152aec.4.llvm.3311800770411154093
  [NEW]    +108  [NEW]     +19    anon.44a0faa3240fa409baa379409d152aec.3.llvm.3311800770411154093
  [NEW]     +96  [NEW]      +7    anon.44a0faa3240fa409baa379409d152aec.0.llvm.3311800770411154093
  [NEW]     +94  [NEW]      +5    anon.44a0faa3240fa409baa379409d152aec.2.llvm.3311800770411154093
  +167%      +5  [ = ]       0    [Unmapped]
  [DEL]     -95  [DEL]      -5    anon.44a0faa3240fa409baa379409d152aec.2.llvm.15520861671972362209
  [DEL]     -97  [DEL]      -7    anon.44a0faa3240fa409baa379409d152aec.0.llvm.15520861671972362209
  [DEL]    -109  [DEL]     -19    anon.44a0faa3240fa409baa379409d152aec.3.llvm.15520861671972362209
  [DEL]    -114  [DEL]     -24    anon.44a0faa3240fa409baa379409d152aec.4.llvm.15520861671972362209
  [DEL]    -130  [DEL]     -40    anon.44a0faa3240fa409baa379409d152aec.1.llvm.15520861671972362209
  [ = ]       0  [ = ]       0    TOTAL

@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 generator destinations now match ADP’s localhost:6317/6318 listener defaults, and every generated OTLP case remains synchronized with the authoritative experiment template. Lading preserves the hostname through connection setup, so resolution can select the address family available to the listener.

Was this helpful? React 👍 or 👎

Open Bits AI session

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

@tobz tobz changed the title fix(smp): use localhost instead of 127.0.0.1 to avoid dual-stack issues in certain SMP experiments fix(ci): use localhost instead of 127.0.0.1 to avoid dual-stack issues in certain SMP experiments Aug 13, 2026
@pr-commenter

pr-commenter Bot commented Aug 13, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: db629716-9dea-4ed5-85f1-8b90c15b49da
Baseline: 0dee0a96 · Comparison: ff46a333 · 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_dsd_low memory ⚪ +0.16 metrics profiles logs
quality_gates_rss_idle memory ⚪ +0.10 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ +0.10 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ -0.04 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ -0.47 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 231 MiB ≤ 250 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 51.2 MiB ≤ 60 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 90.2 MiB ≤ 100 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 386 MiB ≤ 420 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 31.7 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.

@pr-commenter

pr-commenter Bot commented Aug 13, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane, full suite)

Run ID: ff668ff2-3558-4417-a727-2709067598b9
Baseline: 0dee0a96 · Comparison: ff46a333 · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (43)

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
otlp_ingest_logs_5mb_memory (ignored) memory ⚪ +22.85 metrics profiles logs
tagfilter_0metrics_100mb (erratic) cpu ⚪ +20.40 metrics profiles logs
dsd_uds_1mb_3k_contexts_cpu (erratic) cpu ⚪ +9.73 metrics profiles logs
dsd_uds_512kb_3k_contexts_cpu (erratic) cpu ⚪ +7.01 metrics profiles logs
otlp_ingest_metrics_5mb_cpu (erratic) cpu ⚪ +3.15 metrics profiles logs
tagfilter_10000metrics_idle (erratic) memory ⚪ +1.91 metrics profiles logs
dsd_uds_10mb_3k_contexts_cpu (erratic) cpu ⚪ +1.74 metrics profiles logs
otlp_ingest_logs_5mb_cpu (ignored) cpu ⚪ +0.98 metrics profiles logs
dsd_uds_100mb_3k_contexts_cpu (erratic) cpu ⚪ +0.91 metrics profiles logs
dsd_uds_100mb_3k_contexts_memory memory ⚪ +0.89 metrics profiles logs
otlp_ingest_metrics_5mb_memory memory ⚪ +0.70 metrics profiles logs
otlp_ingest_traces_5mb_memory memory ⚪ +0.26 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ +0.23 metrics profiles logs
quality_gates_rss_idle memory ⚪ +0.23 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_memory memory ⚪ +0.22 metrics profiles logs
dsd_uds_1mb_3k_contexts_memory memory ⚪ +0.17 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ +0.17 metrics profiles logs
dsd_uds_10mb_3k_contexts_memory memory ⚪ +0.11 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ +0.07 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_throughput throughput ⚪ -0.05 metrics profiles logs
quality_gates_rss_dsd_heavy memory ⚪ +0.01 metrics profiles logs
dsd_uds_100mb_3k_contexts_throughput throughput ⚪ -0.00 metrics profiles logs
tagfilter_1000metrics_idle 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
dsd_uds_10mb_3k_contexts_throughput throughput ⚪ +0.00 metrics profiles logs
tagfilter_500metrics_idle memory ⚪ -0.01 metrics profiles logs
otlp_ingest_metrics_5mb_throughput throughput ⚪ +0.03 metrics profiles logs
otlp_ingest_traces_5mb_throughput throughput ⚪ +0.03 metrics profiles logs
otlp_ingest_logs_5mb_throughput (ignored) throughput ⚪ +0.03 metrics profiles logs
tagfilter_0metrics_idle memory ⚪ -0.13 metrics profiles logs
dsd_uds_500mb_3k_contexts_memory memory ⚪ -0.15 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_memory memory ⚪ -0.23 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_throughput throughput ⚪ +0.23 metrics profiles logs
dsd_uds_512kb_3k_contexts_memory memory ⚪ -0.24 metrics profiles logs
dsd_uds_500mb_3k_contexts_throughput throughput ⚪ +0.28 metrics profiles logs
dsd_uds_500mb_3k_contexts_cpu (erratic) cpu ⚪ -0.36 metrics profiles logs
otlp_ingest_traces_ottl_filtering_5mb_cpu (erratic) cpu ⚪ -0.96 metrics profiles logs
otlp_ingest_traces_ottl_transform_5mb_cpu (erratic) cpu ⚪ -1.21 metrics profiles logs
otlp_ingest_traces_5mb_cpu (erratic) cpu ⚪ -1.32 metrics profiles logs
tagfilter_500metrics_100mb (erratic) cpu 🟢 -5.07 metrics profiles logs
tagfilter_10000metrics_100mb (erratic) cpu 🟢 -6.46 metrics profiles logs
tagfilter_1000metrics_100mb (erratic) cpu 🟢 -16.32 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 233 MiB ≤ 250 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 51.3 MiB ≤ 60 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 90.5 MiB ≤ 100 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 380 MiB ≤ 420 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 31.7 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.

@tobz
tobz merged commit 96f4fdd into main Aug 13, 2026
97 of 99 checks passed
@tobz
tobz deleted the tobz/fix-otlp-smp-experiments branch August 13, 2026 15:58
dd-octo-sts Bot pushed a commit that referenced this pull request Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/test All things testing: unit/integration, correctness, SMP regression, etc. type/bug Bug fixes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants