Skip to content

Conversation

@edznux-dd
Copy link
Contributor

@edznux-dd edznux-dd commented Nov 26, 2025

What does this PR do?

This PR adds a fuzzer using cargo-fuzz that then runs in our internal fuzzing infrastructure.

Motivation

This aims to enable fuzz testing via cargo fuzz in this repository. Adding a initial fuzzer is simply a bootstraping part.
The end goal is to find bugs before customers do.

There's already some existing property test / fuzz test with bolero in other crate (i.e: libdd-profiling{,-protobuf}) but these run only in Github's CI for short amount of time (30sec). The fuzzing infra will let these run last for hours.

This new pipeline will NOT run in feature branches and will NOT block CI. We only use the CI system to build the binaries and upload it to our internal infra, to be run for extended period of time.

Because blocking CI on "very wrong" failure is still valuable during quick developement cycle, the other existing fuzz test and property tests will still run for 30sec on github actions. These fuzz test will NOT be part of the fuzzing infrastructure (and so you won't have access to the enrichment, auto fix proposal, stats, ...)

Additional Notes

  • I'm no Rust expert.
    • I don't know enough of bolero to understand if we can also use bolero generated binaries. But this can be done as a followup.
  • These fuzz test will run asynchronously in the fuzzing infra. They won't block CI. They will run on main, every day on a schedule and report issues via Slack / Error tracking.

How to test the change?

Click the fuzz pipeline in gitlab of this branch.
Example result here

@codecov-commenter
Copy link

codecov-commenter commented Nov 26, 2025

Codecov Report

❌ Patch coverage is 0.73529% with 135 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.14%. Comparing base (73c675b) to head (c46f03b).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1372      +/-   ##
==========================================
- Coverage   71.16%   71.14%   -0.03%     
==========================================
  Files         403      404       +1     
  Lines       64368    64492     +124     
==========================================
+ Hits        45810    45883      +73     
- Misses      18558    18609      +51     
Components Coverage Δ
libdd-crashtracker 58.99% <ø> (+0.01%) ⬆️
libdd-crashtracker-ffi 16.74% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.62% <ø> (+0.80%) ⬆️
libdd-data-pipeline-ffi 81.08% <ø> (+4.49%) ⬆️
libdd-common 81.13% <ø> (ø)
libdd-common-ffi 74.96% <ø> (ø)
libdd-telemetry 59.95% <ø> (ø)
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.61% <ø> (ø)
libdd-profiling 80.44% <ø> (ø)
libdd-profiling-ffi 63.41% <ø> (ø)
datadog-sidecar 36.22% <ø> (+0.36%) ⬆️
datdog-sidecar-ffi 12.62% <ø> (+1.82%) ⬆️
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 92.44% <ø> (ø)
libdd-trace-normalization 82.05% <0.73%> (-16.20%) ⬇️
libdd-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 61.18% <ø> (ø)
libdd-trace-utils 90.12% <ø> (+0.14%) ⬆️
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.

@pr-commenter
Copy link

pr-commenter bot commented Nov 26, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-12-15 14:26:26

Comparing candidate commit c46f03b in PR branch edouard/add-fuzzing-infra with baseline commit 73c675b 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 c46f03b 1765807881 edouard/add-fuzzing-infra
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 187.003ns 189.694ns ± 2.255ns 189.351ns ± 1.348ns 190.522ns 194.221ns 195.772ns 204.339ns 7.92% 2.014 8.163 1.19% 0.159ns 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 [189.381ns; 190.006ns] or [-0.165%; +0.165%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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.611ms 10.636ms ± 0.013ms 10.635ms ± 0.008ms 10.644ms 10.658ms 10.678ms 10.707ms 0.68% 1.183 3.445 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.634ms; 10.638ms] or [-0.018%; +0.018%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 85.333µs 85.662µs ± 0.168µs 85.633µs ± 0.058µs 85.706µs 85.843µs 86.055µs 87.052µs 1.66% 5.148 38.035 0.20% 0.012µ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 [85.639µs; 85.685µs] or [-0.027%; +0.027%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 524.201µs 524.889µs ± 0.975µs 524.728µs ± 0.191µs 524.922µs 525.401µs 529.409µs 534.445µs 1.85% 6.519 51.733 0.19% 0.069µ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 [524.754µs; 525.024µs] or [-0.026%; +0.026%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 244.303ns 256.883ns ± 13.929ns 251.316ns ± 5.108ns 262.279ns 288.547ns 290.897ns 294.296ns 17.10% 1.365 0.548 5.41% 0.985ns 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 [254.953ns; 258.814ns] or [-0.752%; +0.752%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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.172µs 3.247µs ± 1.430µs 3.020µs ± 0.038µs 3.055µs 3.674µs 13.950µs 14.755µs 388.55% 7.260 54.292 43.92% 0.101µ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.049µs; 3.445µs] or [-6.103%; +6.103%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 204.702µs 205.235µs ± 0.283µs 205.183µs ± 0.169µs 205.386µs 205.774µs 206.015µs 206.335µs 0.56% 0.964 1.082 0.14% 0.020µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4846497.665op/s 4872462.112op/s ± 6698.494op/s 4873699.076op/s ± 4015.110op/s 4877083.813op/s 4881126.271op/s 4883546.888op/s 4885139.156op/s 0.23% -0.955 1.054 0.14% 473.655op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.574µs 18.656µs ± 0.113µs 18.641µs ± 0.023µs 18.673µs 18.721µs 18.782µs 20.136µs 8.02% 11.222 143.309 0.61% 0.008µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 49662735.314op/s 53603963.653op/s ± 305523.581op/s 53644934.635op/s ± 65450.492op/s 53696155.526op/s 53790131.284op/s 53835195.122op/s 53839313.375op/s 0.36% -10.866 137.025 0.57% 21603.780op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.747µs 10.818µs ± 0.036µs 10.816µs ± 0.026µs 10.842µs 10.881µs 10.903µs 10.921µs 0.97% 0.371 -0.436 0.33% 0.003µs 1 200
normalization/normalize_name/normalize_name/good throughput 91565618.299op/s 92443334.477op/s ± 309387.393op/s 92457807.352op/s ± 225737.765op/s 92688356.805op/s 92891482.858op/s 92926839.922op/s 93046909.848op/s 0.64% -0.357 -0.455 0.33% 21876.992op/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.196µs; 205.275µs] or [-0.019%; +0.019%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4871533.765op/s; 4873390.459op/s] or [-0.019%; +0.019%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.640µs; 18.672µs] or [-0.084%; +0.084%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53561621.023op/s; 53646306.283op/s] or [-0.079%; +0.079%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.813µs; 10.823µs] or [-0.046%; +0.046%] None None None
normalization/normalize_name/normalize_name/good throughput [92400456.360op/s; 92486212.594op/s] or [-0.046%; +0.046%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 162.209µs 162.758µs ± 0.388µs 162.680µs ± 0.158µs 162.891µs 163.280µs 163.755µs 166.484µs 2.34% 4.818 41.288 0.24% 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.704µs; 162.812µs] or [-0.033%; +0.033%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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.916µs 3.919µs 3.921µs 0.25% -0.916 10.578 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255043210.282op/s 255672548.976op/s ± 185611.919op/s 255686347.419op/s ± 86272.130op/s 255766897.371op/s 255923192.469op/s 255981444.092op/s 256939991.354op/s 0.49% 0.942 10.738 0.07% 13124.745op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 79.791µs 81.755µs ± 0.766µs 81.850µs ± 0.602µs 82.328µs 82.950µs 83.260µs 83.453µs 1.96% -0.163 -0.560 0.94% 0.054µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11982852.246op/s 12232801.847op/s ± 114878.944op/s 12217475.231op/s ± 89937.505op/s 12321232.890op/s 12411805.844op/s 12521451.690op/s 12532772.436op/s 2.58% 0.203 -0.531 0.94% 8123.168op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 74.618µs 75.023µs ± 0.195µs 75.001µs ± 0.108µs 75.110µs 75.368µs 75.600µs 75.927µs 1.23% 1.062 2.237 0.26% 0.014µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13170632.124op/s 13329320.072op/s ± 34596.306op/s 13333239.147op/s ± 19209.373op/s 13352244.363op/s 13371708.483op/s 13399261.286op/s 13401608.193op/s 0.51% -1.038 2.150 0.26% 2446.328op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.897µs 3.912µs ± 0.003µs 3.912µs ± 0.001µs 3.913µs 3.918µs 3.920µs 3.922µs 0.26% 0.010 3.838 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254981919.917op/s 255618200.347op/s ± 194091.956op/s 255639145.105op/s ± 94541.746op/s 255727893.520op/s 255906936.592op/s 255971671.733op/s 256630902.937op/s 0.39% 0.004 3.880 0.08% 13724.374op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 71.463µs 72.148µs ± 0.198µs 72.134µs ± 0.115µs 72.250µs 72.480µs 72.697µs 72.711µs 0.80% 0.157 1.463 0.27% 0.014µs 1 200
credit_card/is_card_number/378282246310005 throughput 13753002.409op/s 13860524.287op/s ± 37980.360op/s 13863050.119op/s ± 22095.539op/s 13883561.207op/s 13915484.665op/s 13970506.518op/s 13993296.104op/s 0.94% -0.128 1.480 0.27% 2685.617op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.116µs 52.182µs ± 0.029µs 52.180µs ± 0.018µs 52.199µs 52.233µs 52.269µs 52.281µs 0.19% 0.432 0.623 0.06% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19127249.507op/s 19163634.704op/s ± 10590.105op/s 19164345.693op/s ± 6545.537op/s 19169937.705op/s 19180388.725op/s 19184307.200op/s 19188019.001op/s 0.12% -0.428 0.615 0.06% 748.834op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.697µs 5.886µs ± 0.066µs 5.893µs ± 0.039µs 5.927µs 5.996µs 6.033µs 6.036µs 2.43% -0.119 -0.220 1.13% 0.005µs 1 200
credit_card/is_card_number/x371413321323331 throughput 165666862.911op/s 169908221.359op/s ± 1921951.765op/s 169692507.463op/s ± 1118117.683op/s 171448493.515op/s 173415373.255op/s 174034710.927op/s 175533163.852op/s 3.44% 0.179 -0.202 1.13% 135902.513op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.891µ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.19% -1.898 15.902 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255203730.825op/s 255691114.229op/s ± 173019.356op/s 255691728.373op/s ± 95853.301op/s 255786980.367op/s 255906654.865op/s 255973748.054op/s 257018711.606op/s 0.52% 1.927 16.153 0.07% 12234.316op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.162µs 64.475µs ± 0.239µs 64.379µs ± 0.106µs 64.604µs 64.961µs 65.216µs 65.438µs 1.64% 1.373 1.774 0.37% 0.017µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15281681.055op/s 15510003.064op/s ± 57292.114op/s 15532946.605op/s ± 25732.655op/s 15550791.859op/s 15569429.892op/s 15577474.482op/s 15585482.123op/s 0.34% -1.353 1.687 0.37% 4051.164op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.370µs 57.553µs ± 0.139µs 57.523µs ± 0.055µs 57.585µs 57.866µs 58.107µs 58.433µs 1.58% 2.715 10.676 0.24% 0.010µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17113634.137op/s 17375401.155op/s ± 41788.325op/s 17384239.449op/s ± 16763.924op/s 17398871.250op/s 17418060.528op/s 17429028.501op/s 17430676.247op/s 0.27% -2.677 10.390 0.24% 2954.881op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.896µ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.31% 0.084 5.179 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254912447.992op/s 255694157.462op/s ± 187448.703op/s 255701815.483op/s ± 97562.576op/s 255799122.161op/s 255946809.515op/s 255980230.774op/s 256705000.075op/s 0.39% -0.068 5.215 0.07% 13254.625op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.617µs 54.978µs ± 0.233µs 54.943µs ± 0.157µs 55.111µs 55.385µs 55.628µs 55.866µs 1.68% 0.931 0.983 0.42% 0.016µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17900125.516op/s 18189502.402op/s ± 76651.235op/s 18200686.138op/s ± 52103.008op/s 18247558.820op/s 18290374.325op/s 18299563.249op/s 18309337.762op/s 0.60% -0.905 0.899 0.42% 5420.061op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.133µs 52.200µs ± 0.037µs 52.196µs ± 0.023µs 52.218µs 52.267µs 52.324µs 52.373µs 0.34% 1.174 2.734 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19093788.890op/s 19157175.694op/s ± 13429.581op/s 19158449.156op/s ± 8371.161op/s 19166938.469op/s 19175435.979op/s 19177985.820op/s 19181606.757op/s 0.12% -1.167 2.704 0.07% 949.615op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.719µs 5.867µs ± 0.064µs 5.864µs ± 0.045µs 5.912µs 5.969µs 6.018µs 6.028µs 2.80% 0.112 -0.535 1.09% 0.005µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 165879897.889op/s 170471157.715op/s ± 1864689.094op/s 170519519.155op/s ± 1310819.061op/s 171725072.186op/s 173458052.023op/s 174501379.922op/s 174869281.875op/s 2.55% -0.064 -0.549 1.09% 131853.430op/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.911µs; 3.912µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255646824.949op/s; 255698273.003op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [81.648µs; 81.861µs] or [-0.130%; +0.130%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12216880.731op/s; 12248722.964op/s] or [-0.130%; +0.130%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [74.996µs; 75.050µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13324525.357op/s; 13334114.787op/s] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/37828224631 execution_time [3.912µs; 3.912µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/37828224631 throughput [255591301.068op/s; 255645099.625op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/378282246310005 execution_time [72.120µs; 72.175µs] or [-0.038%; +0.038%] None None None
credit_card/is_card_number/378282246310005 throughput [13855260.575op/s; 13865788.000op/s] or [-0.038%; +0.038%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.178µs; 52.186µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19162167.017op/s; 19165102.390op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.877µs; 5.895µs] or [-0.157%; +0.157%] None None None
credit_card/is_card_number/x371413321323331 throughput [169641857.329op/s; 170174585.390op/s] or [-0.157%; +0.157%] 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 [255667135.410op/s; 255715093.047op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.442µs; 64.509µs] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15502062.928op/s; 15517943.200op/s] or [-0.051%; +0.051%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [57.534µs; 57.572µs] or [-0.034%; +0.034%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17369609.695op/s; 17381192.615op/s] or [-0.033%; +0.033%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.911µs; 3.911µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255668178.874op/s; 255720136.049op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.946µs; 55.010µs] or [-0.059%; +0.059%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18178879.278op/s; 18200125.526op/s] or [-0.058%; +0.058%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.195µs; 52.205µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19155314.484op/s; 19159036.905op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.858µs; 5.876µs] or [-0.152%; +0.152%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [170212729.741op/s; 170729585.690op/s] or [-0.152%; +0.152%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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.932ms 3.941ms ± 0.009ms 3.940ms ± 0.002ms 3.942ms 3.947ms 3.970ms 4.037ms 2.46% 7.276 71.307 0.22% 0.001ms 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.940ms; 3.943ms] or [-0.031%; +0.031%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 18.028µs 26.329µs ± 9.613µs 18.326µs ± 0.232µs 34.988µs 43.205µs 46.604µs 59.257µs 223.35% 0.671 -0.749 36.42% 0.680µ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.997µs; 27.661µs] or [-5.060%; +5.060%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 144.563µs 146.480µs ± 1.694µs 146.238µs ± 0.485µs 146.705µs 148.011µs 153.300µs 162.996µs 11.46% 5.832 47.725 1.15% 0.120µ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 [146.245µs; 146.715µs] or [-0.160%; +0.160%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 34.348µs 34.960µs ± 1.037µs 34.493µs ± 0.050µs 34.550µs 37.175µs 37.262µs 38.239µs 10.86% 1.715 1.043 2.96% 0.073µ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.816µs; 35.104µs] or [-0.411%; +0.411%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 5.021µs 5.095µs ± 0.041µs 5.101µs ± 0.031µs 5.125µs 5.160µs 5.162µs 5.165µs 1.26% -0.183 -1.156 0.81% 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.090µs; 5.101µs] or [-0.112%; +0.112%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 9.578ms 9.896ms ± 0.070ms 9.900ms ± 0.031ms 9.928ms 9.984ms 10.090ms 10.111ms 2.13% -0.961 4.892 0.71% 0.005ms 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 [9.886ms; 9.906ms] or [-0.098%; +0.098%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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 533.052µs 533.914µs ± 0.930µs 533.831µs ± 0.225µs 534.049µs 534.561µs 535.265µs 545.849µs 2.25% 10.711 134.020 0.17% 0.066µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1832008.881op/s 1872966.866op/s ± 3204.376op/s 1873251.093op/s ± 788.402op/s 1874049.488op/s 1874944.179op/s 1875820.297op/s 1875989.585op/s 0.15% -10.600 132.069 0.17% 226.584op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 379.836µs 380.440µs ± 0.290µs 380.425µs ± 0.190µs 380.611µs 380.919µs 381.296µs 381.597µs 0.31% 0.758 1.442 0.08% 0.021µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2620568.363op/s 2628534.437op/s ± 2004.393op/s 2628637.069op/s ± 1312.603op/s 2629967.190op/s 2631400.289op/s 2632170.984op/s 2632717.583op/s 0.16% -0.752 1.422 0.08% 141.732op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.105µs 189.543µs ± 0.177µs 189.546µs ± 0.118µs 189.662µs 189.807µs 190.013µs 190.050µs 0.27% 0.151 0.348 0.09% 0.012µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5261773.927op/s 5275857.755op/s ± 4918.465op/s 5275758.128op/s ± 3277.601op/s 5279080.986op/s 5283416.592op/s 5287344.364op/s 5288056.721op/s 0.23% -0.144 0.344 0.09% 347.788op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.873µs 36.969µs ± 0.055µs 36.961µs ± 0.033µs 37.000µs 37.066µs 37.088µs 37.274µs 0.85% 1.149 3.720 0.15% 0.004µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26828281.064op/s 27049393.104op/s ± 40009.778op/s 27055336.507op/s ± 24200.206op/s 27073983.201op/s 27104024.776op/s 27115489.009op/s 27120354.457op/s 0.24% -1.130 3.606 0.15% 2829.119op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 44.923µs 45.141µs ± 0.187µs 45.118µs ± 0.146µs 45.288µs 45.392µs 45.525µs 46.487µs 3.04% 2.028 11.588 0.41% 0.013µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21511225.753op/s 22153078.944op/s ± 90997.412op/s 22164146.810op/s ± 71868.090op/s 22234361.911op/s 22254644.770op/s 22259424.866op/s 22260460.747op/s 0.43% -1.914 10.532 0.41% 6434.489op/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 [533.785µs; 534.043µs] or [-0.024%; +0.024%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1872522.770op/s; 1873410.962op/s] or [-0.024%; +0.024%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [380.400µs; 380.481µs] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2628256.647op/s; 2628812.227op/s] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [189.518µs; 189.567µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5275176.103op/s; 5276539.407op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.962µs; 36.977µs] or [-0.021%; +0.021%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27043848.133op/s; 27054938.074op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.115µs; 45.167µs] or [-0.057%; +0.057%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [22140467.578op/s; 22165690.310op/s] or [-0.057%; +0.057%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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.809ms 61.364ms ± 2.370ms 61.067ms ± 0.082ms 61.139ms 61.354ms 77.453ms 83.153ms 36.17% 8.110 64.966 3.85% 0.168ms 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 [61.035ms; 61.692ms] or [-0.535%; +0.535%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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.414µs 2.435µs ± 0.015µs 2.430µs ± 0.006µs 2.439µs 2.476µs 2.484µs 2.484µs 2.25% 1.687 2.418 0.63% 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.433µs; 2.437µs] or [-0.087%; +0.087%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c46f03b 1765807881 edouard/add-fuzzing-infra
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.199ms 14.257ms ± 0.036ms 14.253ms ± 0.019ms 14.273ms 14.301ms 14.396ms 14.497ms 1.71% 2.375 11.739 0.25% 0.003ms 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.252ms; 14.262ms] or [-0.035%; +0.035%] None None None

Baseline

Omitted due to size.

@edznux-dd edznux-dd marked this pull request as ready for review November 26, 2025 17:30
@edznux-dd edznux-dd requested review from a team as code owners November 26, 2025 17:30
@dd-octo-sts
Copy link

dd-octo-sts bot commented Nov 27, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.44 MB 7.44 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 86.48 MB 86.48 MB 0% (0 B) 👌
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 58.49 MB 58.49 MB 0% (0 B) 👌
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 8.45 MB 8.45 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.27 MB 100.27 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.61 MB 9.61 MB 0% (0 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 19.72 MB 19.72 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 69.82 KB 69.82 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 140.15 MB 140.14 MB -0% (-8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 744.89 MB 744.89 MB +0% (+1.42 KB) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 6.37 MB 6.37 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 69.82 KB 69.82 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 19.75 MB 19.75 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 38.79 MB 38.79 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 16.83 MB 16.83 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 70.90 KB 70.90 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 142.76 MB 142.76 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 733.41 MB 733.41 MB +0% (+1.42 KB) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.89 MB 4.89 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 70.90 KB 70.90 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 20.98 MB 20.98 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 36.54 MB 36.54 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 74.80 MB 74.80 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.88 MB 8.88 MB 0% (0 B) 👌
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 59.83 MB 59.83 MB 0% (0 B) 👌
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 9.50 MB 9.50 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 94.46 MB 94.46 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.32 MB 10.32 MB 0% (0 B) 👌

@edznux-dd edznux-dd force-pushed the edouard/add-fuzzing-infra branch from a470af9 to ff918ab Compare December 10, 2025 15:39
Copy link
Contributor

@VianneyRuhlmann VianneyRuhlmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

.gitignore @Datadog/libdatadog
.gitlab-ci.yml @Datadog/apm-common-components-core
.gitlab/benchmarks.yml @Datadog/apm-common-components-core
.gitlab/fuzz.yml @Datadog/chaos-platform
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for flagging ownership

Copy link
Contributor

@r1viollet r1viollet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Thank you for adding the infra to do this.
NIT: it was not totally clear where I should look up the reports from the readme (I understand I can go to gitlab, though you might want a more explicit mechanism)

@r1viollet r1viollet merged commit 5ecbaa0 into main Dec 16, 2025
38 checks passed
@r1viollet r1viollet deleted the edouard/add-fuzzing-infra branch December 16, 2025 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants