Skip to content

Conversation

@danielsn
Copy link
Contributor

What does this PR do?

Adds a forksafe exporter where the rust side manages all state.

Motivation

We've had recurrent bugs in Python when it comes to forksafety of code like this. Having a simple API is great.

Additional Notes

Anything else we should know when reviewing?

How to test the change?

See the new tests and the example files.

@danielsn danielsn requested review from a team as code owners January 21, 2026 22:21
@danielsn danielsn force-pushed the dsn/forksafe-exporter branch 4 times, most recently from d4af4ba to 5d2c1cb Compare January 22, 2026 04:59
@datadog-official
Copy link

datadog-official bot commented Jan 22, 2026

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: ca08786 | Docs | Datadog PR Page | Was this helpful? Give us feedback!

@danielsn danielsn force-pushed the dsn/forksafe-exporter branch from 5d2c1cb to ec1141a Compare January 22, 2026 05:13
@pr-commenter
Copy link

pr-commenter bot commented Jan 22, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-01-23 20:01:05

Comparing candidate commit ca08786 in PR branch dsn/forksafe-exporter with baseline commit 534d009 in branch main.

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

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 ca08786 1769197488 dsn/forksafe-exporter
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sdk_test_data/rules-based execution_time 143.835µs 145.639µs ± 1.917µs 145.310µs ± 0.507µs 145.904µs 147.057µs 152.046µs 165.085µs 13.61% 6.605 57.662 1.31% 0.136µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sdk_test_data/rules-based execution_time [145.374µs; 145.905µs] or [-0.182%; +0.182%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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.698µs 25.647µs ± 10.080µs 17.943µs ± 0.113µs 34.776µs 43.983µs 49.474µs 73.103µs 307.41% 1.058 1.049 39.20% 0.713µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.250µs; 27.044µs] or [-5.447%; +5.447%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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 205.051µs 205.752µs ± 0.422µs 205.685µs ± 0.300µs 206.001µs 206.572µs 206.805µs 207.012µs 0.65% 0.611 -0.163 0.20% 0.030µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4830627.116op/s 4860249.649op/s ± 9954.489op/s 4861801.326op/s ± 7075.708op/s 4868307.513op/s 4874314.901op/s 4875751.279op/s 4876835.519op/s 0.31% -0.602 -0.178 0.20% 703.889op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.606µs 18.723µs ± 0.067µs 18.713µs ± 0.048µs 18.761µs 18.847µs 18.898µs 18.928µs 1.15% 0.737 -0.102 0.36% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52831854.564op/s 53411297.459op/s ± 190568.812op/s 53437418.609op/s ± 136860.520op/s 53572867.707op/s 53662132.436op/s 53686203.341op/s 53745981.008op/s 0.58% -0.723 -0.131 0.36% 13475.250op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.818µs 10.891µs ± 0.026µs 10.888µs ± 0.017µs 10.910µs 10.933µs 10.954µs 10.967µs 0.72% 0.250 -0.260 0.24% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 91184542.897op/s 91818440.096op/s ± 221081.472op/s 91845584.568op/s ± 141095.259op/s 91960155.283op/s 92161337.102op/s 92201115.339op/s 92435593.207op/s 0.64% -0.238 -0.265 0.24% 15632.821op/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 [205.693µs; 205.810µs] or [-0.028%; +0.028%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4858870.052op/s; 4861629.245op/s] or [-0.028%; +0.028%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.714µs; 18.732µs] or [-0.050%; +0.050%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53384886.455op/s; 53437708.464op/s] or [-0.049%; +0.049%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.887µs; 10.895µs] or [-0.033%; +0.033%] None None None
normalization/normalize_name/normalize_name/good throughput [91787800.331op/s; 91849079.862op/s] or [-0.033%; +0.033%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample2_frames_x1000 execution_time 543.519µs 544.304µs ± 0.634µs 544.134µs ± 0.206µs 544.425µs 545.243µs 545.798µs 550.647µs 1.20% 5.526 49.009 0.12% 0.045µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample2_frames_x1000 execution_time [544.216µs; 544.391µs] or [-0.016%; +0.016%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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 13.160ms 13.468ms ± 0.086ms 13.472ms ± 0.045ms 13.513ms 13.607ms 13.693ms 13.727ms 1.89% -0.147 1.570 0.63% 0.006ms 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 [13.456ms; 13.480ms] or [-0.088%; +0.088%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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.384µs 2.418µs ± 0.025µs 2.413µs ± 0.007µs 2.420µs 2.469µs 2.478µs 2.661µs 10.29% 5.127 43.053 1.04% 0.002µ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.414µs; 2.421µs] or [-0.144%; +0.144%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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.890µs 3.910µs ± 0.002µs 3.910µs ± 0.001µs 3.911µs 3.912µs 3.914µs 3.915µs 0.13% -5.942 66.405 0.05% 0.000µs 1 200
credit_card/is_card_number/ throughput 255447227.379op/s 255764067.116op/s ± 121024.637op/s 255776916.133op/s ± 41693.865op/s 255811383.608op/s 255854539.233op/s 255878582.169op/s 257073180.634op/s 0.51% 5.989 67.013 0.05% 8557.734op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.066µs 77.664µs ± 0.472µs 77.566µs ± 0.240µs 77.903µs 78.636µs 79.343µs 79.570µs 2.58% 1.531 3.022 0.61% 0.033µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12567544.463op/s 12876386.709op/s ± 77612.395op/s 12892177.032op/s ± 39700.072op/s 12921483.258op/s 12966359.038op/s 12973495.370op/s 12975894.711op/s 0.65% -1.483 2.824 0.60% 5488.025op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 70.642µs 71.122µs ± 0.292µs 71.086µs ± 0.201µs 71.300µs 71.608µs 71.777µs 71.880µs 1.12% 0.273 -0.705 0.41% 0.021µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13912071.564op/s 14060609.242op/s ± 57595.499op/s 14067494.379op/s ± 39746.391op/s 14097414.929op/s 14144722.075op/s 14152305.577op/s 14155903.077op/s 0.63% -0.258 -0.721 0.41% 4072.617op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.892µs 3.910µs ± 0.002µs 3.910µs ± 0.001µs 3.911µs 3.914µs 3.916µs 3.917µs 0.19% -2.442 27.668 0.05% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255270390.521op/s 255728808.522op/s ± 140701.851op/s 255755907.682op/s ± 50989.021op/s 255798465.209op/s 255839763.898op/s 255872724.667op/s 256951992.870op/s 0.47% 2.481 28.032 0.05% 9949.123op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 67.431µs 67.848µs ± 0.354µs 67.767µs ± 0.240µs 68.031µs 68.540µs 68.770µs 69.863µs 3.09% 1.609 4.761 0.52% 0.025µs 1 200
credit_card/is_card_number/378282246310005 throughput 14313812.742op/s 14739245.970op/s ± 76173.497op/s 14756515.504op/s ± 52330.772op/s 14805425.855op/s 14821134.867op/s 14828384.360op/s 14829981.774op/s 0.50% -1.546 4.343 0.52% 5386.280op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 44.688µs 45.213µs ± 0.186µs 45.245µs ± 0.104µs 45.340µs 45.493µs 45.546µs 45.562µs 0.70% -0.583 0.179 0.41% 0.013µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21947938.896op/s 22117871.604op/s ± 91098.022op/s 22101740.094op/s ± 50839.460op/s 22169664.946op/s 22313091.338op/s 22365613.705op/s 22377308.844op/s 1.25% 0.605 0.213 0.41% 6441.603op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.033µs 6.038µs ± 0.009µs 6.036µs ± 0.001µs 6.038µs 6.042µs 6.063µs 6.151µs 1.90% 9.918 110.792 0.15% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 162569330.171op/s 165620588.945op/s ± 252785.494op/s 165661743.846op/s ± 36605.293op/s 165691709.455op/s 165721319.994op/s 165741731.664op/s 165753420.404op/s 0.06% -9.852 109.515 0.15% 17874.634op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.891µs 3.913µs ± 0.003µs 3.913µs ± 0.002µs 3.915µs 3.917µs 3.919µs 3.922µs 0.22% -1.478 10.512 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255002313.670op/s 255569880.109op/s ± 205718.934op/s 255557577.777op/s ± 139392.335op/s 255703682.133op/s 255830985.546op/s 255935999.098op/s 257011090.677op/s 0.57% 1.503 10.709 0.08% 14546.525op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.407µs 65.609µs ± 0.070µs 65.612µs ± 0.047µs 65.659µs 65.725µs 65.754µs 65.782µs 0.26% -0.217 0.067 0.11% 0.005µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15201737.489op/s 15241738.873op/s ± 16328.313op/s 15241185.788op/s ± 10810.161op/s 15251135.362op/s 15269528.297op/s 15282621.164op/s 15288785.676op/s 0.31% 0.223 0.072 0.11% 1154.586op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 52.962µs 53.008µs ± 0.030µs 53.002µs ± 0.014µs 53.018µs 53.064µs 53.105µs 53.122µs 0.23% 1.350 2.286 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18824421.829op/s 18865206.695op/s ± 10595.321op/s 18867209.733op/s ± 5107.469op/s 18871681.626op/s 18878333.243op/s 18880941.502op/s 18881616.858op/s 0.08% -1.346 2.272 0.06% 749.202op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.892µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.920µs 3.921µs 0.23% -0.753 8.002 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255059977.997op/s 255623893.207op/s ± 204551.172op/s 255647285.530op/s ± 116078.152op/s 255750958.379op/s 255865735.764op/s 255950063.484op/s 256951327.269op/s 0.51% 0.776 8.144 0.08% 14463.952op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 49.741µs 49.793µs ± 0.036µs 49.789µs ± 0.019µs 49.808µs 49.850µs 49.879µs 50.019µs 0.46% 2.363 11.865 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19992293.518op/s 20082959.097op/s ± 14555.691op/s 20084693.455op/s ± 7546.101op/s 20091918.528op/s 20101596.670op/s 20102864.518op/s 20104018.793op/s 0.10% -2.345 11.728 0.07% 1029.243op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 44.693µs 45.177µs ± 0.180µs 45.201µs ± 0.106µs 45.285µs 45.454µs 45.502µs 45.564µs 0.80% -0.414 -0.151 0.40% 0.013µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21946979.853op/s 22135287.789op/s ± 88514.811op/s 22123386.765op/s ± 51969.324op/s 22185112.129op/s 22299363.295op/s 22352479.023op/s 22375087.296op/s 1.14% 0.434 -0.129 0.40% 6258.942op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.027µs 6.036µs ± 0.011µs 6.034µs ± 0.003µs 6.038µs 6.044µs 6.106µs 6.110µs 1.27% 5.355 31.897 0.18% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 163660592.623op/s 165668975.373op/s ± 297456.308op/s 165730917.103op/s ± 79902.561op/s 165797343.767op/s 165853903.301op/s 165902166.753op/s 165927370.275op/s 0.12% -5.327 31.648 0.18% 21033.337op/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.910µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/ throughput [255747294.265op/s; 255780839.967op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [77.599µs; 77.730µs] or [-0.084%; +0.084%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12865630.377op/s; 12887143.040op/s] or [-0.084%; +0.084%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.081µs; 71.162µs] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14052627.060op/s; 14068591.424op/s] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/37828224631 execution_time [3.910µs; 3.911µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/37828224631 throughput [255709308.599op/s; 255748308.445op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/378282246310005 execution_time [67.799µs; 67.897µs] or [-0.072%; +0.072%] None None None
credit_card/is_card_number/378282246310005 throughput [14728689.056op/s; 14749802.884op/s] or [-0.072%; +0.072%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.187µs; 45.239µs] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [22105246.295op/s; 22130496.914op/s] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.037µs; 6.039µs] or [-0.021%; +0.021%] None None None
credit_card/is_card_number/x371413321323331 throughput [165585555.307op/s; 165655622.584op/s] or [-0.021%; +0.021%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255541369.443op/s; 255598390.775op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.600µs; 65.619µs] or [-0.015%; +0.015%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15239475.925op/s; 15244001.820op/s] or [-0.015%; +0.015%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.004µs; 53.012µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18863738.285op/s; 18866675.105op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.912µs; 3.912µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255595544.382op/s; 255652242.032op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [49.788µs; 49.798µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [20080941.818op/s; 20084976.376op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.152µs; 45.202µs] or [-0.055%; +0.055%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [22123020.487op/s; 22147555.090op/s] or [-0.055%; +0.055%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.035µs; 6.038µs] or [-0.025%; +0.025%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165627750.790op/s; 165710199.957op/s] or [-0.025%; +0.025%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_frames_x1000 execution_time 3.975ms 3.979ms ± 0.007ms 3.979ms ± 0.001ms 3.980ms 3.981ms 3.986ms 4.067ms 2.22% 12.010 157.284 0.17% 0.000ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_frames_x1000 execution_time [3.978ms; 3.980ms] or [-0.023%; +0.023%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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.254µs 3.141µs ± 1.413µs 2.970µs ± 0.024µs 2.993µs 3.297µs 13.624µs 14.981µs 404.42% 7.549 57.427 44.87% 0.100µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [2.945µs; 3.337µs] or [-6.234%; +6.234%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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 48.314ms 48.683ms ± 1.011ms 48.537ms ± 0.073ms 48.614ms 48.827ms 56.594ms 56.819ms 17.06% 7.504 56.341 2.07% 0.071ms 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 [48.543ms; 48.823ms] or [-0.288%; +0.288%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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.968µs 5.040µs ± 0.037µs 5.045µs ± 0.037µs 5.066µs 5.100µs 5.103µs 5.104µs 1.18% 0.099 -1.226 0.73% 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.035µs; 5.045µs] or [-0.102%; +0.102%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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 89.904µs 90.186µs ± 0.222µs 90.164µs ± 0.063µs 90.225µs 90.356µs 90.729µs 92.806µs 2.93% 8.613 96.424 0.25% 0.016µ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 [90.156µs; 90.217µs] or [-0.034%; +0.034%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
single_flag_killswitch/rules-based execution_time 189.177ns 192.181ns ± 2.194ns 192.092ns ± 1.487ns 193.232ns 196.520ns 198.314ns 199.133ns 3.67% 0.777 0.269 1.14% 0.155ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [191.877ns; 192.485ns] or [-0.158%; +0.158%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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 240.770ns 255.522ns ± 14.269ns 249.778ns ± 7.116ns 268.003ns 283.039ns 294.419ns 294.887ns 18.06% 0.970 -0.073 5.57% 1.009ns 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 [253.545ns; 257.500ns] or [-0.774%; +0.774%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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.464µs 34.216µs ± 1.284µs 33.635µs ± 0.069µs 33.743µs 36.987µs 37.031µs 37.457µs 11.36% 1.696 0.911 3.74% 0.091µ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.038µs; 34.394µs] or [-0.520%; +0.520%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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 10.706ms 10.736ms ± 0.014ms 10.735ms ± 0.007ms 10.742ms 10.759ms 10.774ms 10.797ms 0.58% 0.891 1.967 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 [10.734ms; 10.738ms] or [-0.018%; +0.018%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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.558ms 14.649ms ± 0.035ms 14.648ms ± 0.018ms 14.665ms 14.698ms 14.777ms 14.821ms 1.18% 1.543 5.001 0.24% 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.644ms; 14.654ms] or [-0.033%; +0.033%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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 161.454µs 162.413µs ± 0.381µs 162.421µs ± 0.231µs 162.640µs 162.876µs 163.285µs 165.013µs 1.60% 1.580 10.013 0.23% 0.027µ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 [162.360µs; 162.466µs] or [-0.033%; +0.033%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ca08786 1769197488 dsn/forksafe-exporter
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 535.446µs 536.522µs ± 0.841µs 536.267µs ± 0.394µs 536.819µs 538.216µs 539.822µs 540.423µs 0.77% 1.975 4.710 0.16% 0.059µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1850402.974op/s 1863861.230op/s ± 2911.476op/s 1864743.363op/s ± 1369.805op/s 1865735.730op/s 1866632.829op/s 1867139.620op/s 1867600.731op/s 0.15% -1.962 4.642 0.16% 205.872op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 380.257µs 381.580µs ± 0.830µs 381.824µs ± 0.765µs 382.340µs 382.732µs 382.885µs 383.028µs 0.32% -0.041 -1.546 0.22% 0.059µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2610774.302op/s 2620696.916op/s ± 5704.136op/s 2619010.843op/s ± 5253.643op/s 2626368.131op/s 2628646.473op/s 2629442.685op/s 2629801.274op/s 0.41% 0.044 -1.546 0.22% 403.343op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.249µs 189.732µs ± 0.202µs 189.682µs ± 0.110µs 189.828µs 190.145µs 190.276µs 190.324µs 0.34% 0.870 0.309 0.11% 0.014µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5254186.779op/s 5270610.878op/s ± 5612.877op/s 5271968.343op/s ± 3048.055op/s 5274368.062op/s 5277333.446op/s 5279373.187op/s 5284050.932op/s 0.23% -0.865 0.301 0.11% 396.890op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.427µs 36.549µs ± 0.046µs 36.545µs ± 0.029µs 36.577µs 36.623µs 36.654µs 36.785µs 0.66% 0.721 2.741 0.13% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27184715.093op/s 27360555.536op/s ± 34435.482op/s 27363768.782op/s ± 21963.193op/s 27384019.761op/s 27411460.224op/s 27436692.375op/s 27452489.522op/s 0.32% -0.706 2.675 0.13% 2434.956op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.922µs 46.065µs ± 0.083µs 46.060µs ± 0.056µs 46.114µs 46.201µs 46.304µs 46.354µs 0.64% 0.665 0.598 0.18% 0.006µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21572918.185op/s 21708668.783op/s ± 39191.382op/s 21710616.435op/s ± 26354.057op/s 21738189.067op/s 21766260.740op/s 21773858.430op/s 21776191.256op/s 0.30% -0.653 0.569 0.18% 2771.249op/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 [536.405µs; 536.638µs] or [-0.022%; +0.022%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1863457.727op/s; 1864264.733op/s] or [-0.022%; +0.022%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [381.465µs; 381.695µs] or [-0.030%; +0.030%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2619906.378op/s; 2621487.454op/s] or [-0.030%; +0.030%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [189.704µs; 189.760µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5269832.987op/s; 5271388.769op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.543µs; 36.555µs] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27355783.110op/s; 27365327.963op/s] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.053µs; 46.076µs] or [-0.025%; +0.025%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21703237.235op/s; 21714100.332op/s] or [-0.025%; +0.025%] None None None

Baseline

Omitted due to size.

@danielsn danielsn force-pushed the dsn/forksafe-exporter branch 2 times, most recently from da6f1e6 to d91ac4e Compare January 22, 2026 14:38
@dd-octo-sts
Copy link

dd-octo-sts bot commented Jan 22, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 91.22 MB 91.81 MB +.65% (+610.31 KB) 🔍
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.38 MB 8.44 MB +.74% (+64.00 KB) 🔍
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 62.36 MB 62.80 MB +.70% (+451.63 KB) 🔍
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 9.41 MB 9.48 MB +.69% (+67.09 KB) 🔍
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 105.54 MB 106.15 MB +.57% (+624.16 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.67 MB 10.76 MB +.82% (+90.59 KB) 🔍
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 25.08 MB 25.29 MB +.82% (+211.00 KB) 🔍
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 73.49 KB 75.59 KB +2.85% (+2.09 KB) ⚠️
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 165.91 MB 167.33 MB +.85% (+1.42 MB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 827.93 MB 845.79 MB +2.15% (+17.85 MB) ⚠️
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.54 MB 9.62 MB +.76% (+74.50 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 73.49 KB 75.59 KB +2.85% (+2.09 KB) ⚠️
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 22.94 MB 23.12 MB +.78% (+184.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 47.90 MB 48.29 MB +.80% (+395.48 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 21.15 MB 21.34 MB +.89% (+193.50 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 74.62 KB 76.76 KB +2.86% (+2.13 KB) ⚠️
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 169.89 MB 171.31 MB +.83% (+1.42 MB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 814.90 MB 832.94 MB +2.21% (+18.04 MB) ⚠️
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.22 MB 7.27 MB +.79% (+59.00 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 74.62 KB 76.76 KB +2.86% (+2.13 KB) ⚠️
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 24.51 MB 24.73 MB +.86% (+216.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 43.62 MB 44.00 MB +.86% (+385.38 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 79.72 MB 80.27 MB +.68% (+560.65 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 9.85 MB 9.90 MB +.55% (+56.00 KB) 🔍
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 64.25 MB 64.68 MB +.66% (+440.21 KB) 🔍
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 10.44 MB 10.51 MB +.62% (+66.56 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 99.56 MB 100.11 MB +.55% (+567.08 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.41 MB 11.48 MB +.64% (+75.38 KB) 🔍

@danielsn danielsn force-pushed the dsn/forksafe-exporter branch from d91ac4e to e1ea254 Compare January 22, 2026 18:14
@codecov-commenter
Copy link

codecov-commenter commented Jan 22, 2026

Codecov Report

❌ Patch coverage is 94.81743% with 44 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.46%. Comparing base (99be5d7) to head (3244838).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1464      +/-   ##
==========================================
+ Coverage   71.16%   71.46%   +0.29%     
==========================================
  Files         419      420       +1     
  Lines       67165    67965     +800     
==========================================
+ Hits        47795    48568     +773     
- Misses      19370    19397      +27     
Components Coverage Δ
libdd-crashtracker 61.41% <ø> (ø)
libdd-crashtracker-ffi 16.50% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.28% <ø> (ø)
libdd-data-pipeline-ffi 78.57% <ø> (ø)
libdd-common 80.97% <ø> (+0.12%) ⬆️
libdd-common-ffi 74.54% <ø> (+0.34%) ⬆️
libdd-telemetry 59.82% <ø> (ø)
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.60% <ø> (ø)
libdd-profiling 81.72% <94.81%> (+1.05%) ⬆️
libdd-profiling-ffi 64.90% <95.18%> (+2.43%) ⬆️
datadog-sidecar 35.02% <ø> (ø)
datdog-sidecar-ffi 10.25% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 93.43% <ø> (ø)
libdd-trace-normalization 82.33% <ø> (ø)
libdd-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 61.18% <ø> (ø)
libdd-trace-utils 89.45% <ø> (ø)
datadog-tracer-flare 63.49% <ø> (ø)
libdd-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@danielsn danielsn changed the title feat(profiler): fork-safe managed exporter feat!(profiler): fork-safe managed exporter Jan 22, 2026
@danielsn danielsn force-pushed the dsn/forksafe-exporter branch from e1ea254 to 3244838 Compare January 22, 2026 21:12
@danielsn danielsn changed the title feat!(profiler): fork-safe managed exporter feat(profiler)!: fork-safe managed exporter Jan 22, 2026
@danielsn danielsn force-pushed the dsn/forksafe-exporter branch from 3244838 to 7c340ee Compare January 23, 2026 19:36
@danielsn danielsn force-pushed the dsn/forksafe-exporter branch from 9038f66 to ca08786 Compare January 23, 2026 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants