Repository navigation
fix(trace-exporter): mark OTLP client-computed stats - #2245
Conversation
🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: f1d5c6f | Docs | Datadog PR Page | Give us feedback! |
BenchmarksComparisonBenchmark execution time: 2026-08-14 08:47:52 Comparing candidate commit f1d5c6f 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 8259CL CPU @ 2.50GHz | f1d5c6f | 1786696496 | bengl/otlp-client-computed-stats |
| 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 | 56.294ms | 56.643ms ± 0.156ms | 56.632ms ± 0.105ms | 56.736ms | 56.891ms | 57.057ms | 57.205ms | 1.01% | 0.697 | 0.580 | 0.27% | 0.011ms | 1 | 200 |
| trace_buffer/1_senders/10us_delay | throughput | 15732.911op/s | 15889.181op/s ± 43.560op/s | 15892.046op/s ± 29.379op/s | 15921.352op/s | 15952.262op/s | 15970.929op/s | 15987.403op/s | 0.60% | -0.680 | 0.543 | 0.27% | 3.080op/s | 1 | 200 |
| trace_buffer/1_senders/1us_delay | execution_time | 49.970ms | 50.081ms ± 0.031ms | 50.083ms ± 0.014ms | 50.094ms | 50.140ms | 50.158ms | 50.183ms | 0.20% | 0.268 | 0.864 | 0.06% | 0.002ms | 1 | 200 |
| trace_buffer/1_senders/1us_delay | throughput | 17934.362op/s | 17970.873op/s ± 11.243op/s | 17970.111op/s ± 5.124op/s | 17976.585op/s | 17988.218op/s | 17989.943op/s | 18010.752op/s | 0.23% | -0.262 | 0.864 | 0.06% | 0.795op/s | 1 | 200 |
| trace_buffer/1_senders/no_delay | execution_time | 333.915µs | 339.966µs ± 4.859µs | 339.246µs ± 2.087µs | 341.698µs | 345.216µs | 353.654µs | 388.149µs | 14.42% | 5.426 | 47.538 | 1.43% | 0.344µs | 1 | 200 |
| trace_buffer/1_senders/no_delay | throughput | 2318697.201op/s | 2647828.797op/s ± 35315.538op/s | 2652943.550op/s ± 16322.100op/s | 2667365.031op/s | 2682068.936op/s | 2685350.645op/s | 2695294.431op/s | 1.60% | -4.650 | 37.106 | 1.33% | 2497.186op/s | 1 | 200 |
| trace_buffer/2_senders/10us_delay | execution_time | 56.969ms | 57.375ms ± 0.151ms | 57.377ms ± 0.112ms | 57.495ms | 57.598ms | 57.692ms | 57.816ms | 0.76% | -0.049 | -0.393 | 0.26% | 0.011ms | 1 | 200 |
| trace_buffer/2_senders/10us_delay | throughput | 31133.109op/s | 31372.612op/s ± 82.445op/s | 31371.207op/s ± 61.091op/s | 31429.288op/s | 31509.098op/s | 31528.477op/s | 31596.018op/s | 0.72% | 0.062 | -0.397 | 0.26% | 5.830op/s | 1 | 200 |
| trace_buffer/2_senders/1us_delay | execution_time | 50.057ms | 50.118ms ± 0.039ms | 50.108ms ± 0.021ms | 50.134ms | 50.201ms | 50.227ms | 50.242ms | 0.27% | 1.101 | 0.610 | 0.08% | 0.003ms | 1 | 200 |
| trace_buffer/2_senders/1us_delay | throughput | 35826.718op/s | 35915.230op/s ± 27.967op/s | 35922.551op/s ± 15.339op/s | 35935.878op/s | 35945.829op/s | 35954.839op/s | 35958.660op/s | 0.10% | -1.098 | 0.602 | 0.08% | 1.978op/s | 1 | 200 |
| trace_buffer/2_senders/no_delay | execution_time | 824.565µs | 869.590µs ± 19.125µs | 869.905µs ± 12.475µs | 878.909µs | 904.038µs | 920.542µs | 924.593µs | 6.29% | 0.303 | 0.106 | 2.19% | 1.352µs | 1 | 200 |
| trace_buffer/2_senders/no_delay | throughput | 1946802.650op/s | 2070931.371op/s ± 45310.141op/s | 2069192.453op/s ± 29958.431op/s | 2101132.787op/s | 2145255.890op/s | 2164644.449op/s | 2182968.505op/s | 5.50% | -0.172 | 0.017 | 2.18% | 3203.911op/s | 1 | 200 |
| trace_buffer/4_senders/10us_delay | execution_time | 57.418ms | 57.641ms ± 0.133ms | 57.623ms ± 0.064ms | 57.698ms | 57.907ms | 58.101ms | 58.178ms | 0.96% | 1.273 | 2.379 | 0.23% | 0.009ms | 1 | 200 |
| trace_buffer/4_senders/10us_delay | throughput | 61878.701op/s | 62455.828op/s ± 143.912op/s | 62474.912op/s ± 68.981op/s | 62538.957op/s | 62659.139op/s | 62691.166op/s | 62697.707op/s | 0.36% | -1.254 | 2.317 | 0.23% | 10.176op/s | 1 | 200 |
| trace_buffer/4_senders/1us_delay | execution_time | 50.092ms | 50.170ms ± 0.040ms | 50.160ms ± 0.016ms | 50.186ms | 50.259ms | 50.312ms | 50.364ms | 0.41% | 1.743 | 4.234 | 0.08% | 0.003ms | 1 | 200 |
| trace_buffer/4_senders/1us_delay | throughput | 71480.158op/s | 71756.263op/s ± 57.838op/s | 71770.211op/s ± 23.446op/s | 71791.216op/s | 71822.693op/s | 71838.427op/s | 71867.759op/s | 0.14% | -1.736 | 4.198 | 0.08% | 4.090op/s | 1 | 200 |
| trace_buffer/4_senders/no_delay | execution_time | 2.013ms | 2.257ms ± 0.082ms | 2.255ms ± 0.050ms | 2.306ms | 2.398ms | 2.422ms | 2.454ms | 8.82% | -0.146 | -0.031 | 3.64% | 0.006ms | 1 | 200 |
| trace_buffer/4_senders/no_delay | throughput | 1467182.639op/s | 1596817.425op/s ± 58777.416op/s | 1596583.416op/s ± 34628.353op/s | 1626973.612op/s | 1701867.136op/s | 1747844.804op/s | 1788411.985op/s | 12.01% | 0.364 | 0.181 | 3.67% | 4156.191op/s | 1 | 200 |
| trace_buffer/8_senders/10us_delay | execution_time | 57.632ms | 57.958ms ± 0.211ms | 57.888ms ± 0.129ms | 58.093ms | 58.359ms | 58.468ms | 58.615ms | 1.26% | 0.846 | -0.227 | 0.36% | 0.015ms | 1 | 200 |
| trace_buffer/8_senders/10us_delay | throughput | 122835.018op/s | 124228.920op/s ± 451.807op/s | 124378.727op/s ± 277.243op/s | 124580.536op/s | 124724.600op/s | 124851.159op/s | 124929.786op/s | 0.44% | -0.834 | -0.252 | 0.36% | 31.948op/s | 1 | 200 |
| trace_buffer/8_senders/1us_delay | execution_time | 50.207ms | 50.298ms ± 0.059ms | 50.286ms ± 0.032ms | 50.322ms | 50.421ms | 50.500ms | 50.544ms | 0.51% | 1.474 | 2.655 | 0.12% | 0.004ms | 1 | 200 |
| trace_buffer/8_senders/1us_delay | throughput | 142451.323op/s | 143147.502op/s ± 166.354op/s | 143182.255op/s ± 90.178op/s | 143266.373op/s | 143330.408op/s | 143363.999op/s | 143406.789op/s | 0.16% | -1.465 | 2.618 | 0.12% | 11.763op/s | 1 | 200 |
| trace_buffer/8_senders/no_delay | execution_time | 6.095ms | 6.569ms ± 0.091ms | 6.578ms ± 0.049ms | 6.623ms | 6.698ms | 6.755ms | 6.813ms | 3.57% | -0.906 | 3.463 | 1.38% | 0.006ms | 1 | 200 |
| trace_buffer/8_senders/no_delay | throughput | 1056830.368op/s | 1096201.225op/s ± 15378.114op/s | 1094508.088op/s ± 8286.548op/s | 1103650.528op/s | 1123069.648op/s | 1142336.757op/s | 1181337.299op/s | 7.93% | 1.111 | 4.422 | 1.40% | 1087.397op/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 | [56.621ms; 56.664ms] or [-0.038%; +0.038%] | None | None | None |
| trace_buffer/1_senders/10us_delay | throughput | [15883.144op/s; 15895.218op/s] or [-0.038%; +0.038%] | None | None | None |
| trace_buffer/1_senders/1us_delay | execution_time | [50.077ms; 50.085ms] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/1_senders/1us_delay | throughput | [17969.314op/s; 17972.431op/s] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/1_senders/no_delay | execution_time | [339.292µs; 340.639µs] or [-0.198%; +0.198%] | None | None | None |
| trace_buffer/1_senders/no_delay | throughput | [2642934.403op/s; 2652723.191op/s] or [-0.185%; +0.185%] | None | None | None |
| trace_buffer/2_senders/10us_delay | execution_time | [57.354ms; 57.396ms] or [-0.036%; +0.036%] | None | None | None |
| trace_buffer/2_senders/10us_delay | throughput | [31361.186op/s; 31384.038op/s] or [-0.036%; +0.036%] | None | None | None |
| trace_buffer/2_senders/1us_delay | execution_time | [50.113ms; 50.123ms] or [-0.011%; +0.011%] | None | None | None |
| trace_buffer/2_senders/1us_delay | throughput | [35911.354op/s; 35919.106op/s] or [-0.011%; +0.011%] | None | None | None |
| trace_buffer/2_senders/no_delay | execution_time | [866.940µs; 872.241µs] or [-0.305%; +0.305%] | None | None | None |
| trace_buffer/2_senders/no_delay | throughput | [2064651.821op/s; 2077210.920op/s] or [-0.303%; +0.303%] | None | None | None |
| trace_buffer/4_senders/10us_delay | execution_time | [57.623ms; 57.660ms] or [-0.032%; +0.032%] | None | None | None |
| trace_buffer/4_senders/10us_delay | throughput | [62435.883op/s; 62475.773op/s] or [-0.032%; +0.032%] | None | None | None |
| trace_buffer/4_senders/1us_delay | execution_time | [50.164ms; 50.175ms] or [-0.011%; +0.011%] | None | None | None |
| trace_buffer/4_senders/1us_delay | throughput | [71748.247op/s; 71764.279op/s] or [-0.011%; +0.011%] | None | None | None |
| trace_buffer/4_senders/no_delay | execution_time | [2.246ms; 2.269ms] or [-0.505%; +0.505%] | None | None | None |
| trace_buffer/4_senders/no_delay | throughput | [1588671.440op/s; 1604963.409op/s] or [-0.510%; +0.510%] | None | None | None |
| trace_buffer/8_senders/10us_delay | execution_time | [57.929ms; 57.988ms] or [-0.051%; +0.051%] | None | None | None |
| trace_buffer/8_senders/10us_delay | throughput | [124166.304op/s; 124291.536op/s] or [-0.050%; +0.050%] | None | None | None |
| trace_buffer/8_senders/1us_delay | execution_time | [50.290ms; 50.306ms] or [-0.016%; +0.016%] | None | None | None |
| trace_buffer/8_senders/1us_delay | throughput | [143124.447op/s; 143170.557op/s] or [-0.016%; +0.016%] | None | None | None |
| trace_buffer/8_senders/no_delay | execution_time | [6.557ms; 6.582ms] or [-0.192%; +0.192%] | None | None | None |
| trace_buffer/8_senders/no_delay | throughput | [1094069.966op/s; 1098332.483op/s] or [-0.194%; +0.194%] | None | None | None |
Baseline
Baseline benchmark details
Group 1
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 3e3454a | 1786644285 | 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 | 56.345ms | 56.576ms ± 0.203ms | 56.531ms ± 0.077ms | 56.613ms | 56.924ms | 57.509ms | 57.574ms | 1.84% | 2.576 | 8.581 | 0.36% | 0.014ms | 1 | 200 |
| trace_buffer/1_senders/10us_delay | throughput | 15632.024op/s | 15908.019op/s ± 56.534op/s | 15920.408op/s ± 21.677op/s | 15940.918op/s | 15960.198op/s | 15972.358op/s | 15973.076op/s | 0.33% | -2.535 | 8.326 | 0.35% | 3.998op/s | 1 | 200 |
| trace_buffer/1_senders/1us_delay | execution_time | 50.023ms | 50.076ms ± 0.036ms | 50.078ms ± 0.013ms | 50.086ms | 50.140ms | 50.198ms | 50.306ms | 0.46% | 1.994 | 8.871 | 0.07% | 0.003ms | 1 | 200 |
| trace_buffer/1_senders/1us_delay | throughput | 17890.383op/s | 17972.593op/s ± 12.901op/s | 17972.037op/s ± 4.556op/s | 17979.551op/s | 17989.674op/s | 17990.588op/s | 17991.615op/s | 0.11% | -1.979 | 8.766 | 0.07% | 0.912op/s | 1 | 200 |
| trace_buffer/1_senders/no_delay | execution_time | 330.284µs | 339.222µs ± 5.324µs | 338.465µs ± 1.634µs | 340.667µs | 344.021µs | 348.548µs | 398.215µs | 17.65% | 7.050 | 74.106 | 1.57% | 0.376µs | 1 | 200 |
| trace_buffer/1_senders/no_delay | throughput | 2260088.106op/s | 2653721.278op/s ± 37821.185op/s | 2659066.334op/s ± 12834.961op/s | 2671271.072op/s | 2692714.004op/s | 2707471.294op/s | 2724928.907op/s | 2.48% | -5.904 | 57.510 | 1.42% | 2674.362op/s | 1 | 200 |
| trace_buffer/2_senders/10us_delay | execution_time | 56.772ms | 57.144ms ± 0.161ms | 57.145ms ± 0.117ms | 57.260ms | 57.421ms | 57.500ms | 57.551ms | 0.71% | 0.119 | -0.493 | 0.28% | 0.011ms | 1 | 200 |
| trace_buffer/2_senders/10us_delay | throughput | 31276.579op/s | 31499.410op/s ± 88.984op/s | 31498.578op/s ± 64.875op/s | 31563.335op/s | 31641.603op/s | 31676.933op/s | 31706.025op/s | 0.66% | -0.106 | -0.497 | 0.28% | 6.292op/s | 1 | 200 |
| trace_buffer/2_senders/1us_delay | execution_time | 50.043ms | 50.111ms ± 0.032ms | 50.106ms ± 0.016ms | 50.122ms | 50.181ms | 50.222ms | 50.225ms | 0.24% | 1.265 | 2.026 | 0.06% | 0.002ms | 1 | 200 |
| trace_buffer/2_senders/1us_delay | throughput | 35838.798op/s | 35919.948op/s ± 22.890op/s | 35923.859op/s ± 11.705op/s | 35935.522op/s | 35947.994op/s | 35956.727op/s | 35969.220op/s | 0.13% | -1.260 | 2.013 | 0.06% | 1.619op/s | 1 | 200 |
| trace_buffer/2_senders/no_delay | execution_time | 831.074µs | 879.497µs ± 18.940µs | 879.636µs ± 13.007µs | 893.070µs | 908.902µs | 924.801µs | 965.004µs | 9.70% | 0.272 | 1.396 | 2.15% | 1.339µs | 1 | 200 |
| trace_buffer/2_senders/no_delay | throughput | 1865276.632op/s | 2047564.341op/s ± 43933.360op/s | 2046301.776op/s ± 30317.892op/s | 2075607.221op/s | 2123739.333op/s | 2152106.147op/s | 2165872.524op/s | 5.84% | -0.072 | 0.930 | 2.14% | 3106.558op/s | 1 | 200 |
| trace_buffer/4_senders/10us_delay | execution_time | 57.289ms | 57.541ms ± 0.106ms | 57.533ms ± 0.057ms | 57.600ms | 57.712ms | 57.875ms | 57.939ms | 0.71% | 0.855 | 1.726 | 0.18% | 0.008ms | 1 | 200 |
| trace_buffer/4_senders/10us_delay | throughput | 62134.289op/s | 62564.471op/s ± 115.301op/s | 62573.160op/s ± 61.535op/s | 62629.620op/s | 62737.144op/s | 62769.102op/s | 62838.940op/s | 0.42% | -0.839 | 1.685 | 0.18% | 8.153op/s | 1 | 200 |
| trace_buffer/4_senders/1us_delay | execution_time | 50.104ms | 50.169ms ± 0.037ms | 50.159ms ± 0.017ms | 50.181ms | 50.251ms | 50.285ms | 50.326ms | 0.33% | 1.480 | 2.377 | 0.07% | 0.003ms | 1 | 200 |
| trace_buffer/4_senders/1us_delay | throughput | 71534.260op/s | 71756.982op/s ± 53.537op/s | 71772.176op/s ± 24.684op/s | 71792.595op/s | 71814.397op/s | 71835.559op/s | 71851.071op/s | 0.11% | -1.475 | 2.357 | 0.07% | 3.786op/s | 1 | 200 |
| trace_buffer/4_senders/no_delay | execution_time | 2.176ms | 2.432ms ± 0.082ms | 2.436ms ± 0.059ms | 2.493ms | 2.560ms | 2.585ms | 2.615ms | 7.37% | -0.365 | -0.189 | 3.37% | 0.006ms | 1 | 200 |
| trace_buffer/4_senders/no_delay | throughput | 1376638.032op/s | 1482214.974op/s ± 50917.181op/s | 1478133.252op/s ± 35272.888op/s | 1517193.262op/s | 1571885.821op/s | 1611111.672op/s | 1654555.664op/s | 11.94% | 0.541 | 0.073 | 3.43% | 3600.388op/s | 1 | 200 |
| trace_buffer/8_senders/10us_delay | execution_time | 57.634ms | 57.970ms ± 0.231ms | 57.875ms ± 0.110ms | 58.114ms | 58.475ms | 58.531ms | 58.581ms | 1.22% | 0.997 | -0.079 | 0.40% | 0.016ms | 1 | 200 |
| trace_buffer/8_senders/10us_delay | throughput | 122906.382op/s | 124204.140op/s ± 493.902op/s | 124405.551op/s ± 236.509op/s | 124557.660op/s | 124718.933op/s | 124818.467op/s | 124927.004op/s | 0.42% | -0.986 | -0.103 | 0.40% | 34.924op/s | 1 | 200 |
| trace_buffer/8_senders/1us_delay | execution_time | 50.207ms | 50.292ms ± 0.057ms | 50.273ms ± 0.028ms | 50.321ms | 50.387ms | 50.497ms | 50.502ms | 0.46% | 1.279 | 1.934 | 0.11% | 0.004ms | 1 | 200 |
| trace_buffer/8_senders/1us_delay | throughput | 142568.405op/s | 143164.902op/s ± 160.798op/s | 143217.936op/s ± 81.176op/s | 143269.963op/s | 143350.022op/s | 143397.209op/s | 143406.872op/s | 0.13% | -1.271 | 1.905 | 0.11% | 11.370op/s | 1 | 200 |
| trace_buffer/8_senders/no_delay | execution_time | 6.568ms | 6.784ms ± 0.067ms | 6.790ms ± 0.037ms | 6.827ms | 6.885ms | 6.906ms | 6.916ms | 1.86% | -0.633 | 0.368 | 0.98% | 0.005ms | 1 | 200 |
| trace_buffer/8_senders/no_delay | throughput | 1041102.335op/s | 1061449.651op/s ± 10500.560op/s | 1060420.320op/s ± 5812.597op/s | 1066311.053op/s | 1082547.772op/s | 1091106.101op/s | 1096286.431op/s | 3.38% | 0.691 | 0.469 | 0.99% | 742.502op/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 | [56.548ms; 56.604ms] or [-0.050%; +0.050%] | None | None | None |
| trace_buffer/1_senders/10us_delay | throughput | [15900.184op/s; 15915.854op/s] or [-0.049%; +0.049%] | None | None | None |
| trace_buffer/1_senders/1us_delay | execution_time | [50.071ms; 50.081ms] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/1_senders/1us_delay | throughput | [17970.805op/s; 17974.381op/s] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/1_senders/no_delay | execution_time | [338.484µs; 339.959µs] or [-0.217%; +0.217%] | None | None | None |
| trace_buffer/1_senders/no_delay | throughput | [2648479.625op/s; 2658962.931op/s] or [-0.198%; +0.198%] | None | None | None |
| trace_buffer/2_senders/10us_delay | execution_time | [57.122ms; 57.167ms] or [-0.039%; +0.039%] | None | None | None |
| trace_buffer/2_senders/10us_delay | throughput | [31487.078op/s; 31511.742op/s] or [-0.039%; +0.039%] | None | None | None |
| trace_buffer/2_senders/1us_delay | execution_time | [50.107ms; 50.116ms] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/2_senders/1us_delay | throughput | [35916.775op/s; 35923.120op/s] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/2_senders/no_delay | execution_time | [876.872µs; 882.122µs] or [-0.298%; +0.298%] | None | None | None |
| trace_buffer/2_senders/no_delay | throughput | [2041475.600op/s; 2053653.082op/s] or [-0.297%; +0.297%] | None | None | None |
| trace_buffer/4_senders/10us_delay | execution_time | [57.526ms; 57.556ms] or [-0.026%; +0.026%] | None | None | None |
| trace_buffer/4_senders/10us_delay | throughput | [62548.491op/s; 62580.450op/s] or [-0.026%; +0.026%] | None | None | None |
| trace_buffer/4_senders/1us_delay | execution_time | [50.164ms; 50.175ms] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/4_senders/1us_delay | throughput | [71749.562op/s; 71764.402op/s] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/4_senders/no_delay | execution_time | [2.420ms; 2.443ms] or [-0.469%; +0.469%] | None | None | None |
| trace_buffer/4_senders/no_delay | throughput | [1475158.342op/s; 1489271.605op/s] or [-0.476%; +0.476%] | None | None | None |
| trace_buffer/8_senders/10us_delay | execution_time | [57.938ms; 58.002ms] or [-0.055%; +0.055%] | None | None | None |
| trace_buffer/8_senders/10us_delay | throughput | [124135.690op/s; 124272.590op/s] or [-0.055%; +0.055%] | None | None | None |
| trace_buffer/8_senders/1us_delay | execution_time | [50.284ms; 50.300ms] or [-0.016%; +0.016%] | None | None | None |
| trace_buffer/8_senders/1us_delay | throughput | [143142.617op/s; 143187.187op/s] or [-0.016%; +0.016%] | None | None | None |
| trace_buffer/8_senders/no_delay | execution_time | [6.775ms; 6.793ms] or [-0.136%; +0.136%] | None | None | None |
| trace_buffer/8_senders/no_delay | throughput | [1059994.375op/s; 1062904.928op/s] or [-0.137%; +0.137%] | None | None | None |
| }) && attrs.iter().any(|attr| { | ||
| attr.get("key").and_then(Value::as_str) == Some("_dd.stats_computed") | ||
| && attr.pointer("/value/stringValue").and_then(Value::as_str) | ||
| == Some("true") |
There was a problem hiding this comment.
Out of curiosity, why can't the new test be implemented in term of json_body_includes? I'm not sure how it works exactly, but naively it looks like the previous payload could be extended for _dd.stats_computed
a5515d2 to
1281505
Compare
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
|
1281505 to
6356aee
Compare
When tracers compute span metrics outside libdatadog, OTLP trace exports still need to mark the resource and direct Agent request so the Agent does not compute the same stats again. Use the tracer metadata flag in addition to libdatadog's native OTLP stats worker state.
6356aee to
f1d5c6f
Compare
|
Rebasing and merging in the absence of @bengl , this is blocking for a libdatadog-nodejs release. |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
) # Release proposal for libdd-data-pipeline, libdd-telemetry and their dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-ddsketch **Next version:** `1.1.1` **Semver bump:** `patch` **Tag:** `libdd-ddsketch-v1.1.1` ### Commits - refactor: migrate to workspace dependencies, phase 4 (#2296) - chore: moving to workspace-level dependencies, phase 2 (#2270) ## libdd-shared-runtime **Next version:** `3.0.0` **Semver bump:** `major` **Tag:** `libdd-shared-runtime-v3.0.0` ###⚠️ major bump forced due to: - `libdd-capabilities`: ^2.1.0 → ^3.0.0 - `libdd-capabilities-impl`: ^3.0.0 → ^4.0.0 ### Commits - feat(shared-runtime): add block_on_with_timeout to BlockingRuntime (#2333) - chore(runtime): restart all workers on invalid state (#2262) - refactor: migrate to workspace dependencies, phase 3 (#2283) - refactor: consolidate core dependencies at workspace level (phase 1) (#2253) ## libdd-dogstatsd-client **Next version:** `5.0.0` **Semver bump:** `major` **Tag:** `libdd-dogstatsd-client-v5.0.0` ### Commits - refactor: consolidate core dependencies at workspace level (phase 1) (#2253) - feat(dogstatsd)!: add shared_runtime buffered sink (#2224) - refactor(statsd)!: make client clonable (#2222) ## libdd-telemetry **Next version:** `7.0.0` **Semver bump:** `major` **Tag:** `libdd-telemetry-v7.0.0` ### Commits - refactor(rc)!: make conversion from RemoteConfigProduct back and forth generally available (#2325) - feat(telemetry)!: Add Installation signature and AppProduct changes payloads (#2213) - fix(telemetry)!: stop sending Connection: close to the Agent (#2286) - refactor: migrate to workspace dependencies, phase 3 (#2283) - chore: moving to workspace-level dependencies, phase 2 (#2270) - refactor: consolidate core dependencies at workspace level (phase 1) (#2253) - fix: drain the mailbox before stopping (#2258) - feat(telemetry)!: make telemetry worker wasm-compatible for the TraceExporter (#2172) - fix(sidecar): don't double-encode file:// telemetry endpoints (#2230) ## libdd-trace-obfuscation **Next version:** `6.0.0` **Semver bump:** `major` **Tag:** `libdd-trace-obfuscation-v6.0.0` ###⚠️ major bump forced due to: - `libdd-trace-utils`: ^9.0.0 → ^10.1.0 ### Commits - refactor: migrate to workspace dependencies, phase 4 (#2296) - chore(lint): update nightly (#2281) - chore: moving to workspace-level dependencies, phase 2 (#2270) - refactor: consolidate core dependencies at workspace level (phase 1) (#2253) - fix: new clippy lints (#2219) ## libdd-trace-stats **Next version:** `7.0.0` **Semver bump:** `major` **Tag:** `libdd-trace-stats-v7.0.0` ###⚠️ major bump forced due to: - `libdd-capabilities`: ^2.1.0 → ^3.0.0 - `libdd-capabilities-impl`: ^3.0.0 → ^4.0.0 - `libdd-dogstatsd-client`: ^4.0.0 → ^5.0.0 - `libdd-telemetry`: ^6.0.0 → ^7.0.0 - `libdd-trace-utils`: ^9.0.0 → ^10.1.0 ### Commits - feat: add v1 isolated bricks for trace exporter (#2280) - refactor: migrate to workspace dependencies, phase 4 (#2296) - feat(data-pipeline)!: add compression option for agentless export (#2205) - feat(stats)!: per-field cardinality limits (#2211) - refactor: migrate to workspace dependencies, phase 3 (#2283) - feat(stats)!: string field length limit (#2267) - feat(trace_exporter)!: add `restart_after_fork` configuration option [APMSP-3843] (#2263) - refactor: consolidate core dependencies at workspace level (phase 1) (#2253) - feat(stats)!: implement additional metric tags in libdd-trace-stats (#2170) - refactor(statsd)!: make client clonable (#2222) - fix(stats-exporter): disable retries for stats payload sends (#2249) - feat(telemetry)!: make telemetry worker wasm-compatible for the TraceExporter (#2172) - fix!: css obfuscation logic (#2203) ## libdd-data-pipeline **Next version:** `8.0.0` **Semver bump:** `major` **Tag:** `libdd-data-pipeline-v8.0.0` ###⚠️ major bump forced due to: - `libdd-capabilities`: ^2.1.0 → ^3.0.0 - `libdd-capabilities-impl`: ^3.0.0 → ^4.0.0 - `libdd-dogstatsd-client`: ^4.0.0 → ^5.0.0 - `libdd-telemetry`: ^6.0.0 → ^7.0.0 - `libdd-trace-stats`: ^6.0.0 → ^7.0.0 - `libdd-trace-utils`: ^9.0.0 → ^10.1.0 ### Commits - fix(trace-exporter): mark OTLP client-computed stats (#2245) - feat(data-pipeline): adds new attributes to OTLP trace metrics export (#2316) - feat: add v1 isolated bricks for trace exporter (#2280) - feat(data-pipeline)!: add flush_and_close to the trace buffer (#2313) - feat(telemetry)!: Add Installation signature and AppProduct changes payloads (#2213) - refactor: migrate to workspace dependencies, phase 4 (#2296) - feat(data-pipeline)!: add compression option for agentless export (#2205) - fix(telemetry)!: stop sending Connection: close to the Agent (#2286) - feat(stats)!: per-field cardinality limits (#2211) - refactor: migrate to workspace dependencies, phase 3 (#2283) - feat(stats)!: string field length limit (#2267) - refactor(trace-utils)!: split generic TracerHeaderTags (#2279) - chore: moving to workspace-level dependencies, phase 2 (#2270) - feat(trace_exporter)!: add `restart_after_fork` configuration option [APMSP-3843] (#2263) - feat(data-pipeline): emit additional_metric_tags on OTLP span duration metric (#2264) - refactor: consolidate core dependencies at workspace level (phase 1) (#2253) - feat(dogstatsd)!: add shared_runtime buffered sink (#2224) - feat(stats)!: implement additional metric tags in libdd-trace-stats (#2170) - refactor(statsd)!: make client clonable (#2222) - feat(telemetry)!: make telemetry worker wasm-compatible for the TraceExporter (#2172) - feat(trace_exporter)!: remove deprecated methods (#2250) - feat(trace-utils)!: add v1 decoder (#2174) - feat(trace-utils)!: add encoder v1 to v04 + refactor (#2145) - feat(otlp): add instrumentation scope metadata (#2235) - fix(trace-utils)!: serialize v0.5 span links and events into meta (#980) - fix!: css obfuscation logic (#2203) - test(data-pipeline): gate telemetry-only tests behind the telemetry feature (#2204) [APMSP-3843]: https://datadoghq.atlassian.net/browse/APMSP-3843?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: hoolioh <107922352+hoolioh@users.noreply.github.com>
What does this PR do?
Marks OTLP trace exports as client-computed when tracer metadata already says stats were computed client-side.
This sets both:
_dd.stats_computed=truedatadog-client-computed-stats: yeswhen either
metadata.client_computed_statsor libdatadog's native OTLP stats worker is enabled.Motivation
dd-trace-jscomputes OTLP span metrics in JS and passes that state throughset_client_computed_stats(). The OTLP trace exporter only looked atotlp_stats_enabled, so Resources sent by JS-backed stats did not carry_dd.stats_computed=trueand system-tests rejected the payload.Additional Notes
The native OTLP stats worker path remains unchanged because
otlp_stats_enabledstill sets the same Resource attribute and header.How to test the change?
cargo test -p libdd-data-pipeline --test test_trace_exporter_otlp_export -- --nocaptureResult: 2 passed.