perf(data-pipeline): avoid parsing static entity header names - #2457
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
Conversation
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.
|
✅ All CI checks and tests passed. 🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 769d408 | Docs | View more details | Give us feedback! |
BenchmarksComparisonBenchmark execution time: 2026-09-10 21:01:09 Comparing candidate commit 769d408 in PR branch Found 2 performance improvements and 0 performance regressions! Performance is the same for 22 metrics, 0 unstable metrics.
|
| 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 |
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
Tests failed on this commit 2a74c5e: What to do next?
|
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
Tests failed on this commit 57c1829: What to do next?
|
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
…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>
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.