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-12 15:44:33

Comparing candidate commit 2162cd7 in PR branch vpellan/stable-config-size-limit with baseline commit 77838bb 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 2162cd7 1768231747 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 541.235µs 542.200µs ± 0.482µs 542.131µs ± 0.232µs 542.403µs 542.852µs 543.130µs 546.678µs 0.84% 4.085 35.414 0.09% 0.034µ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 [542.133µs; 542.267µs] or [-0.012%; +0.012%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.094µs 34.539µs ± 0.663µs 34.239µs ± 0.062µs 34.367µs 35.882µs 35.981µs 38.002µs 10.99% 2.002 3.571 1.92% 0.047µ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.448µs; 34.631µs] or [-0.266%; +0.266%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.526ns 251.048ns ± 12.482ns 245.873ns ± 2.105ns 251.193ns 281.840ns 294.574ns 294.973ns 19.97% 2.214 4.060 4.96% 0.883ns 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 [249.318ns; 252.778ns] or [-0.689%; +0.689%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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 495.342µs 496.181µs ± 0.811µs 496.140µs ± 0.291µs 496.402µs 496.783µs 497.063µs 506.204µs 2.03% 9.476 114.728 0.16% 0.057µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1975487.493op/s 2015398.266op/s ± 3245.926op/s 2015561.591op/s ± 1183.983op/s 2016783.900op/s 2018043.642op/s 2018499.659op/s 2018806.755op/s 0.16% -9.344 112.576 0.16% 229.522op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 370.740µs 371.689µs ± 0.300µs 371.660µs ± 0.205µs 371.888µs 372.255µs 372.290µs 372.349µs 0.19% 0.128 -0.292 0.08% 0.021µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2685651.812op/s 2690421.334op/s ± 2168.268op/s 2690632.481op/s ± 1484.602op/s 2691958.120op/s 2693710.142op/s 2694668.835op/s 2697309.984op/s 0.25% -0.124 -0.289 0.08% 153.320op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 169.499µs 169.937µs ± 0.141µs 169.931µs ± 0.102µs 170.031µs 170.174µs 170.304µs 170.430µs 0.29% 0.393 0.477 0.08% 0.010µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5867519.595op/s 5884551.402op/s ± 4865.386op/s 5884747.093op/s ± 3518.179op/s 5888369.993op/s 5892020.732op/s 5892945.680op/s 5899724.442op/s 0.25% -0.387 0.471 0.08% 344.035op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.267µs 37.379µs ± 0.047µs 37.382µs ± 0.028µs 37.407µs 37.455µs 37.485µs 37.530µs 0.40% 0.254 0.209 0.12% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26645132.263op/s 26752803.376op/s ± 33306.665op/s 26750717.637op/s ± 20366.176op/s 26773396.825op/s 26806085.444op/s 26820384.307op/s 26833382.797op/s 0.31% -0.246 0.198 0.12% 2355.137op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.183µs 46.333µs ± 0.137µs 46.299µs ± 0.053µs 46.374µs 46.542µs 46.638µs 47.707µs 3.04% 5.337 48.355 0.30% 0.010µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20961353.623op/s 21583190.706op/s ± 63039.710op/s 21598586.640op/s ± 24655.576op/s 21616879.440op/s 21643480.160op/s 21650928.550op/s 21653215.721op/s 0.25% -5.147 45.737 0.29% 4457.581op/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 [496.069µs; 496.294µs] or [-0.023%; +0.023%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2014948.412op/s; 2015848.120op/s] or [-0.022%; +0.022%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [371.648µs; 371.731µs] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2690120.833op/s; 2690721.835op/s] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [169.917µs; 169.956µs] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5883877.107op/s; 5885225.698op/s] or [-0.011%; +0.011%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.373µs; 37.386µs] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26748187.393op/s; 26757419.360op/s] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.314µs; 46.352µs] or [-0.041%; +0.041%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21574454.009op/s; 21591927.404op/s] or [-0.040%; +0.040%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.613ms 9.895ms ± 0.065ms 9.901ms ± 0.030ms 9.935ms 9.976ms 9.999ms 10.048ms 1.49% -1.598 4.394 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.886ms; 9.904ms] or [-0.090%; +0.090%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.935µs 25.822µs ± 9.532µs 18.540µs ± 0.381µs 34.094µs 43.652µs 46.245µs 68.199µs 267.85% 1.039 0.823 36.82% 0.674µ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.501µs; 27.143µs] or [-5.116%; +5.116%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.791µs 146.815µs ± 1.624µs 146.547µs ± 0.535µs 147.200µs 148.070µs 152.484µs 162.548µs 10.92% 6.025 49.643 1.10% 0.115µ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.590µs; 147.040µs] or [-0.153%; +0.153%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.209ms 60.757ms ± 2.186ms 60.488ms ± 0.092ms 60.569ms 60.707ms 72.844ms 80.889ms 33.73% 8.334 69.742 3.59% 0.155ms 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.454ms; 61.060ms] or [-0.499%; +0.499%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.975ms 3.982ms ± 0.007ms 3.981ms ± 0.001ms 3.982ms 3.986ms 3.991ms 4.078ms 2.43% 11.550 149.284 0.18% 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.981ms; 3.983ms] or [-0.025%; +0.025%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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 186.354µs 186.823µs ± 0.270µs 186.776µs ± 0.147µs 186.934µs 187.205µs 187.912µs 188.388µs 0.86% 2.238 8.799 0.14% 0.019µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5308183.162op/s 5352682.892op/s ± 7711.704op/s 5354005.148op/s ± 4206.031op/s 5357650.817op/s 5361832.689op/s 5363490.884op/s 5366123.208op/s 0.23% -2.213 8.638 0.14% 545.300op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.508µs 17.623µs ± 0.091µs 17.615µs ± 0.029µs 17.646µs 17.689µs 17.722µs 18.761µs 6.50% 9.922 122.016 0.51% 0.006µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 53303293.966op/s 56745486.573op/s ± 278202.380op/s 56768858.555op/s ± 93331.614op/s 56851513.456op/s 56954274.804op/s 57027840.254op/s 57117997.215op/s 0.62% -9.529 115.504 0.49% 19671.879op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.047µs 10.127µs ± 0.039µs 10.125µs ± 0.030µs 10.156µs 10.187µs 10.208µs 10.212µs 0.86% -0.039 -0.780 0.39% 0.003µs 1 200
normalization/normalize_name/normalize_name/good throughput 97922921.308op/s 98745624.649op/s ± 381314.882op/s 98761478.798op/s ± 292668.762op/s 99029381.153op/s 99400037.986op/s 99500638.020op/s 99535951.330op/s 0.78% 0.054 -0.779 0.39% 26963.034op/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 [186.785µs; 186.860µs] or [-0.020%; +0.020%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5351614.124op/s; 5353751.660op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.610µs; 17.636µs] or [-0.071%; +0.071%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [56706930.399op/s; 56784042.747op/s] or [-0.068%; +0.068%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.122µs; 10.133µs] or [-0.054%; +0.054%] None None None
normalization/normalize_name/normalize_name/good throughput [98692778.074op/s; 98798471.225op/s] or [-0.054%; +0.054%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.253µs 3.233µs ± 1.450µs 3.027µs ± 0.027µs 3.053µs 3.691µs 14.049µs 15.035µs 396.65% 7.403 55.775 44.73% 0.103µ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.032µs; 3.434µs] or [-6.215%; +6.215%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.541ms 10.567ms ± 0.013ms 10.566ms ± 0.009ms 10.575ms 10.589ms 10.596ms 10.644ms 0.74% 1.209 5.185 0.12% 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.565ms; 10.569ms] or [-0.017%; +0.017%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.347µs 2.406µs ± 0.016µs 2.408µs ± 0.005µs 2.413µs 2.427µs 2.435µs 2.441µs 1.40% -1.736 4.208 0.68% 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.404µs; 2.408µs] or [-0.094%; +0.094%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.982µs 90.313µs ± 0.122µs 90.298µs ± 0.044µs 90.345µs 90.476µs 90.791µs 91.424µs 1.25% 4.429 35.299 0.13% 0.009µ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.296µs; 90.330µs] or [-0.019%; +0.019%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.938µs 5.011µs ± 0.035µs 5.016µs ± 0.028µs 5.042µs 5.048µs 5.054µs 5.094µs 1.56% -0.525 -1.026 0.70% 0.002µ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.006µs; 5.016µs] 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 2162cd7 1768231747 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.891µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.913µs 3.915µs 3.916µs 3.917µs 0.14% -2.450 18.051 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255277006.001op/s 255640093.222op/s ± 172841.056op/s 255632385.239op/s ± 100500.537op/s 255731813.038op/s 255874789.411op/s 255957187.208op/s 257012795.659op/s 0.54% 2.478 18.331 0.07% 12221.708op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 80.016µs 82.132µs ± 0.542µs 82.174µs ± 0.386µs 82.519µs 82.942µs 83.128µs 83.312µs 1.39% -0.448 0.368 0.66% 0.038µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12003019.645op/s 12176009.688op/s ± 80615.127op/s 12169301.734op/s ± 57144.740op/s 12230904.744op/s 12316656.485op/s 12356960.165op/s 12497537.627op/s 2.70% 0.492 0.476 0.66% 5700.350op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 74.207µs 74.934µs ± 0.203µs 74.917µs ± 0.082µs 75.009µs 75.189µs 75.666µs 76.211µs 1.73% 2.097 13.323 0.27% 0.014µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13121403.732op/s 13345174.725op/s ± 36018.056op/s 13348102.579op/s ± 14672.072op/s 13361908.209op/s 13393639.581op/s 13417856.495op/s 13475844.749op/s 0.96% -2.009 12.860 0.27% 2546.861op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.895µs 3.911µs ± 0.003µs 3.911µs ± 0.002µs 3.913µs 3.915µs 3.917µs 3.918µs 0.18% -1.193 7.764 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255208162.829op/s 255673430.775op/s ± 167526.905op/s 255666252.056op/s ± 106425.750op/s 255786161.575op/s 255898220.069op/s 255985911.732op/s 256766582.708op/s 0.43% 1.209 7.878 0.07% 11845.941op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 71.556µs 72.036µs ± 0.163µs 72.030µs ± 0.086µs 72.114µs 72.301µs 72.479µs 72.657µs 0.87% 0.457 1.602 0.23% 0.012µs 1 200
credit_card/is_card_number/378282246310005 throughput 13763212.932op/s 13881941.192op/s ± 31351.003op/s 13883170.128op/s ± 16481.380op/s 13900108.421op/s 13927781.206op/s 13957426.043op/s 13974991.200op/s 0.66% -0.434 1.569 0.23% 2216.851op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.124µs 52.201µs ± 0.038µs 52.199µs ± 0.022µs 52.221µs 52.280µs 52.307µs 52.312µs 0.21% 0.527 0.483 0.07% 0.003µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19116251.701op/s 19156711.177op/s ± 14087.019op/s 19157328.010op/s ± 8009.076op/s 19165008.051op/s 19178340.079op/s 19183689.318op/s 19185137.274op/s 0.15% -0.522 0.476 0.07% 996.103op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.775µs 5.907µs ± 0.048µs 5.904µs ± 0.030µs 5.936µs 5.982µs 6.007µs 6.010µs 1.79% -0.266 0.082 0.81% 0.003µs 1 200
credit_card/is_card_number/x371413321323331 throughput 166402990.255op/s 169294772.907op/s ± 1372449.550op/s 169384150.406op/s ± 850864.139op/s 170081395.165op/s 171609035.464op/s 172777939.931op/s 173155119.749op/s 2.23% 0.315 0.126 0.81% 97046.838op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.889µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.916µs 3.917µs 3.918µs 0.16% -2.375 16.558 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255208595.849op/s 255633190.264op/s ± 195239.700op/s 255617346.131op/s ± 109628.464op/s 255732036.832op/s 255940226.781op/s 256009896.908op/s 257152060.540op/s 0.60% 2.404 16.842 0.08% 13805.532op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.112µs 64.270µs ± 0.082µs 64.258µs ± 0.034µs 64.290µs 64.431µs 64.578µs 64.624µs 0.57% 1.735 4.436 0.13% 0.006µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15474193.261op/s 15559441.145op/s ± 19715.094op/s 15562241.335op/s ± 8179.123op/s 15572413.858op/s 15583776.588op/s 15590349.372op/s 15597767.959op/s 0.23% -1.722 4.383 0.13% 1394.068op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.351µs 57.512µs ± 0.121µs 57.480µs ± 0.059µs 57.562µs 57.791µs 57.886µs 57.975µs 0.86% 1.506 2.269 0.21% 0.009µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17248862.021op/s 17387723.371op/s ± 36406.604op/s 17397224.276op/s ± 17917.319op/s 17413414.860op/s 17427908.271op/s 17431043.399op/s 17436339.074op/s 0.22% -1.494 2.221 0.21% 2574.336op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.893µs 3.911µs ± 0.003µs 3.911µs ± 0.001µs 3.912µs 3.917µs 3.919µs 3.920µs 0.24% -0.289 6.656 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255079162.826op/s 255688018.589op/s ± 192692.754op/s 255692815.032op/s ± 91873.175op/s 255807643.870op/s 255923909.108op/s 255993801.270op/s 256851078.107op/s 0.45% 0.309 6.748 0.08% 13625.435op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.574µs 54.754µs ± 0.156µs 54.715µs ± 0.071µs 54.805µs 55.050µs 55.205µs 55.546µs 1.52% 1.839 4.513 0.28% 0.011µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 18002958.388op/s 18263776.827op/s ± 51613.598op/s 18276563.962op/s ± 23719.697op/s 18299549.831op/s 18317510.074op/s 18322490.766op/s 18323587.955op/s 0.26% -1.813 4.361 0.28% 3649.633op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.149µs 52.205µs ± 0.030µs 52.205µs ± 0.019µs 52.222µs 52.252µs 52.289µs 52.343µs 0.26% 0.719 1.783 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19104682.916op/s 19155269.541op/s ± 11006.114op/s 19155147.266op/s ± 6939.026op/s 19162969.478op/s 19171983.119op/s 19175331.224op/s 19175920.796op/s 0.11% -0.713 1.762 0.06% 778.250op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.728µs 5.911µs ± 0.050µs 5.911µs ± 0.028µs 5.937µs 5.999µs 6.013µs 6.032µs 2.05% -0.110 0.148 0.85% 0.004µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 165778397.712op/s 169176780.102op/s ± 1438559.546op/s 169180572.249op/s ± 794651.769op/s 170014119.271op/s 171547103.092op/s 172220992.286op/s 174579383.445op/s 3.19% 0.166 0.231 0.85% 101721.521op/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.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255616139.114op/s; 255664047.330op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [82.057µs; 82.207µs] or [-0.091%; +0.091%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12164837.207op/s; 12187182.169op/s] or [-0.092%; +0.092%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [74.906µs; 74.962µs] or [-0.038%; +0.038%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13340182.969op/s; 13350166.481op/s] or [-0.037%; +0.037%] None None None
credit_card/is_card_number/37828224631 execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255650213.157op/s; 255696648.392op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [72.014µs; 72.059µs] or [-0.031%; +0.031%] None None None
credit_card/is_card_number/378282246310005 throughput [13877596.244op/s; 13886286.139op/s] or [-0.031%; +0.031%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.196µs; 52.206µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19154758.852op/s; 19158663.502op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.901µs; 5.914µs] or [-0.112%; +0.112%] None None None
credit_card/is_card_number/x371413321323331 throughput [169104564.599op/s; 169484981.215op/s] or [-0.112%; +0.112%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.911µs; 3.912µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255606131.919op/s; 255660248.608op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.258µs; 64.281µs] or [-0.018%; +0.018%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15556708.822op/s; 15562173.467op/s] or [-0.018%; +0.018%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [57.495µs; 57.529µs] or [-0.029%; +0.029%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17382677.765op/s; 17392768.976op/s] or [-0.029%; +0.029%] 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 [255661313.227op/s; 255714723.952op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.732µs; 54.775µs] or [-0.039%; +0.039%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18256623.679op/s; 18270929.975op/s] or [-0.039%; +0.039%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.201µs; 52.209µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19153744.200op/s; 19156794.883op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.904µs; 5.918µs] or [-0.118%; +0.118%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [168977409.585op/s; 169376150.620op/s] or [-0.118%; +0.118%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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 160.893µs 161.650µs ± 0.603µs 161.554µs ± 0.115µs 161.685µs 162.089µs 163.355µs 168.018µs 4.00% 7.638 70.648 0.37% 0.043µ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 [161.566µs; 161.734µs] or [-0.052%; +0.052%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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 14.783ms 14.833ms ± 0.033ms 14.830ms ± 0.015ms 14.845ms 14.879ms 14.959ms 15.043ms 1.44% 2.368 10.478 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 [14.829ms; 14.838ms] or [-0.030%; +0.030%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2162cd7 1768231747 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.469ns 190.066ns ± 2.227ns 189.667ns ± 1.368ns 191.114ns 194.874ns 196.653ns 196.936ns 3.83% 1.009 0.762 1.17% 0.157ns 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.758ns; 190.375ns] or [-0.162%; +0.162%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Jan 7, 2026

Codecov Report

❌ Patch coverage is 77.38095% with 19 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.34%. Comparing base (77838bb) to head (2162cd7).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1432      +/-   ##
==========================================
+ Coverage   71.30%   71.34%   +0.04%     
==========================================
  Files         413      413              
  Lines       66148    66222      +74     
==========================================
+ Hits        47164    47246      +82     
+ Misses      18984    18976       -8     
Components Coverage Δ
libdd-crashtracker 58.67% <ø> (+0.01%) ⬆️
libdd-crashtracker-ffi 14.37% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.17% <ø> (ø)
libdd-data-pipeline-ffi 77.01% <ø> (ø)
libdd-common 81.11% <ø> (ø)
libdd-common-ffi 74.19% <ø> (ø)
libdd-telemetry 59.95% <ø> (ø)
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.79% <ø> (+0.18%) ⬆️
libdd-profiling 81.04% <ø> (ø)
libdd-profiling-ffi 62.43% <ø> (ø)
datadog-sidecar 35.99% <ø> (ø)
datdog-sidecar-ffi 11.46% <ø> (ø)
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.74% <ø> (ø)
datadog-tracer-flare 61.06% <ø> (ø)
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.

@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..

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for your feedback! I changed the return type from LoggedResult::Err to StableConfig::default and added logs to it. I updated the tests as well

},
);
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"),

@datadog-official
Copy link

datadog-official bot commented Jan 12, 2026

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

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

@vpellan vpellan force-pushed the vpellan/stable-config-size-limit branch from 033ccd9 to 2162cd7 Compare January 12, 2026 15:29
@vpellan vpellan changed the title feat(stable_config): add >100mb check for stable config files feat(stable_config): [APMAPI-1690] add >100mb check for stable config files Jan 13, 2026
@vpellan vpellan changed the title feat(stable_config): [APMAPI-1690] add >100mb check for stable config files [APMAPI-1690] feat(stable_config): add >100mb check for stable config files Jan 13, 2026
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