libdatadog
libdatadog copied to clipboard
[profiling] Support OTel signal
What does this PR do?
Initial implementation of OTel protocol for libdatadog.
Motivation
OTel is coming, we should see how hard it is to create the signal, and what gotchas we run into
Additional Notes
- Otel is a moving target, this will need to change as the OTel format does.
- I hardwired it to FFI. If you use this branch, you get OTel but not pprof
- Still working on how best to support links / endpoints.
How to test the change?
- I had claude write tests for me. That should be sufficient, right?
Benchmarks
Comparison
Benchmark execution time: 2025-09-16 20:10:07
Comparing candidate commit d77157cb in PR branch dsn/otel-proto with baseline commit 0262f08e in branch main.
Found 10 performance improvements and 1 performance regressions! Performance is the same for 42 metrics, 2 unstable metrics.
scenario:benching serializing traces from their internal representation to msgpack
- 🟥
execution_time[+780.329µs; +792.783µs] or [+5.549%; +5.638%]
scenario:credit_card/is_card_number/37828224631000521389798
- 🟩
execution_time[-7.100µs; -7.055µs] or [-13.604%; -13.517%] - 🟩
throughput[+2994883.368op/s; +3016823.837op/s] or [+15.632%; +15.746%]
scenario:credit_card/is_card_number_no_luhn/ 378282246310005
- 🟩
execution_time[-5.406µs; -5.359µs] or [-9.254%; -9.174%] - 🟩
throughput[+1730394.044op/s; +1744229.848op/s] or [+10.108%; +10.189%]
scenario:credit_card/is_card_number_no_luhn/378282246310005
- 🟩
execution_time[-5.072µs; -5.019µs] or [-9.250%; -9.154%] - 🟩
throughput[+1839105.105op/s; +1856741.598op/s] or [+10.085%; +10.181%]
scenario:credit_card/is_card_number_no_luhn/37828224631000521389798
- 🟩
execution_time[-7.138µs; -7.099µs] or [-13.669%; -13.595%] - 🟩
throughput[+3013560.480op/s; +3032252.834op/s] or [+15.736%; +15.834%]
scenario:normalization/normalize_name/normalize_name/good
- 🟩
execution_time[-661.954ns; -636.195ns] or [-6.309%; -6.063%] - 🟩
throughput[+6162704.325op/s; +6414104.853op/s] or [+6.466%; +6.730%]
Candidate
Candidate benchmark details
Group 1
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | 159.100µs | 159.804µs ± 0.262µs | 159.751µs ± 0.122µs | 159.901µs | 160.215µs | 160.729µs | 161.125µs | 0.86% | 1.575 | 5.008 | 0.16% | 0.019µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | [159.768µs; 159.841µs] or [-0.023%; +0.023%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching deserializing traces from msgpack to their internal representation | execution_time | 60.712ms | 61.302ms ± 2.422ms | 61.000ms ± 0.070ms | 61.065ms | 61.294ms | 78.609ms | 83.191ms | 36.38% | 8.060 | 63.769 | 3.94% | 0.171ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching deserializing traces from msgpack to their internal representation | execution_time | [60.966ms; 61.637ms] or [-0.547%; +0.547%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| credit_card/is_card_number/ | execution_time | 3.892µs | 3.911µs ± 0.003µs | 3.911µs ± 0.001µs | 3.912µs | 3.915µs | 3.917µs | 3.919µs | 0.22% | -1.450 | 14.819 | 0.06% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 255167923.845op/s | 255705755.671op/s ± 165212.527op/s | 255721697.986op/s ± 94688.911op/s | 255812794.256op/s | 255868273.050op/s | 255912319.963op/s | 256946318.116op/s | 0.48% | 1.479 | 15.045 | 0.06% | 11682.290op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 77.044µs | 77.843µs ± 0.832µs | 77.642µs ± 0.399µs | 78.096µs | 79.484µs | 80.904µs | 81.639µs | 5.15% | 2.079 | 5.042 | 1.07% | 0.059µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 12249004.602op/s | 12847842.100op/s ± 134404.503op/s | 12879561.436op/s ± 66535.732op/s | 12943179.529op/s | 12970753.193op/s | 12978759.604op/s | 12979583.015op/s | 0.78% | -1.995 | 4.602 | 1.04% | 9503.834op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 70.826µs | 71.110µs ± 0.303µs | 71.011µs ± 0.138µs | 71.210µs | 71.614µs | 72.092µs | 72.929µs | 2.70% | 2.077 | 6.747 | 0.42% | 0.021µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 13711958.432op/s | 14062919.250op/s ± 59354.498op/s | 14082387.270op/s ± 27332.276op/s | 14106811.474op/s | 14115572.087op/s | 14118324.484op/s | 14119185.149op/s | 0.26% | -2.022 | 6.329 | 0.42% | 4196.997op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 3.897µs | 3.912µs ± 0.003µs | 3.912µs ± 0.002µs | 3.913µs | 3.916µs | 3.918µs | 3.921µs | 0.21% | -0.616 | 3.923 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 255063209.192op/s | 255624019.024op/s ± 180178.139op/s | 255606269.185op/s ± 107769.518op/s | 255736787.737op/s | 255910278.920op/s | 255942274.702op/s | 256623820.090op/s | 0.40% | 0.628 | 3.977 | 0.07% | 12740.518op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 67.573µs | 67.946µs ± 0.374µs | 67.810µs ± 0.152µs | 68.067µs | 68.650µs | 69.292µs | 70.070µs | 3.33% | 2.174 | 6.477 | 0.55% | 0.026µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 14271406.819op/s | 14717923.563op/s ± 80030.592op/s | 14747139.232op/s ± 33075.217op/s | 14773732.375op/s | 14786752.473op/s | 14794108.895op/s | 14798817.625op/s | 0.35% | -2.114 | 6.061 | 0.54% | 5659.017op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 44.691µs | 45.117µs ± 0.160µs | 45.115µs ± 0.103µs | 45.218µs | 45.335µs | 45.421µs | 45.934µs | 1.82% | 0.937 | 4.084 | 0.35% | 0.011µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 21770530.566op/s | 22164655.906op/s ± 78327.160op/s | 22165709.684op/s ± 50479.021op/s | 22215289.153op/s | 22279395.527op/s | 22306235.015op/s | 22375989.394op/s | 0.95% | -0.883 | 3.827 | 0.35% | 5538.567op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 6.027µs | 6.037µs ± 0.016µs | 6.034µs ± 0.002µs | 6.037µs | 6.044µs | 6.110µs | 6.172µs | 2.29% | 5.599 | 35.158 | 0.26% | 0.001µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 162013770.584op/s | 165638597.481op/s ± 429132.261op/s | 165721265.827op/s ± 60242.741op/s | 165775929.337op/s | 165856455.900op/s | 165883885.356op/s | 165909915.319op/s | 0.11% | -5.554 | 34.528 | 0.26% | 30344.233op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 3.892µs | 3.911µs ± 0.003µs | 3.911µs ± 0.001µs | 3.912µs | 3.915µs | 3.919µs | 3.923µs | 0.30% | -0.695 | 13.706 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 254939439.171op/s | 255697414.344op/s ± 172442.412op/s | 255713821.333op/s ± 78648.903op/s | 255791074.414op/s | 255882401.932op/s | 255918260.658op/s | 256920810.616op/s | 0.47% | 0.726 | 13.878 | 0.07% | 12193.520op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 65.027µs | 65.422µs ± 0.045µs | 65.422µs ± 0.021µs | 65.443µs | 65.480µs | 65.511µs | 65.621µs | 0.30% | -2.804 | 30.077 | 0.07% | 0.003µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 15239025.611op/s | 15285434.494op/s ± 10510.322op/s | 15285462.761op/s ± 5015.621op/s | 15290510.328op/s | 15296025.634op/s | 15299284.096op/s | 15378224.414op/s | 0.61% | 2.854 | 30.522 | 0.07% | 743.192op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 52.955µs | 53.031µs ± 0.030µs | 53.033µs ± 0.018µs | 53.047µs | 53.081µs | 53.103µs | 53.140µs | 0.20% | 0.208 | 0.729 | 0.06% | 0.002µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 18818159.823op/s | 18856787.411op/s ± 10765.547op/s | 18856262.898op/s ± 6324.564op/s | 18862786.081op/s | 18875029.751op/s | 18881777.501op/s | 18883975.059op/s | 0.15% | -0.203 | 0.723 | 0.06% | 761.239op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 3.895µs | 3.911µs ± 0.003µs | 3.911µs ± 0.001µs | 3.912µs | 3.915µs | 3.917µs | 3.918µs | 0.18% | -0.868 | 7.582 | 0.06% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 255236415.726op/s | 255695809.707op/s ± 165490.851op/s | 255705670.370op/s ± 76756.290op/s | 255776504.972op/s | 255933610.743op/s | 255985402.668op/s | 256754702.925op/s | 0.41% | 0.886 | 7.687 | 0.06% | 11701.970op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 49.733µs | 49.790µs ± 0.031µs | 49.784µs ± 0.018µs | 49.803µs | 49.851µs | 49.881µs | 49.930µs | 0.29% | 1.150 | 1.952 | 0.06% | 0.002µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 20028149.015op/s | 20084455.501op/s ± 12431.868op/s | 20086581.159op/s ± 7275.504op/s | 20093483.183op/s | 20099639.116op/s | 20105385.852op/s | 20107276.823op/s | 0.10% | -1.145 | 1.933 | 0.06% | 879.066op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 44.700µs | 45.099µs ± 0.134µs | 45.114µs ± 0.095µs | 45.197µs | 45.306µs | 45.370µs | 45.383µs | 0.60% | -0.236 | -0.418 | 0.30% | 0.009µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 22034857.557op/s | 22173459.771op/s ± 65880.455op/s | 22166265.169op/s ± 46475.408op/s | 22222946.316op/s | 22284005.358op/s | 22319862.965op/s | 22371193.320op/s | 0.92% | 0.249 | -0.407 | 0.30% | 4658.452op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 6.027µs | 6.036µs ± 0.009µs | 6.035µs ± 0.003µs | 6.037µs | 6.041µs | 6.100µs | 6.109µs | 1.23% | 6.142 | 43.556 | 0.15% | 0.001µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 163692588.677op/s | 165682734.275op/s ± 249521.895op/s | 165699701.747op/s ± 72236.748op/s | 165780212.762op/s | 165884312.412op/s | 165911709.317op/s | 165929015.227op/s | 0.14% | -6.106 | 43.207 | 0.15% | 17643.862op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| credit_card/is_card_number/ | execution_time | [3.910µs; 3.911µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number/ | throughput | [255682858.804op/s; 255728652.538op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [77.727µs; 77.958µs] or [-0.148%; +0.148%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [12829214.928op/s; 12866469.271op/s] or [-0.145%; +0.145%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [71.068µs; 71.152µs] or [-0.059%; +0.059%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [14054693.287op/s; 14071145.212op/s] or [-0.058%; +0.058%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [3.912µs; 3.912µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [255599048.067op/s; 255648989.981op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [67.895µs; 67.998µs] or [-0.076%; +0.076%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [14706832.093op/s; 14729015.033op/s] or [-0.075%; +0.075%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [45.095µs; 45.140µs] or [-0.049%; +0.049%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [22153800.515op/s; 22175511.297op/s] or [-0.049%; +0.049%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [6.035µs; 6.039µs] or [-0.036%; +0.036%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [165579123.877op/s; 165698071.085op/s] or [-0.036%; +0.036%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [3.911µs; 3.911µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [255673515.484op/s; 255721313.204op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [65.416µs; 65.428µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [15283977.864op/s; 15286891.123op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [53.027µs; 53.036µs] or [-0.008%; +0.008%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [18855295.409op/s; 18858279.412op/s] or [-0.008%; +0.008%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [3.911µs; 3.911µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [255672874.266op/s; 255718745.147op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [49.785µs; 49.794µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [20082732.563op/s; 20086178.438op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [45.081µs; 45.118µs] or [-0.041%; +0.041%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [22164329.374op/s; 22182590.169op/s] or [-0.041%; +0.041%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [6.034µs; 6.037µs] or [-0.021%; +0.021%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [165648152.940op/s; 165717315.610op/s] or [-0.021%; +0.021%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| receiver_entry_point/report/2597 | execution_time | 6.199ms | 6.269ms ± 0.060ms | 6.254ms ± 0.017ms | 6.280ms | 6.362ms | 6.404ms | 6.854ms | 9.60% | 5.216 | 45.151 | 0.95% | 0.004ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| receiver_entry_point/report/2597 | execution_time | [6.260ms; 6.277ms] or [-0.132%; +0.132%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | execution_time | 185.471µs | 185.960µs ± 0.477µs | 185.883µs ± 0.152µs | 186.045µs | 186.394µs | 188.121µs | 190.849µs | 2.67% | 6.460 | 57.527 | 0.26% | 0.034µs | 1 | 200 |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | 5239745.196op/s | 5377534.216op/s ± 13582.913op/s | 5379734.259op/s ± 4394.749op/s | 5383739.673op/s | 5388478.919op/s | 5389773.489op/s | 5391674.123op/s | 0.22% | -6.326 | 55.570 | 0.25% | 960.457op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 17.195µs | 17.420µs ± 0.137µs | 17.404µs ± 0.092µs | 17.514µs | 17.675µs | 17.810µs | 17.849µs | 2.56% | 0.665 | 0.019 | 0.78% | 0.010µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 56026881.698op/s | 57407606.879op/s ± 447870.258op/s | 57458399.532op/s ± 306781.178op/s | 57762393.195op/s | 58013413.803op/s | 58132224.153op/s | 58157962.843op/s | 1.22% | -0.629 | -0.051 | 0.78% | 31669.210op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 9.802µs | 9.844µs ± 0.078µs | 9.810µs ± 0.004µs | 9.845µs | 9.985µs | 10.205µs | 10.430µs | 6.33% | 3.766 | 19.312 | 0.79% | 0.006µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 95873137.152op/s | 101595850.788op/s ± 784754.092op/s | 101941558.694op/s ± 36583.732op/s | 101965918.476op/s | 102000144.992op/s | 102019523.983op/s | 102021902.779op/s | 0.08% | -3.606 | 17.585 | 0.77% | 55490.494op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | execution_time | [185.894µs; 186.026µs] or [-0.036%; +0.036%] | None | None | None |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | [5375651.755op/s; 5379416.677op/s] or [-0.035%; +0.035%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [17.401µs; 17.439µs] or [-0.109%; +0.109%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [57345536.369op/s; 57469677.390op/s] or [-0.108%; +0.108%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [9.833µs; 9.854µs] or [-0.110%; +0.110%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [101487091.418op/s; 101704610.157op/s] or [-0.107%; +0.107%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tags/replace_trace_tags | execution_time | 2.325µs | 2.374µs ± 0.021µs | 2.369µs ± 0.004µs | 2.381µs | 2.402µs | 2.412µs | 2.588µs | 9.22% | 5.451 | 54.707 | 0.87% | 0.001µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| tags/replace_trace_tags | execution_time | [2.371µs; 2.377µs] or [-0.121%; +0.121%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ip_address/quantize_peer_ip_address_benchmark | execution_time | 4.941µs | 5.020µs ± 0.045µs | 5.028µs ± 0.050µs | 5.050µs | 5.087µs | 5.093µs | 5.094µs | 1.32% | 0.141 | -1.411 | 0.90% | 0.003µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| ip_address/quantize_peer_ip_address_benchmark | execution_time | [5.014µs; 5.027µs] or [-0.125%; +0.125%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sql/obfuscate_sql_string | execution_time | 88.990µs | 89.231µs ± 0.161µs | 89.215µs ± 0.088µs | 89.306µs | 89.409µs | 89.645µs | 90.677µs | 1.64% | 4.131 | 32.318 | 0.18% | 0.011µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| sql/obfuscate_sql_string | execution_time | [89.209µs; 89.254µs] or [-0.025%; +0.025%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| two way interface | execution_time | 17.326µs | 24.950µs ± 10.165µs | 17.519µs ± 0.099µs | 34.681µs | 44.581µs | 54.216µs | 73.377µs | 318.85% | 1.228 | 1.571 | 40.64% | 0.719µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| two way interface | execution_time | [23.542µs; 26.359µs] or [-5.646%; +5.646%] | None | None | None |
Group 10
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| write only interface | execution_time | 1.241µs | 3.246µs ± 1.484µs | 3.029µs ± 0.022µs | 3.050µs | 3.690µs | 14.024µs | 15.871µs | 423.97% | 7.431 | 56.328 | 45.59% | 0.105µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| write only interface | execution_time | [3.040µs; 3.452µs] or [-6.335%; +6.335%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normalization/normalize_trace/test_trace | execution_time | 239.319ns | 248.620ns ± 12.082ns | 243.986ns ± 3.103ns | 248.578ns | 273.759ns | 291.953ns | 292.118ns | 19.73% | 2.123 | 3.770 | 4.85% | 0.854ns | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| normalization/normalize_trace/test_trace | execution_time | [246.946ns; 250.295ns] or [-0.673%; +0.673%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching serializing traces from their internal representation to msgpack | execution_time | 14.817ms | 14.849ms ± 0.030ms | 14.843ms ± 0.009ms | 14.854ms | 14.895ms | 14.972ms | 15.077ms | 1.58% | 3.919 | 20.471 | 0.20% | 0.002ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching serializing traces from their internal representation to msgpack | execution_time | [14.845ms; 14.853ms] or [-0.028%; +0.028%] | None | None | None |
Group 13
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | execution_time | 534.245µs | 535.078µs ± 0.440µs | 535.040µs ± 0.254µs | 535.300µs | 535.730µs | 536.159µs | 538.353µs | 0.62% | 2.218 | 14.034 | 0.08% | 0.031µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1857516.265op/s | 1868888.820op/s ± 1535.105op/s | 1869020.166op/s ± 886.348op/s | 1869834.856op/s | 1871009.192op/s | 1871374.644op/s | 1871801.628op/s | 0.15% | -2.191 | 13.785 | 0.08% | 108.548op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 379.766µs | 380.536µs ± 1.173µs | 380.358µs ± 0.194µs | 380.616µs | 381.114µs | 388.949µs | 390.083µs | 2.56% | 7.147 | 53.337 | 0.31% | 0.083µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2563558.987op/s | 2627894.439op/s ± 7928.611op/s | 2629105.062op/s ± 1339.995op/s | 2630280.961op/s | 2632053.290op/s | 2632998.549op/s | 2633202.856op/s | 0.16% | -7.107 | 52.915 | 0.30% | 560.637op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 194.933µs | 195.305µs ± 0.152µs | 195.306µs ± 0.103µs | 195.409µs | 195.548µs | 195.641µs | 195.791µs | 0.25% | 0.190 | -0.142 | 0.08% | 0.011µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5107489.811op/s | 5120188.809op/s ± 3987.675op/s | 5120168.330op/s ± 2711.243op/s | 5122889.181op/s | 5126499.512op/s | 5128437.784op/s | 5129967.040op/s | 0.19% | -0.186 | -0.146 | 0.08% | 281.971op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 37.508µs | 37.661µs ± 0.057µs | 37.664µs ± 0.042µs | 37.704µs | 37.756µs | 37.775µs | 37.811µs | 0.39% | -0.104 | -0.372 | 0.15% | 0.004µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 26447613.260op/s | 26552579.925op/s ± 39846.558op/s | 26550573.232op/s ± 29345.861op/s | 26580715.027op/s | 26618700.195op/s | 26648870.384op/s | 26660809.752op/s | 0.42% | 0.112 | -0.369 | 0.15% | 2817.577op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 45.794µs | 45.884µs ± 0.050µs | 45.880µs ± 0.034µs | 45.913µs | 45.964µs | 46.053µs | 46.081µs | 0.44% | 0.913 | 1.487 | 0.11% | 0.004µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 21700948.008op/s | 21794236.692op/s ± 23725.217op/s | 21795911.205op/s ± 16054.351op/s | 21812772.504op/s | 21825975.760op/s | 21834316.493op/s | 21836932.013op/s | 0.19% | -0.904 | 1.458 | 0.11% | 1677.626op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | execution_time | [535.017µs; 535.139µs] or [-0.011%; +0.011%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [1868676.069op/s; 1869101.571op/s] or [-0.011%; +0.011%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [380.374µs; 380.699µs] or [-0.043%; +0.043%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2626795.610op/s; 2628993.268op/s] or [-0.042%; +0.042%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [195.284µs; 195.326µs] or [-0.011%; +0.011%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5119636.156op/s; 5120741.462op/s] or [-0.011%; +0.011%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [37.653µs; 37.669µs] or [-0.021%; +0.021%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [26547057.575op/s; 26558102.274op/s] or [-0.021%; +0.021%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [45.877µs; 45.891µs] or [-0.015%; +0.015%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [21790948.605op/s; 21797524.779op/s] or [-0.015%; +0.015%] | None | None | None |
Group 14
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| redis/obfuscate_redis_string | execution_time | 33.837µs | 34.492µs ± 1.135µs | 33.964µs ± 0.071µs | 34.139µs | 36.889µs | 36.940µs | 38.508µs | 13.38% | 1.731 | 1.202 | 3.28% | 0.080µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| redis/obfuscate_redis_string | execution_time | [34.335µs; 34.649µs] or [-0.456%; +0.456%] | None | None | None |
Group 15
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | d77157cb | 1758032199 | dsn/otel-proto |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| concentrator/add_spans_to_concentrator | execution_time | 8.250ms | 8.267ms ± 0.010ms | 8.265ms ± 0.005ms | 8.272ms | 8.287ms | 8.305ms | 8.315ms | 0.61% | 1.764 | 4.747 | 0.13% | 0.001ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| concentrator/add_spans_to_concentrator | execution_time | [8.265ms; 8.268ms] or [-0.018%; +0.018%] | None | None | None |
Baseline
Omitted due to size.
✅ Tests
🎉 All green!
❄️ No new flaky tests detected
🧪 All tests passed
🔗 Commit SHA: d77157c | Docs | Was this helpful? Give us feedback!
Codecov Report
:x: Patch coverage is 97.24771% with 24 lines in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 71.96%. Comparing base (4e1d7bb) to head (d77157c).
:warning: Report is 1 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #1181 +/- ##
==========================================
+ Coverage 71.61% 71.96% +0.34%
==========================================
Files 354 362 +8
Lines 55939 56838 +899
==========================================
+ Hits 40063 40903 +840
- Misses 15876 15935 +59
| Components | Coverage Δ | |
|---|---|---|
| datadog-crashtracker | 49.30% <ø> (-0.03%) |
:arrow_down: |
| datadog-crashtracker-ffi | 5.93% <ø> (ø) |
|
| datadog-alloc | 98.73% <ø> (ø) |
|
| data-pipeline | 90.21% <ø> (ø) |
|
| data-pipeline-ffi | 88.19% <ø> (ø) |
|
| ddcommon | 84.29% <ø> (ø) |
|
| ddcommon-ffi | 73.84% <ø> (ø) |
|
| ddtelemetry | 59.98% <ø> (ø) |
|
| ddtelemetry-ffi | 21.24% <ø> (ø) |
|
| dogstatsd-client | 83.26% <ø> (ø) |
|
| datadog-ipc | 82.39% <ø> (ø) |
|
| datadog-profiling | 79.38% <97.35%> (+2.48%) |
:arrow_up: |
| datadog-profiling-ffi | 62.07% <0.00%> (-0.05%) |
:arrow_down: |
| datadog-sidecar | 36.64% <ø> (-0.42%) |
:arrow_down: |
| datdog-sidecar-ffi | 9.26% <ø> (-2.01%) |
:arrow_down: |
| spawn-worker | 55.35% <ø> (ø) |
|
| tinybytes | 92.22% <ø> (ø) |
|
| datadog-trace-normalization | 98.24% <ø> (ø) |
|
| datadog-trace-obfuscation | 94.17% <ø> (ø) |
|
| datadog-trace-protobuf | 77.10% <ø> (ø) |
|
| datadog-trace-utils | 89.78% <ø> (ø) |
|
| datadog-tracer-flare | 53.15% <ø> (-2.94%) |
:arrow_down: |
| datadog-log | 76.31% <ø> (ø) |
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
Artifact Size Benchmark Report
aarch64-alpine-linux-musl
| Artifact | Baseline | Commit | Change |
|---|---|---|---|
| /aarch64-alpine-linux-musl/lib/libdatadog_profiling.a | 70.47 MB | 86.25 MB | +22.39% (+15.78 MB) 🚨 |
| /aarch64-alpine-linux-musl/lib/libdatadog_profiling.so | 6.75 MB | 7.00 MB | +3.69% (+256.00 KB) ⚠️ |
aarch64-unknown-linux-gnu
| Artifact | Baseline | Commit | Change |
|---|---|---|---|
| /aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a | 82.75 MB | 99.24 MB | +19.92% (+16.48 MB) 🚨 |
| /aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so | 8.80 MB | 9.08 MB | +3.27% (+295.19 KB) ⚠️ |
libdatadog-x64-windows
| Artifact | Baseline | Commit | Change |
|---|---|---|---|
| /libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll | 17.89 MB | 18.88 MB | +5.54% (+1016.00 KB) 🚨 |
| /libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib | 65.01 KB | 65.01 KB | 0% (0 B) 👌 |
| /libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb | 124.63 MB | 128.14 MB | +2.81% (+3.50 MB) ⚠️ |
| /libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib | 647.28 MB | 657.56 MB | +1.58% (+10.28 MB) ⚠️ |
| /libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll | 5.55 MB | 5.93 MB | +6.92% (+393.50 KB) 🚨 |
| /libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib | 65.01 KB | 65.01 KB | 0% (0 B) 👌 |
| /libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb | 17.23 MB | 18.69 MB | +8.47% (+1.46 MB) 🚨 |
| /libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib | 31.57 MB | 38.09 MB | +20.63% (+6.51 MB) 🚨 |
libdatadog-x86-windows
| Artifact | Baseline | Commit | Change |
|---|---|---|---|
| /libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll | 15.23 MB | 15.94 MB | +4.65% (+726.00 KB) ⚠️ |
| /libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib | 66.01 KB | 66.01 KB | 0% (0 B) 👌 |
| /libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb | 126.82 MB | 130.41 MB | +2.83% (+3.59 MB) ⚠️ |
| /libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib | 637.65 MB | 647.35 MB | +1.52% (+9.69 MB) ⚠️ |
| /libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll | 4.23 MB | 4.53 MB | +7.14% (+310.00 KB) 🚨 |
| /libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib | 66.01 KB | 66.01 KB | 0% (0 B) 👌 |
| /libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb | 18.35 MB | 19.84 MB | +8.12% (+1.49 MB) 🚨 |
| /libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib | 29.68 MB | 35.67 MB | +20.18% (+5.99 MB) 🚨 |
x86_64-alpine-linux-musl
| Artifact | Baseline | Commit | Change |
|---|---|---|---|
| /x86_64-alpine-linux-musl/lib/libdatadog_profiling.a | 63.02 MB | 73.85 MB | +17.19% (+10.83 MB) 🚨 |
| /x86_64-alpine-linux-musl/lib/libdatadog_profiling.so | 8.06 MB | 8.36 MB | +3.77% (+312.00 KB) ⚠️ |
x86_64-unknown-linux-gnu
| Artifact | Baseline | Commit | Change |
|---|---|---|---|
| /x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a | 77.38 MB | 93.67 MB | +21.05% (+16.29 MB) 🚨 |
| /x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so | 9.40 MB | 9.72 MB | +3.44% (+331.44 KB) ⚠️ |