Skip to content

perf(data-pipeline): avoid parsing static entity header names - #2457

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
BridgeAR/2026-09-03-wasm-pipeline-size
Sep 11, 2026
Merged

gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
BridgeAR/2026-09-03-wasm-pipeline-size

Conversation

@BridgeAR

@BridgeAR BridgeAR commented Sep 3, 2026

Copy link
Copy Markdown
Member

What does this PR do?

Inserts compile-time entity header names directly while retaining validation for dynamic values.

Motivation

Parsing three known header names on every request adds fallible work and linked code without validating user input.

Additional Notes

The optimized WASM artifact drops from 441,261 to 440,912 bytes.

How to test the change?

Run the data-pipeline-core tests and all-feature Clippy.

Entity header names are compile-time constants, so parsing them for every request adds code and fallible work without validating dynamic input. Keep value validation and insert the known names directly.

This reduces the optimized WASM artifact from 441,261 to 440,912 bytes with the same Rust and Binaryen toolchain.
@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Tests

✅ All CI checks and tests passed.

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
• Patch Coverage: 0.00%
• Overall Coverage: 77.72% (+0.00%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 769d408 | Docs | View more details | Give us feedback!

@pr-commenter

pr-commenter Bot commented Sep 3, 2026 •

Copy link
Copy Markdown

Benchmarks

Comparison

Benchmark execution time: 2026-09-10 21:01:09

Comparing candidate commit 769d408 in PR branch BridgeAR/2026-09-03-wasm-pipeline-size with baseline commit 8b0fa65 in branch main.

📊 Benchmarking dashboard

Found 2 performance improvements and 0 performance regressions! Performance is the same for 22 metrics, 0 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:trace_buffer/2_senders/no_delay

  • 🟩 execution_time [-131.144µs; -113.773µs] or [-7.112%; -6.170%]
  • 🟩 throughput [+64869.276op/s; +74974.764op/s] or [+6.643%; +7.678%]

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 769d408 1789073202 BridgeAR/2026-09-03-wasm-pipeline-size
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
trace_buffer/1_senders/10us_delay execution_time 60.042ms 60.078ms ± 0.027ms 60.070ms ± 0.007ms 60.081ms 60.132ms 60.202ms 60.219ms 0.25% 2.593 8.783 0.05% 0.002ms 1 200
trace_buffer/1_senders/10us_delay throughput 14945.464op/s 14980.504op/s ± 6.783op/s 14982.402op/s ± 1.625op/s 14983.518op/s 14987.662op/s 14988.999op/s 14989.542op/s 0.05% -2.588 8.748 0.05% 0.480op/s 1 200
trace_buffer/1_senders/1us_delay execution_time 50.166ms 50.498ms ± 0.178ms 50.487ms ± 0.101ms 50.577ms 50.808ms 51.031ms 51.342ms 1.69% 1.018 2.400 0.35% 0.013ms 1 200
trace_buffer/1_senders/1us_delay throughput 17529.569op/s 17822.746op/s ± 62.487op/s 17826.283op/s ± 35.601op/s 17865.025op/s 17908.074op/s 17932.105op/s 17940.276op/s 0.64% -0.983 2.258 0.35% 4.418op/s 1 200
trace_buffer/1_senders/no_delay execution_time 347.973µs 356.216µs ± 6.230µs 355.953µs ± 1.588µs 357.295µs 361.201µs 369.093µs 431.793µs 21.31% 9.065 106.776 1.74% 0.441µs 1 200
trace_buffer/1_senders/no_delay throughput 2084333.119op/s 2527223.938op/s ± 38557.496op/s 2528423.795op/s ± 11280.385op/s 2542474.422op/s 2562387.482op/s 2576174.314op/s 2586407.566op/s 2.29% -7.729 85.549 1.52% 2726.427op/s 1 200
trace_buffer/2_senders/10us_delay execution_time 60.067ms 60.135ms ± 0.049ms 60.124ms ± 0.024ms 60.149ms 60.247ms 60.279ms 60.347ms 0.37% 1.560 2.522 0.08% 0.003ms 1 200
trace_buffer/2_senders/10us_delay throughput 29827.301op/s 29932.676op/s ± 24.510op/s 29938.135op/s ± 12.059op/s 29949.505op/s 29958.725op/s 29962.432op/s 29966.586op/s 0.10% -1.555 2.501 0.08% 1.733op/s 1 200
trace_buffer/2_senders/1us_delay execution_time 50.865ms 51.191ms ± 0.101ms 51.204ms ± 0.060ms 51.256ms 51.375ms 51.446ms 51.467ms 0.51% -0.120 0.638 0.20% 0.007ms 1 200
trace_buffer/2_senders/1us_delay throughput 34973.567op/s 35162.537op/s ± 69.651op/s 35153.285op/s ± 41.167op/s 35204.439op/s 35279.789op/s 35345.582op/s 35387.549op/s 0.67% 0.136 0.647 0.20% 4.925op/s 1 200
trace_buffer/2_senders/no_delay execution_time 1.580ms 1.722ms ± 0.050ms 1.720ms ± 0.035ms 1.755ms 1.811ms 1.842ms 1.847ms 7.41% 0.162 -0.158 2.92% 0.004ms 1 200
trace_buffer/2_senders/no_delay throughput 974408.490op/s 1046401.052op/s ± 30601.709op/s 1046578.592op/s ± 21271.258op/s 1068247.972op/s 1092750.714op/s 1110718.789op/s 1139162.312op/s 8.85% 0.000 -0.103 2.92% 2163.868op/s 1 200
trace_buffer/4_senders/10us_delay execution_time 60.134ms 60.191ms ± 0.043ms 60.181ms ± 0.018ms 60.202ms 60.288ms 60.345ms 60.401ms 0.37% 1.876 4.121 0.07% 0.003ms 1 200
trace_buffer/4_senders/10us_delay throughput 59601.912op/s 59809.983op/s ± 43.059op/s 59819.866op/s ± 18.142op/s 59836.940op/s 59853.486op/s 59860.419op/s 59866.739op/s 0.08% -1.871 4.091 0.07% 3.045op/s 1 200
trace_buffer/4_senders/1us_delay execution_time 51.184ms 51.355ms ± 0.105ms 51.342ms ± 0.060ms 51.406ms 51.553ms 51.674ms 51.761ms 0.81% 1.154 1.576 0.20% 0.007ms 1 200
trace_buffer/4_senders/1us_delay throughput 69550.631op/s 70099.956op/s ± 142.555op/s 70117.376op/s ± 82.280op/s 70197.648op/s 70272.707op/s 70332.575op/s 70334.673op/s 0.31% -1.141 1.534 0.20% 10.080op/s 1 200
trace_buffer/4_senders/no_delay execution_time 3.654ms 3.730ms ± 0.027ms 3.730ms ± 0.016ms 3.746ms 3.779ms 3.790ms 3.798ms 1.83% -0.028 0.005 0.71% 0.002ms 1 200
trace_buffer/4_senders/no_delay throughput 947754.856op/s 965216.132op/s ± 6860.343op/s 965125.357op/s ± 4166.986op/s 969140.872op/s 977114.101op/s 980455.288op/s 985236.559op/s 2.08% 0.071 0.022 0.71% 485.099op/s 1 200
trace_buffer/8_senders/10us_delay execution_time 60.246ms 60.329ms ± 0.062ms 60.310ms ± 0.027ms 60.352ms 60.457ms 60.550ms 60.610ms 0.50% 1.710 3.426 0.10% 0.004ms 1 200
trace_buffer/8_senders/10us_delay throughput 118792.986op/s 119345.705op/s ± 121.659op/s 119384.163op/s ± 52.558op/s 119430.527op/s 119461.921op/s 119477.065op/s 119510.063op/s 0.11% -1.702 3.386 0.10% 8.603op/s 1 200
trace_buffer/8_senders/1us_delay execution_time 51.449ms 51.743ms ± 0.200ms 51.699ms ± 0.116ms 51.834ms 52.161ms 52.301ms 52.518ms 1.58% 1.176 1.175 0.39% 0.014ms 1 200
trace_buffer/8_senders/1us_delay throughput 137096.837op/s 139150.514op/s ± 535.132op/s 139267.655op/s ± 312.211op/s 139548.707op/s 139750.545op/s 139850.115op/s 139943.842op/s 0.49% -1.155 1.105 0.38% 37.840op/s 1 200
trace_buffer/8_senders/no_delay execution_time 6.952ms 7.121ms ± 0.088ms 7.110ms ± 0.063ms 7.178ms 7.279ms 7.345ms 7.368ms 3.62% 0.436 -0.292 1.24% 0.006ms 1 200
trace_buffer/8_senders/no_delay throughput 977248.612op/s 1011280.511op/s ± 12459.204op/s 1012621.415op/s ± 9041.511op/s 1021319.670op/s 1028544.795op/s 1034128.888op/s 1035680.338op/s 2.28% -0.380 -0.361 1.23% 880.999op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
trace_buffer/1_senders/10us_delay execution_time [60.074ms; 60.082ms] or [-0.006%; +0.006%] None None None
trace_buffer/1_senders/10us_delay throughput [14979.564op/s; 14981.444op/s] or [-0.006%; +0.006%] None None None
trace_buffer/1_senders/1us_delay execution_time [50.473ms; 50.523ms] or [-0.049%; +0.049%] None None None
trace_buffer/1_senders/1us_delay throughput [17814.086op/s; 17831.406op/s] or [-0.049%; +0.049%] None None None
trace_buffer/1_senders/no_delay execution_time [355.353µs; 357.080µs] or [-0.242%; +0.242%] None None None
trace_buffer/1_senders/no_delay throughput [2521880.240op/s; 2532567.636op/s] or [-0.211%; +0.211%] None None None
trace_buffer/2_senders/10us_delay execution_time [60.128ms; 60.142ms] or [-0.011%; +0.011%] None None None
trace_buffer/2_senders/10us_delay throughput [29929.280op/s; 29936.073op/s] or [-0.011%; +0.011%] None None None
trace_buffer/2_senders/1us_delay execution_time [51.177ms; 51.205ms] or [-0.027%; +0.027%] None None None
trace_buffer/2_senders/1us_delay throughput [35152.884op/s; 35172.190op/s] or [-0.027%; +0.027%] None None None
trace_buffer/2_senders/no_delay execution_time [1.715ms; 1.729ms] or [-0.406%; +0.406%] None None None
trace_buffer/2_senders/no_delay throughput [1042159.949op/s; 1050642.154op/s] or [-0.405%; +0.405%] None None None
trace_buffer/4_senders/10us_delay execution_time [60.185ms; 60.197ms] or [-0.010%; +0.010%] None None None
trace_buffer/4_senders/10us_delay throughput [59804.016op/s; 59815.951op/s] or [-0.010%; +0.010%] None None None
trace_buffer/4_senders/1us_delay execution_time [51.341ms; 51.370ms] or [-0.028%; +0.028%] None None None
trace_buffer/4_senders/1us_delay throughput [70080.199op/s; 70119.713op/s] or [-0.028%; +0.028%] None None None
trace_buffer/4_senders/no_delay execution_time [3.726ms; 3.734ms] or [-0.098%; +0.098%] None None None
trace_buffer/4_senders/no_delay throughput [964265.355op/s; 966166.910op/s] or [-0.099%; +0.099%] None None None
trace_buffer/8_senders/10us_delay execution_time [60.320ms; 60.338ms] or [-0.014%; +0.014%] None None None
trace_buffer/8_senders/10us_delay throughput [119328.844op/s; 119362.565op/s] or [-0.014%; +0.014%] None None None
trace_buffer/8_senders/1us_delay execution_time [51.716ms; 51.771ms] or [-0.054%; +0.054%] None None None
trace_buffer/8_senders/1us_delay throughput [139076.349op/s; 139224.678op/s] or [-0.053%; +0.053%] None None None
trace_buffer/8_senders/no_delay execution_time [7.109ms; 7.133ms] or [-0.172%; +0.172%] None None None
trace_buffer/8_senders/no_delay throughput [1009553.785op/s; 1013007.237op/s] or [-0.171%; +0.171%] None None None

Baseline

Baseline benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 8b0fa65 1789070470 main
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
trace_buffer/1_senders/10us_delay execution_time 60.038ms 60.079ms ± 0.034ms 60.069ms ± 0.006ms 60.078ms 60.141ms 60.203ms 60.253ms 0.31% 2.789 8.058 0.06% 0.002ms 1 200
trace_buffer/1_senders/10us_delay throughput 14936.946op/s 14980.202op/s ± 8.401op/s 14982.808op/s ± 1.409op/s 14983.782op/s 14987.070op/s 14989.039op/s 14990.442op/s 0.05% -2.785 8.034 0.06% 0.594op/s 1 200
trace_buffer/1_senders/1us_delay execution_time 50.129ms 50.682ms ± 0.308ms 50.611ms ± 0.171ms 50.802ms 51.242ms 51.334ms 51.383ms 1.52% 0.672 -0.628 0.61% 0.022ms 1 200
trace_buffer/1_senders/1us_delay throughput 17515.596op/s 17758.359op/s ± 107.498op/s 17782.706op/s ± 60.253op/s 17838.454op/s 17894.159op/s 17929.116op/s 17953.581op/s 0.96% -0.656 -0.640 0.60% 7.601op/s 1 200
trace_buffer/1_senders/no_delay execution_time 348.467µs 356.848µs ± 4.039µs 356.504µs ± 1.501µs 358.136µs 361.285µs 367.828µs 394.673µs 10.71% 4.384 37.963 1.13% 0.286µs 1 200
trace_buffer/1_senders/no_delay throughput 2280369.749op/s 2522389.660op/s ± 27300.143op/s 2524512.505op/s ± 10647.161op/s 2533426.107op/s 2559096.248op/s 2575375.066op/s 2582743.381op/s 2.31% -3.734 30.521 1.08% 1930.412op/s 1 200
trace_buffer/2_senders/10us_delay execution_time 60.073ms 60.127ms ± 0.040ms 60.120ms ± 0.021ms 60.140ms 60.213ms 60.262ms 60.281ms 0.27% 1.559 2.808 0.07% 0.003ms 1 200
trace_buffer/2_senders/10us_delay throughput 29859.945op/s 29936.821op/s ± 20.074op/s 29940.130op/s ± 10.663op/s 29951.839op/s 29959.004op/s 29962.661op/s 29963.690op/s 0.08% -1.554 2.790 0.07% 1.419op/s 1 200
trace_buffer/2_senders/1us_delay execution_time 50.935ms 51.185ms ± 0.101ms 51.190ms ± 0.078ms 51.263ms 51.341ms 51.396ms 51.452ms 0.51% 0.010 -0.434 0.20% 0.007ms 1 200
trace_buffer/2_senders/1us_delay throughput 34983.937op/s 35166.763op/s ± 69.497op/s 35163.143op/s ± 53.216op/s 35221.448op/s 35278.566op/s 35300.711op/s 35339.185op/s 0.50% -0.000 -0.436 0.20% 4.914op/s 1 200
trace_buffer/2_senders/no_delay execution_time 1.725ms 1.844ms ± 0.037ms 1.846ms ± 0.027ms 1.873ms 1.901ms 1.913ms 1.939ms 5.05% -0.299 -0.069 2.01% 0.003ms 1 200
trace_buffer/2_senders/no_delay throughput 928103.741op/s 976479.032op/s ± 19817.404op/s 974958.754op/s ± 14292.098op/s 989422.487op/s 1009907.296op/s 1025785.060op/s 1043696.021op/s 7.05% 0.412 0.089 2.02% 1401.302op/s 1 200
trace_buffer/4_senders/10us_delay execution_time 60.140ms 60.194ms ± 0.041ms 60.182ms ± 0.019ms 60.207ms 60.284ms 60.335ms 60.348ms 0.28% 1.493 2.112 0.07% 0.003ms 1 200
trace_buffer/4_senders/10us_delay throughput 59653.959op/s 59807.045op/s ± 40.207op/s 59818.411op/s ± 19.323op/s 59834.560op/s 59849.774op/s 59857.846op/s 59859.890op/s 0.07% -1.490 2.098 0.07% 2.843op/s 1 200
trace_buffer/4_senders/1us_delay execution_time 51.131ms 51.362ms ± 0.142ms 51.311ms ± 0.064ms 51.409ms 51.692ms 51.808ms 51.886ms 1.12% 1.496 2.048 0.28% 0.010ms 1 200
trace_buffer/4_senders/1us_delay throughput 69382.943op/s 70091.692op/s ± 192.817op/s 70159.812op/s ± 87.593op/s 70220.761op/s 70294.474op/s 70328.410op/s 70406.980op/s 0.35% -1.481 1.994 0.27% 13.634op/s 1 200
trace_buffer/4_senders/no_delay execution_time 3.713ms 3.772ms ± 0.024ms 3.772ms ± 0.015ms 3.788ms 3.809ms 3.825ms 3.828ms 1.47% -0.098 -0.156 0.63% 0.002ms 1 200
trace_buffer/4_senders/no_delay throughput 940519.017op/s 954555.023op/s ± 6077.872op/s 954387.667op/s ± 3855.556op/s 958109.104op/s 965938.834op/s 968065.591op/s 969465.499op/s 1.58% 0.133 -0.153 0.64% 429.770op/s 1 200
trace_buffer/8_senders/10us_delay execution_time 60.239ms 60.324ms ± 0.057ms 60.308ms ± 0.033ms 60.352ms 60.442ms 60.493ms 60.513ms 0.34% 1.081 0.709 0.09% 0.004ms 1 200
trace_buffer/8_senders/10us_delay throughput 118983.571op/s 119354.896op/s ± 112.674op/s 119386.215op/s ± 64.433op/s 119436.598op/s 119482.395op/s 119501.923op/s 119523.902op/s 0.12% -1.077 0.696 0.09% 7.967op/s 1 200
trace_buffer/8_senders/1us_delay execution_time 51.313ms 51.745ms ± 0.250ms 51.672ms ± 0.161ms 51.911ms 52.244ms 52.356ms 52.465ms 1.53% 0.727 -0.263 0.48% 0.018ms 1 200
trace_buffer/8_senders/1us_delay throughput 137234.820op/s 139147.423op/s ± 670.505op/s 139340.362op/s ± 435.174op/s 139668.114op/s 139969.576op/s 140112.947op/s 140315.935op/s 0.70% -0.709 -0.294 0.48% 47.412op/s 1 200
trace_buffer/8_senders/no_delay execution_time 6.630ms 6.943ms ± 0.090ms 6.955ms ± 0.048ms 7.003ms 7.061ms 7.087ms 7.098ms 2.07% -1.199 1.885 1.30% 0.006ms 1 200
trace_buffer/8_senders/no_delay throughput 1014318.729op/s 1037254.935op/s ± 13736.714op/s 1035282.555op/s ± 7169.297op/s 1042053.198op/s 1068408.638op/s 1083230.438op/s 1086034.032op/s 4.90% 1.296 2.168 1.32% 971.332op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
trace_buffer/1_senders/10us_delay execution_time [60.075ms; 60.084ms] or [-0.008%; +0.008%] None None None
trace_buffer/1_senders/10us_delay throughput [14979.038op/s; 14981.366op/s] or [-0.008%; +0.008%] None None None
trace_buffer/1_senders/1us_delay execution_time [50.640ms; 50.725ms] or [-0.084%; +0.084%] None None None
trace_buffer/1_senders/1us_delay throughput [17743.461op/s; 17773.257op/s] or [-0.084%; +0.084%] None None None
trace_buffer/1_senders/no_delay execution_time [356.288µs; 357.408µs] or [-0.157%; +0.157%] None None None
trace_buffer/1_senders/no_delay throughput [2518606.123op/s; 2526173.198op/s] or [-0.150%; +0.150%] None None None
trace_buffer/2_senders/10us_delay execution_time [60.121ms; 60.132ms] or [-0.009%; +0.009%] None None None
trace_buffer/2_senders/10us_delay throughput [29934.039op/s; 29939.603op/s] or [-0.009%; +0.009%] None None None
trace_buffer/2_senders/1us_delay execution_time [51.171ms; 51.199ms] or [-0.027%; +0.027%] None None None
trace_buffer/2_senders/1us_delay throughput [35157.132op/s; 35176.395op/s] or [-0.027%; +0.027%] None None None
trace_buffer/2_senders/no_delay execution_time [1.839ms; 1.849ms] or [-0.279%; +0.279%] None None None
trace_buffer/2_senders/no_delay throughput [973732.530op/s; 979225.533op/s] or [-0.281%; +0.281%] None None None
trace_buffer/4_senders/10us_delay execution_time [60.188ms; 60.199ms] or [-0.009%; +0.009%] None None None
trace_buffer/4_senders/10us_delay throughput [59801.472op/s; 59812.617op/s] or [-0.009%; +0.009%] None None None
trace_buffer/4_senders/1us_delay execution_time [51.342ms; 51.381ms] or [-0.038%; +0.038%] None None None
trace_buffer/4_senders/1us_delay throughput [70064.969op/s; 70118.415op/s] or [-0.038%; +0.038%] None None None
trace_buffer/4_senders/no_delay execution_time [3.768ms; 3.775ms] or [-0.088%; +0.088%] None None None
trace_buffer/4_senders/no_delay throughput [953712.688op/s; 955397.357op/s] or [-0.088%; +0.088%] None None None
trace_buffer/8_senders/10us_delay execution_time [60.316ms; 60.332ms] or [-0.013%; +0.013%] None None None
trace_buffer/8_senders/10us_delay throughput [119339.280op/s; 119370.512op/s] or [-0.013%; +0.013%] None None None
trace_buffer/8_senders/1us_delay execution_time [51.710ms; 51.780ms] or [-0.067%; +0.067%] None None None
trace_buffer/8_senders/1us_delay throughput [139054.498op/s; 139240.349op/s] or [-0.067%; +0.067%] None None None
trace_buffer/8_senders/no_delay execution_time [6.930ms; 6.955ms] or [-0.181%; +0.181%] None None None
trace_buffer/8_senders/no_delay throughput [1035351.158op/s; 1039158.711op/s] or [-0.184%; +0.184%] None None None

@dd-octo-sts

dd-octo-sts Bot commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 9.02 MB 9.02 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 95.97 MB 95.97 MB -0% (-1016 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 12.18 MB 12.18 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 107.37 MB 107.37 MB -0% (-984 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 29.04 MB 29.04 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 96.08 KB 96.08 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 191.82 MB 191.81 MB -0% (-8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 820.02 MB 820.02 MB -0% (-5.76 KB) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.69 MB 9.69 MB -0% (-512 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 96.08 KB 96.08 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 27.49 MB 27.49 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 55.55 MB 55.55 MB -0% (-958 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 25.41 MB 25.41 MB -0% (-512 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 97.58 KB 97.58 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 197.16 MB 197.13 MB --.01% (-24.00 KB) 💪
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 803.04 MB 803.04 MB -0% (-5.68 KB) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.51 MB 7.50 MB --.01% (-1.00 KB) 💪
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 97.58 KB 97.58 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 29.62 MB 29.62 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 52.52 MB 52.52 MB -0% (-816 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 85.94 MB 85.94 MB -0% (-1.03 KB) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.03 MB 10.03 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 101.82 MB 101.82 MB -0% (-992 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 12.25 MB 12.25 MB 0% (0 B) 👌

@BridgeAR
BridgeAR marked this pull request as ready for review September 9, 2026 21:27
@BridgeAR
BridgeAR requested a review from a team as a code owner September 9, 2026 21:27
@BridgeAR

Copy link
Copy Markdown
Member Author

/merge

@gh-worker-devflow-routing-ef8351

gh-worker-devflow-routing-ef8351 Bot commented Sep 10, 2026 •

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-09-10 11:34:43 UTC ℹ️ Start processing command /merge


2026-09-10 11:34:48 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in main is approximately 49m (p90).


2026-09-10 12:11:25 UTC ❌ MergeQueue: The checks failed on this merge request

Tests failed on this commit 2a74c5e:

What to do next?

  • Investigate the failures and when ready, re-add your pull request to the queue!
  • If your PR checks are green, try to rebase/merge. It might be because the CI run is a bit old.
  • Any question, go check the FAQ.

@BridgeAR

Copy link
Copy Markdown
Member Author

/merge

@gh-worker-devflow-routing-ef8351

gh-worker-devflow-routing-ef8351 Bot commented Sep 11, 2026 •

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-09-11 10:33:03 UTC ℹ️ Start processing command /merge


2026-09-11 10:33:08 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in main is approximately 48m (p90).


2026-09-11 11:53:37 UTC ❌ MergeQueue: The checks failed on this merge request

Tests failed on this commit 57c1829:

What to do next?

  • Investigate the failures and when ready, re-add your pull request to the queue!
  • If your PR checks are green, try to rebase/merge. It might be because the CI run is a bit old.
  • Any question, go check the FAQ.

@BridgeAR

Copy link
Copy Markdown
Member Author

/merge

@gh-worker-devflow-routing-ef8351

gh-worker-devflow-routing-ef8351 Bot commented Sep 11, 2026 •

Copy link
Copy Markdown

View all feedbacks in Devflow UI.

2026-09-11 13:36:26 UTC ℹ️ Start processing command /merge


2026-09-11 13:36:31 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in main is approximately 48m (p90).


2026-09-11 14:12:49 UTC ℹ️ MergeQueue: This merge request was merged

@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot deleted the BridgeAR/2026-09-03-wasm-pipeline-size branch September 11, 2026 14:12
paullegranddc added a commit that referenced this pull request Sep 24, 2026
…ibdd-data-pipeline, libdd-li... (#2571)

<!-- release-proposal-inputs: {"crates":"libdd-capabilities-impl,
libdd-common, libdd-data-pipeline, libdd-library-config,
libdd-profiling-heap-allocator, libdd-remote-config, libdd-sampling,
libdd-shared-runtime, libdd-telemetry, libdd-tinybytes,
libdd-trace-utils","main_start_ref":"","level_overrides":"","bypass_standard_checks":false}
-->

# Release proposal for libdd-capabilities-impl, libdd-common,
libdd-data-pipeline, libdd-library-config,
libdd-profiling-heap-allocator, libdd-remote-config, libdd-sampling,
libdd-shared-runtime, libdd-telemetry, libdd-tinybytes,
libdd-trace-utils and their dependencies

This PR contains version bumps based on public API changes and commits
since last release.


### ⚠️ Crates left out of this proposal affected by its major
bumps

These publishable workspace crates are not part of this release but
their dependency requirement was rewritten on this branch while their
published version still requires the old major. If they are a dependency
on your deployment not including them in the release could result in
duplicate packages or symbol incompatibility.

- `libdd-capabilities` `3.0.1` → `4.0.0` affects: `libdd-crashtracker`,
`libdd-ffe`, `libdd-live-debugger`
- `libdd-capabilities-impl` `5.0.0` → `6.0.0` affects:
`libdd-crashtracker`, `libdd-live-debugger`, `libdd-tracer-flare`
- `libdd-common` `6.0.0` → `7.0.0` affects: `libdd-crashtracker`,
`libdd-ffe`, `libdd-http-client`, `libdd-ipc`, `libdd-live-debugger`,
`libdd-profiling`, `libdd-tracer-flare`
- `libdd-data-pipeline` `10.0.0` → `11.0.0` affects:
`libdd-live-debugger`
- `libdd-remote-config` `5.0.0` → `6.0.0` affects: `libdd-ffe`,
`libdd-live-debugger`, `libdd-tracer-flare`
- `libdd-telemetry` `8.0.0` → `9.0.0` affects: `libdd-crashtracker`
- `libdd-trace-stats` `9.0.0` → `10.0.0` affects: `libdd-ipc`
- `libdd-trace-utils` `12.0.0` → `13.0.0` affects: `libdd-tracer-flare`

## libdd-capabilities
**Next version:** `4.0.0`
**Semver bump:** `major`
**Tag:** `libdd-capabilities-v4.0.0`

### Commits

- feat(trace-exporter)!: add API to force flush stats on the trace
exporter (#2538)
- refactor!: apply small timeout pooling strategy to libdd-http-client
as well (#2449)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)

## libdd-common
**Next version:** `7.0.0`
**Semver bump:** `major`
**Tag:** `libdd-common-v7.0.0`

### Commits

- build: enforce workspace-level dependency declarations (#2514)
- chore!: remove unused dependencies (v2) (#2511)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- chore(libdd-data-pipeline): solve cargo deny [APMSP-3884] (#2318)
- fix!: benchmark was doing many samples for deterministic heap usage
(#2465)

## libdd-ddsketch
**Next version:** `1.1.2`
**Semver bump:** `patch`
**Tag:** `libdd-ddsketch-v1.1.2`

### Commits

- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- chore(libdd-data-pipeline): solve cargo deny [APMSP-3884] (#2318)

## libdd-profiling-heap-sampler
**Next version:** `1.1.0`
**Semver bump:** `minor`
**Tag:** `libdd-profiling-heap-sampler-v1.1.0`

### Commits

- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- refactor: migrate to workspace dependencies, phase 4 (#2296)
- feat(profiling): add USDT semaphores to skip slow path around heap
profile sampler (#2266)

## libdd-tinybytes
**Next version:** `1.1.4`
**Semver bump:** `patch`
**Tag:** `libdd-tinybytes-v1.1.4`

### Commits

- chore: move all remaining external deps to workspace-level
dependencies (#2476)

## libdd-trace-protobuf
**Next version:** `5.0.1`
**Semver bump:** `patch`
**Tag:** `libdd-trace-protobuf-v5.0.1`

### Commits

- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- fix(build): build script change detection (#2467)

## libdd-capabilities-impl
**Next version:** `6.0.0`
**Semver bump:** `major`
**Tag:** `libdd-capabilities-impl-v6.0.0`

### ⚠️ major bump forced due to:

- `libdd-capabilities`: ^3.0.1 → ^4.0.0
- `libdd-common`: ^6.0.0 → ^7.0.0

### Commits

- refactor!: apply small timeout pooling strategy to libdd-http-client
as well (#2449)
- fix(sidecar)!: stabilize the sidecar for macos usage (#2475)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)

## libdd-profiling-heap-allocator
**Next version:** `1.1.0`
**Semver bump:** `minor`
**Tag:** `libdd-profiling-heap-allocator-v1.1.0`

### Commits

- refactor(benchmarks): measure allocator thread CPU time (#2500)
- refactor: migrate to workspace dependencies, phase 4 (#2296)
- feat(profiling): add USDT semaphores to skip slow path around heap
profile sampler (#2266)

## libdd-library-config
**Next version:** `4.1.0`
**Semver bump:** `minor`
**Tag:** `libdd-library-config-v4.1.0`

### Commits

- chore!: remove unused dependencies (v2) (#2511)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)

## libdd-trace-normalization
**Next version:** `4.1.0`
**Semver bump:** `minor`
**Tag:** `libdd-trace-normalization-v4.1.0`

### Commits

- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- chore(libdd-data-pipeline): solve cargo deny [APMSP-3884] (#2318)

## libdd-remote-config
**Next version:** `6.0.0`
**Semver bump:** `major`
**Tag:** `libdd-remote-config-v6.0.0`

### ⚠️ major bump forced due to:

- `libdd-capabilities`: ^3.0.1 → ^4.0.0
- `libdd-capabilities-impl`: ^5.0.0 → ^6.0.0
- `libdd-common`: ^6.0.0 → ^7.0.0

### Commits

- refactor!: apply small timeout pooling strategy to libdd-http-client
as well (#2449)
- chore!: remove unused dependencies (v2) (#2511)
- fix(rem-cfg)!: remove AsmRawResponseBody (#2540)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)

## libdd-shared-runtime
**Next version:** `5.0.0`
**Semver bump:** `major`
**Tag:** `libdd-shared-runtime-v5.0.0`

### ⚠️ major bump forced due to:

- `libdd-capabilities`: ^3.0.1 → ^4.0.0
- `libdd-capabilities-impl`: ^5.0.0 → ^6.0.0
- `libdd-common`: ^6.0.0 → ^7.0.0

### Commits

- feat(trace-exporter)!: add API to force flush stats on the trace
exporter (#2538)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)

## libdd-trace-utils
**Next version:** `13.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-utils-v13.0.0`

### ⚠️ major bump forced due to:

- `libdd-capabilities`: ^3.0.1 → ^4.0.0
- `libdd-capabilities-impl`: ^5.0.0 → ^6.0.0
- `libdd-common`: ^6.0.0 → ^7.0.0

### Commits

- fix(trace-utils)!: add forgotten css to agentless v1 encoder (#2557)
- fix(otlp): use potential dedupe in otlp serialization path (#2531)
- feat(trace-utils)!: add v1-native OTLP encoder brick (#2369)
- perf(serialization): bench the actual path used by the trace exporter
(#2512)
- perf(trace): write agentless JSON directly (#2454)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- perf(trace): encode agentless IDs without formatting (#2452)
- perf(trace-utils)!: use pooled spans on the send path (#2382)
- feat(data-pipeline)!: OTLP gRPC trace export (#2171)
- chore(libdd-data-pipeline): solve cargo deny [APMSP-3884] (#2318)
- fix!: benchmark was doing many samples for deterministic heap usage
(#2465)

## libdd-dogstatsd-client
**Next version:** `7.0.0`
**Semver bump:** `major`
**Tag:** `libdd-dogstatsd-client-v7.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^6.0.0 → ^7.0.0
- `libdd-shared-runtime`: ^4.0.0 → ^5.0.0

### Commits

- chore: move all remaining external deps to workspace-level
dependencies (#2476)

## libdd-telemetry
**Next version:** `9.0.0`
**Semver bump:** `major`
**Tag:** `libdd-telemetry-v9.0.0`

### ⚠️ major bump forced due to:

- `libdd-capabilities`: ^3.0.1 → ^4.0.0
- `libdd-common`: ^6.0.0 → ^7.0.0
- `libdd-shared-runtime`: ^4.0.0 → ^5.0.0

### Commits

- refactor!: apply small timeout pooling strategy to libdd-http-client
as well (#2449)
- chore!: remove unused dependencies (v2) (#2511)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- fix(telemetry): fall back to the proper intake telemetry domain when
direct submission is enabled (#2484)

## libdd-sampling
**Next version:** `7.0.0`
**Semver bump:** `major`
**Tag:** `libdd-sampling-v7.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^7.0.0
- `libdd-trace-utils`: ^10.1.0 → ^13.0.0

### Commits

- chore(benchmarks): remove batched-loop sampling noise (#2498)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- fix!: benchmark was doing many samples for deterministic heap usage
(#2465)
- feat(trace-utils)!: add from owned to SpanText (#2403)
- test(sampling): make rate_limiter thread-safety test deterministic
(#2354)

## libdd-trace-obfuscation
**Next version:** `9.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-obfuscation-v9.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^6.0.0 → ^7.0.0
- `libdd-trace-utils`: ^12.0.0 → ^13.0.0

### Commits

- feat(data-pipeline)!: refactor agent's /info obfuscation config format
(#2490)
- fix(obfuscation): keep URLs whose path or fragment holds a bracket
(#2527)
- fix(obfuscation): stop forcing serde_json/preserve_order on dependents
(#2529)
- fix(obfuscation): prevent crash and cap recursion in SQL/HTTP
obfuscation (#2441)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- fix(data-pipeline-ffi): harden agentless config setters and parse
obfuscation config once (#2474)

## libdd-trace-stats
**Next version:** `10.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-stats-v10.0.0`

### ⚠️ major bump forced due to:

- `libdd-capabilities`: ^3.0.1 → ^4.0.0
- `libdd-capabilities-impl`: ^5.0.0 → ^6.0.0
- `libdd-common`: ^6.0.0 → ^7.0.0
- `libdd-shared-runtime`: ^4.0.0 → ^5.0.0
- `libdd-trace-obfuscation`: ^8.0.0 → ^9.0.0
- `libdd-trace-utils`: ^12.0.0 → ^13.0.0

### Commits

- feat(trace-exporter)!: add API to force flush stats on the trace
exporter (#2538)
- fix(trace-stats): cardinality limit telemetry name (#2559)
- feat(data-pipeline)!: refactor agent's /info obfuscation config format
(#2490)
- chore!: remove unused dependencies (v2) (#2511)
- feat(data-pipeline)!: generate agentless trace stats (#2488)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- chore(libdd-data-pipeline): solve cargo deny [APMSP-3884] (#2318)

## libdd-data-pipeline-core
**Next version:** `2.0.0`
**Semver bump:** `major`
**Tag:** `libdd-data-pipeline-core-v2.0.0`

### ⚠️ major bump forced due to:

- `libdd-capabilities`: ^3.0.1 → ^4.0.0
- `libdd-common`: ^6.0.0 → ^7.0.0
- `libdd-trace-obfuscation`: ^8.0.0 → ^9.0.0
- `libdd-trace-utils`: ^12.0.0 → ^13.0.0

### Commits

- refactor!: apply small timeout pooling strategy to libdd-http-client
as well (#2449)
- feat(data-pipeline)!: generate agentless trace stats (#2488)
- perf(data-pipeline): avoid parsing static entity header names (#2457)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- perf(trace-utils)!: use pooled spans on the send path (#2382)

## libdd-data-pipeline
**Next version:** `11.0.0`
**Semver bump:** `major`
**Tag:** `libdd-data-pipeline-v11.0.0`

### ⚠️ major bump forced due to:

- `libdd-capabilities`: ^3.0.1 → ^4.0.0
- `libdd-capabilities-impl`: ^5.0.0 → ^6.0.0
- `libdd-common`: ^6.0.0 → ^7.0.0
- `libdd-data-pipeline-core`: ^1.0.0 → ^2.0.0
- `libdd-shared-runtime`: ^4.0.0 → ^5.0.0
- `libdd-trace-obfuscation`: ^8.0.0 → ^9.0.0
- `libdd-trace-stats`: ^9.0.0 → ^10.0.0
- `libdd-trace-utils`: ^12.0.0 → ^13.0.0

### Commits

- feat(trace-exporter)!: add API to force flush stats on the trace
exporter (#2538)
- refactor!: apply small timeout pooling strategy to libdd-http-client
as well (#2449)
- feat(data-pipeline)!: refactor agent's /info obfuscation config format
(#2490)
- test(data-pipeline): stop OTLP gRPC post-connect test from hanging
(#2549)
- chore!: remove unused dependencies (v2) (#2511)
- feat(data-pipeline)!: generate agentless trace stats (#2488)
- fix(otlp): use potential dedupe in otlp serialization path (#2531)
- refactor(benchmarks): isolate enqueue timing in data-pipeline (#2499)
- perf(trace): write agentless JSON directly (#2454)
- test(data-pipeline): fix flaky OTLP gRPC exporter integration tests
(#2505)
- chore: move all remaining external deps to workspace-level
dependencies (#2476)
- perf(trace-utils)!: use pooled spans on the send path (#2382)
- feat(data-pipeline)!: OTLP gRPC trace export (#2171)
- chore(libdd-data-pipeline): solve cargo deny [APMSP-3884] (#2318)


[APMSP-3884]:
https://datadoghq.atlassian.net/browse/APMSP-3884?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: paullegranddc <82819397+paullegranddc@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants