Skip to content

Conversation

@vpellan
Copy link
Contributor

@vpellan vpellan commented Jan 7, 2026

What does this PR do?

This PR adds a check for stable config files >100mb and returns an error if it goes above that limit.

Motivation

Enforcing a limit at all provides value by protecting against extreme or clearly invalid file inputs

Additional Notes

The intentionally high limit is designed to minimize the risk of customers inadvertently hitting the cap and losing configuration silently. Under normal conditions, configuration files should remain well below this threshold

How to test the change?

Tests have been added

@vpellan vpellan requested a review from a team as a code owner January 7, 2026 11:01
@vpellan vpellan requested review from cecile75 and removed request for a team January 7, 2026 11:01
@pr-commenter
Copy link

pr-commenter bot commented Jan 7, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-01-07 13:28:18

Comparing candidate commit 23c5263 in PR branch vpellan/stable-config-size-limit with baseline commit 0d4ebbe 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 23c5263 1767791579 vpellan/stable-config-size-limit
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.891µs 534.975µs ± 0.532µs 534.900µs ± 0.329µs 535.318µs 535.703µs 536.526µs 537.846µs 0.55% 1.583 6.669 0.10% 0.038µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1859269.893op/s 1869248.661op/s ± 1855.115op/s 1869509.142op/s ± 1151.510op/s 1870510.654op/s 1871738.843op/s 1872583.596op/s 1873041.088op/s 0.19% -1.565 6.561 0.10% 131.176op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 380.508µs 381.050µs ± 0.731µs 380.973µs ± 0.125µs 381.086µs 381.353µs 381.709µs 388.517µs 1.98% 8.887 83.415 0.19% 0.052µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2573892.826op/s 2624339.995op/s ± 4952.240op/s 2624856.731op/s ± 858.969op/s 2625748.899op/s 2626557.955op/s 2627641.006op/s 2628065.939op/s 0.12% -8.850 82.912 0.19% 350.176op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 190.172µs 190.637µs ± 0.248µs 190.613µs ± 0.196µs 190.845µs 191.059µs 191.133µs 191.172µs 0.29% 0.171 -0.904 0.13% 0.018µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5230887.344op/s 5245580.813op/s ± 6823.363op/s 5246238.245op/s ± 5405.119op/s 5251110.105op/s 5255891.892op/s 5257597.145op/s 5258407.587op/s 0.23% -0.167 -0.906 0.13% 482.485op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.006µs 37.232µs ± 0.094µs 37.237µs ± 0.066µs 37.304µs 37.378µs 37.412µs 37.428µs 0.51% -0.193 -0.689 0.25% 0.007µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26718221.635op/s 26858746.422op/s ± 68175.991op/s 26855184.704op/s ± 47555.923op/s 26901922.640op/s 26977486.079op/s 27009386.872op/s 27022356.388op/s 0.62% 0.203 -0.685 0.25% 4820.771op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.792µs 45.912µs ± 0.156µs 45.899µs ± 0.027µs 45.926µs 45.980µs 46.049µs 48.016µs 4.61% 12.312 163.196 0.34% 0.011µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20826521.325op/s 21781200.677op/s ± 71159.326op/s 21786851.007op/s ± 12866.419op/s 21799873.890op/s 21816922.784op/s 21825906.710op/s 21838013.381op/s 0.23% -12.171 160.659 0.33% 5031.724op/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 [534.901µs; 535.049µs] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1868991.560op/s; 1869505.762op/s] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [380.948µs; 381.151µs] or [-0.027%; +0.027%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2623653.662op/s; 2625026.328op/s] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [190.603µs; 190.671µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5244635.161op/s; 5246526.466op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.219µs; 37.245µs] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26849297.885op/s; 26868194.958op/s] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.890µs; 45.933µs] or [-0.047%; +0.047%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21771338.679op/s; 21791062.675op/s] or [-0.045%; +0.045%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.774ms 9.877ms ± 0.065ms 9.867ms ± 0.027ms 9.898ms 9.957ms 10.072ms 10.482ms 6.23% 4.590 37.758 0.65% 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.868ms; 9.886ms] or [-0.091%; +0.091%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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 13.815ms 13.865ms ± 0.031ms 13.858ms ± 0.012ms 13.872ms 13.919ms 13.983ms 14.064ms 1.49% 2.932 12.314 0.22% 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 [13.860ms; 13.869ms] or [-0.031%; +0.031%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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 186.122ns 189.259ns ± 2.585ns 188.778ns ± 1.770ns 190.660ns 193.669ns 197.520ns 201.964ns 6.99% 1.466 3.800 1.36% 0.183ns 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 [188.900ns; 189.617ns] or [-0.189%; +0.189%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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 554.818µs 555.850µs ± 0.461µs 555.802µs ± 0.259µs 556.086µs 556.584µs 556.959µs 558.685µs 0.52% 1.477 6.485 0.08% 0.033µ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 [555.786µs; 555.914µs] or [-0.011%; +0.011%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.245µs 89.504µs ± 0.151µs 89.504µs ± 0.074µs 89.564µs 89.659µs 89.760µs 90.988µs 1.66% 4.690 45.092 0.17% 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.483µs; 89.525µs] or [-0.023%; +0.023%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.700µs 162.230µs ± 0.426µs 162.156µs ± 0.168µs 162.359µs 162.784µs 163.624µs 166.046µs 2.40% 4.513 33.211 0.26% 0.030µ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.171µs; 162.289µs] or [-0.036%; +0.036%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.975µs 35.578µs ± 1.025µs 35.113µs ± 0.052µs 35.193µs 37.752µs 37.791µs 39.294µs 11.91% 1.751 1.280 2.88% 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 [35.436µs; 35.720µs] or [-0.399%; +0.399%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.993µs 5.088µs ± 0.048µs 5.080µs ± 0.026µs 5.107µs 5.174µs 5.176µs 5.178µs 1.93% 0.286 -0.599 0.93% 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.081µs; 5.094µs] or [-0.130%; +0.130%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.317µs 24.567µs ± 9.335µs 17.547µs ± 0.133µs 33.086µs 41.718µs 46.643µs 65.909µs 275.63% 1.015 0.595 37.90% 0.660µ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.273µs; 25.860µs] or [-5.266%; +5.266%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.221ms 60.652ms ± 1.344ms 60.431ms ± 0.078ms 60.539ms 60.877ms 66.020ms 73.301ms 21.30% 7.926 65.981 2.21% 0.095ms 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.466ms; 60.839ms] or [-0.307%; +0.307%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.701µs 146.764µs ± 1.566µs 146.593µs ± 0.580µs 147.125µs 148.409µs 152.368µs 160.631µs 9.58% 4.987 36.694 1.06% 0.111µ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.546µs; 146.981µs] or [-0.148%; +0.148%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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 242.020ns 256.965ns ± 15.869ns 249.575ns ± 5.219ns 268.182ns 287.501ns 302.057ns 304.343ns 21.94% 1.224 0.436 6.16% 1.122ns 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.766ns; 259.165ns] or [-0.856%; +0.856%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.921ms 3.930ms ± 0.007ms 3.930ms ± 0.002ms 3.932ms 3.936ms 3.942ms 4.011ms 2.06% 8.563 99.303 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.929ms; 3.931ms] or [-0.024%; +0.024%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.670ms 10.704ms ± 0.015ms 10.702ms ± 0.009ms 10.713ms 10.727ms 10.739ms 10.781ms 0.74% 1.046 3.449 0.14% 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.702ms; 10.706ms] or [-0.020%; +0.020%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.189µs 3.184µs ± 1.426µs 3.012µs ± 0.019µs 3.029µs 3.371µs 13.788µs 15.163µs 403.34% 7.466 56.507 44.66% 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 [2.987µs; 3.382µs] or [-6.205%; +6.205%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.311µs 2.380µs ± 0.022µs 2.380µs ± 0.004µs 2.384µs 2.413µs 2.426µs 2.533µs 6.40% 0.938 13.820 0.91% 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.377µs; 2.383µs] or [-0.126%; +0.126%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.893µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.918µs 3.920µs 3.923µs 0.29% -0.343 4.376 0.09% 0.000µs 1 200
credit_card/is_card_number/ throughput 254897531.591op/s 255625443.392op/s ± 222970.954op/s 255634250.871op/s ± 131877.462op/s 255762725.820op/s 255938543.683op/s 255989665.380op/s 256878094.316op/s 0.49% 0.360 4.449 0.09% 15766.427op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.347µs 78.485µs ± 0.614µs 78.430µs ± 0.400µs 78.892µs 79.570µs 79.790µs 80.607µs 2.78% 0.408 0.053 0.78% 0.043µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12405899.315op/s 12742073.408op/s ± 99363.426op/s 12750176.165op/s ± 65407.589op/s 12800565.549op/s 12896921.790op/s 12924742.767op/s 12928822.790op/s 1.40% -0.365 -0.020 0.78% 7026.055op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 71.259µs 72.079µs ± 0.375µs 72.042µs ± 0.245µs 72.306µs 72.806µs 72.978µs 73.101µs 1.47% 0.450 -0.173 0.52% 0.027µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13679716.887op/s 13874051.122op/s ± 72055.948op/s 13880845.129op/s ± 46966.223op/s 13925610.274op/s 13976812.486op/s 14010294.335op/s 14033391.597op/s 1.10% -0.424 -0.200 0.52% 5095.125op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.894µs 3.911µs ± 0.003µs 3.911µs ± 0.002µs 3.913µs 3.915µs 3.918µs 3.918µs 0.19% -0.902 6.216 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255202508.230op/s 255688182.569op/s ± 175569.015op/s 255687548.018op/s ± 115258.219op/s 255806690.576op/s 255934912.419op/s 255982486.668op/s 256776432.483op/s 0.43% 0.917 6.311 0.07% 12414.604op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 68.070µs 68.587µs ± 0.313µs 68.510µs ± 0.226µs 68.815µs 69.096µs 69.426µs 69.594µs 1.58% 0.648 -0.129 0.46% 0.022µs 1 200
credit_card/is_card_number/378282246310005 throughput 14369027.934op/s 14580223.673op/s ± 66363.720op/s 14596342.157op/s ± 48002.582op/s 14636002.008op/s 14666866.096op/s 14677277.417op/s 14690706.297op/s 0.65% -0.628 -0.176 0.45% 4692.624op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 44.554µs 44.929µs ± 0.116µs 44.945µs ± 0.079µs 45.015µs 45.095µs 45.112µs 45.113µs 0.37% -0.631 -0.008 0.26% 0.008µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 22166577.155op/s 22257335.088op/s ± 57734.783op/s 22249584.714op/s ± 39087.840op/s 22298038.339op/s 22360790.139op/s 22403935.922op/s 22444520.266op/s 0.88% 0.644 0.018 0.26% 4082.466op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.690µs 5.700µs ± 0.004µs 5.699µs ± 0.003µs 5.703µs 5.706µs 5.708µs 5.711µs 0.21% 0.152 -0.681 0.07% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 175089834.554op/s 175449384.639op/s ± 131853.160op/s 175462231.755op/s ± 106707.171op/s 175548306.510op/s 175644904.434op/s 175693617.751op/s 175744759.727op/s 0.16% -0.150 -0.682 0.07% 9323.426op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.894µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.921µs 3.922µs 0.26% -0.292 5.657 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254959241.420op/s 255619736.054op/s ± 202511.628op/s 255632346.901op/s ± 116932.489op/s 255747479.520op/s 255880048.726op/s 255919330.045op/s 256802839.796op/s 0.46% 0.310 5.737 0.08% 14319.735op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 60.981µs 62.273µs ± 0.582µs 62.214µs ± 0.383µs 62.700µs 63.221µs 63.607µs 63.853µs 2.63% 0.182 -0.197 0.93% 0.041µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15661066.675op/s 16059804.633op/s ± 149929.953op/s 16073577.387op/s ± 98778.798op/s 16152648.511op/s 16308452.305op/s 16379352.997op/s 16398488.950op/s 2.02% -0.132 -0.218 0.93% 10601.649op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.572µs 53.855µs ± 0.101µs 53.854µs ± 0.069µs 53.929µs 54.023µs 54.052µs 54.138µs 0.53% -0.162 -0.118 0.19% 0.007µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18471251.682op/s 18568476.925op/s ± 34723.646op/s 18568603.277op/s ± 23813.897op/s 18589258.202op/s 18628630.436op/s 18649929.180op/s 18666574.337op/s 0.53% 0.172 -0.116 0.19% 2455.333op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.894µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.920µs 3.923µs 0.30% -0.575 7.115 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254879089.051op/s 255620622.873op/s ± 195908.383op/s 255637085.387op/s ± 113372.501op/s 255744587.732op/s 255871766.344op/s 255936910.699op/s 256837842.639op/s 0.47% 0.595 7.219 0.08% 13852.815op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.198µs 50.491µs ± 0.149µs 50.491µs ± 0.071µs 50.549µs 50.747µs 51.023µs 51.059µs 1.13% 1.274 3.446 0.29% 0.011µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19585085.534op/s 19805573.963op/s ± 58084.496op/s 19805438.934op/s ± 27765.807op/s 19835675.886op/s 19888463.202op/s 19920421.560op/s 19921309.825op/s 0.59% -1.241 3.346 0.29% 4107.194op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 44.534µs 44.931µs ± 0.139µs 44.951µs ± 0.100µs 45.041µs 45.106µs 45.148µs 45.216µs 0.59% -0.634 -0.138 0.31% 0.010µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 22115865.515op/s 22256662.084op/s ± 68776.325op/s 22246483.861op/s ± 49393.128op/s 22299469.273op/s 22392046.332op/s 22440070.703op/s 22454507.219op/s 0.94% 0.647 -0.115 0.31% 4863.221op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.692µs 5.699µs ± 0.009µs 5.698µs ± 0.002µs 5.700µs 5.706µs 5.718µs 5.794µs 1.68% 8.067 77.930 0.15% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 172591352.455op/s 175465632.160op/s ± 266273.574op/s 175493182.099op/s ± 69177.652op/s 175568546.355op/s 175634260.099op/s 175675209.495op/s 175678524.517op/s 0.11% -7.999 76.881 0.15% 18828.385op/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.912µs; 3.912µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/ throughput [255594541.763op/s; 255656345.022op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [78.400µs; 78.570µs] or [-0.108%; +0.108%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12728302.593op/s; 12755844.224op/s] or [-0.108%; +0.108%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [72.027µs; 72.131µs] or [-0.072%; +0.072%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13864064.861op/s; 13884037.384op/s] or [-0.072%; +0.072%] None None None
credit_card/is_card_number/37828224631 execution_time [3.911µs; 3.911µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631 throughput [255663850.392op/s; 255712514.746op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/378282246310005 execution_time [68.544µs; 68.631µs] or [-0.063%; +0.063%] None None None
credit_card/is_card_number/378282246310005 throughput [14571026.299op/s; 14589421.046op/s] or [-0.063%; +0.063%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [44.913µs; 44.945µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [22249333.603op/s; 22265336.574op/s] or [-0.036%; +0.036%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.699µs; 5.700µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/x371413321323331 throughput [175431111.059op/s; 175467658.218op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.912µs; 3.912µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255591669.890op/s; 255647802.218op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [62.192µs; 62.353µs] or [-0.130%; +0.130%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [16039025.783op/s; 16080583.482op/s] or [-0.129%; +0.129%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.841µs; 53.869µs] or [-0.026%; +0.026%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18563664.562op/s; 18573289.289op/s] or [-0.026%; +0.026%] 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 [255593471.855op/s; 255647773.890op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.471µs; 50.512µs] or [-0.041%; +0.041%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19797524.011op/s; 19813623.916op/s] or [-0.041%; +0.041%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [44.912µs; 44.950µs] or [-0.043%; +0.043%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [22247130.347op/s; 22266193.821op/s] or [-0.043%; +0.043%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.698µs; 5.700µs] or [-0.021%; +0.021%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [175428729.203op/s; 175502535.116op/s] or [-0.021%; +0.021%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 23c5263 1767791579 vpellan/stable-config-size-limit
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.242µs 204.922µs ± 0.392µs 204.846µs ± 0.275µs 205.162µs 205.640µs 206.040µs 206.401µs 0.76% 0.829 0.764 0.19% 0.028µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4844940.304op/s 4879914.782op/s ± 9315.151op/s 4881727.614op/s ± 6561.116op/s 4887113.638op/s 4892561.046op/s 4894311.076op/s 4896158.434op/s 0.30% -0.817 0.730 0.19% 658.681op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.564µs 18.651µs ± 0.065µs 18.635µs ± 0.029µs 18.665µs 18.802µs 18.875µs 18.908µs 1.46% 1.590 2.516 0.35% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52888211.800op/s 53616789.679op/s ± 184683.368op/s 53661706.602op/s ± 83934.855op/s 53743563.729op/s 53810368.033op/s 53850153.893op/s 53868905.909op/s 0.39% -1.569 2.434 0.34% 13059.086op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.843µs 10.931µs ± 0.045µs 10.923µs ± 0.028µs 10.961µs 11.016µs 11.051µs 11.074µs 1.38% 0.567 0.104 0.41% 0.003µs 1 200
normalization/normalize_name/normalize_name/good throughput 90297969.407op/s 91482853.297op/s ± 371724.390op/s 91546040.104op/s ± 230691.665op/s 91726952.148op/s 92037581.069op/s 92128844.700op/s 92229062.939op/s 0.75% -0.546 0.068 0.41% 26284.884op/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 [204.868µs; 204.977µs] or [-0.026%; +0.026%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4878623.792op/s; 4881205.772op/s] or [-0.026%; +0.026%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.642µs; 18.660µs] or [-0.048%; +0.048%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53591194.341op/s; 53642385.018op/s] or [-0.048%; +0.048%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.925µs; 10.937µs] or [-0.056%; +0.056%] None None None
normalization/normalize_name/normalize_name/good throughput [91431335.871op/s; 91534370.722op/s] or [-0.056%; +0.056%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Jan 7, 2026

Codecov Report

❌ Patch coverage is 80.00000% with 17 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.25%. Comparing base (0d4ebbe) to head (23c5263).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1432      +/-   ##
==========================================
+ Coverage   71.23%   71.25%   +0.01%     
==========================================
  Files         411      411              
  Lines       65788    65863      +75     
==========================================
+ Hits        46863    46929      +66     
- Misses      18925    18934       +9     
Components Coverage Δ
libdd-crashtracker 58.70% <ø> (-0.02%) ⬇️
libdd-crashtracker-ffi 14.72% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.03% <ø> (+0.01%) ⬆️
libdd-data-pipeline-ffi 77.74% <ø> (ø)
libdd-common 81.06% <ø> (ø)
libdd-common-ffi 74.19% <ø> (ø)
libdd-telemetry 59.95% <ø> (ø)
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.61% <ø> (ø)
libdd-profiling 80.82% <ø> (-0.02%) ⬇️
libdd-profiling-ffi 62.43% <ø> (ø)
datadog-sidecar 35.88% <ø> (ø)
datdog-sidecar-ffi 10.88% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 92.44% <ø> (ø)
libdd-trace-normalization 82.33% <ø> (ø)
libdd-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 61.18% <ø> (ø)
libdd-trace-utils 89.92% <ø> (ø)
datadog-tracer-flare 62.06% <ø> (ø)
libdd-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@vpellan vpellan force-pushed the vpellan/stable-config-size-limit branch from b226e19 to 23c5263 Compare January 7, 2026 13:13
if metadata.len() > 1024 * 1024 * 100 {
let anyhow_error = anyhow::anyhow!("Local file is too large (> 100mb)");
let logged_result = LoggedResult::Err(anyhow_error);
return logged_result;
Copy link
Contributor

Choose a reason for hiding this comment

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

is it by design that if one of them is too large, we bail out of stable config completely?
NIT: also was wondering if this check could be in a separate function which both local and fleet could reuse but not a big deal

Copy link

@mtoffl01 mtoffl01 Jan 7, 2026

Choose a reason for hiding this comment

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

@anna-git ,

if one of them is too large, we bail out of stable config completely

If I remember correctly, we discussed this limitation a few months ago. For libraries that do not embed libdatadog for stable config -- like java and go -- we can attempt to open each file individually, and handle errors separately. It's my understanding that, in the libdatadog architecture, if either file is too big, we return a single error, and when the library consumes this error, it bails. Hence the behavior you described above. Correct?

And to my memory, we said there isn't a clean way to separate the error handling right now without breaking APIs, yes?

I really don't like this solution, since both inputs will have very different user experiences and thus should be logically separated, but I also acknowledge if it's the best we can do right now. In this case, can we add a comment in here that references a jira card that describes the issue behavior as well as how we might fix it in the future?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think it wouldn't be a problem to return a config without the keys from the faulty file, and just add the validation error to the messages of LoggedResult. We could extend LoggedResult to contain error_messages and add the >100 mb error message in this vector. The tracers should read this vector always, and if they see it's filled up, log it as an error, so that it appears in error tracking as well. We just fill the error_messages, dont interrupt the function and just return an Ok() with whichever configs were read.
If no file could be read at all(very rare...), I guess we could reallyl return an Error..

},
);
match result {
LoggedResult::Ok(..) => panic!("Expected error"),
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
LoggedResult::Ok(..) => panic!("Expected error"),
LoggedResult::Ok(..) => panic!("Expected error for fleet file > 100mb, but got success instead"),

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.

5 participants