fix(obfuscation/http)!: fuzzer fixes [APMSP-2670]#1684
fix(obfuscation/http)!: fuzzer fixes [APMSP-2670]#1684gh-worker-dd-mergequeue-cf854d[bot] merged 64 commits intomainfrom
Conversation
Clippy Allow Annotation ReportComparing clippy allow annotations between branches:
Summary by Rule
Annotation Counts by File
Annotation Stats by Crate
About This ReportThis report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality. |
694c677 to
43100ec
Compare
BenchmarksComparisonBenchmark execution time: 2026-03-12 16:54:21 Comparing candidate commit 8db3fd4 in PR branch Found 6 performance improvements and 0 performance regressions! Performance is the same for 52 metrics, 2 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.784µs | 205.806µs ± 0.669µs | 205.723µs ± 0.523µs | 206.276µs | 206.922µs | 207.558µs | 208.344µs | 1.27% | 0.681 | 0.289 | 0.32% | 0.047µs | 1 | 200 |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | 4799755.498op/s | 4858998.578op/s ± 15760.890op/s | 4860894.985op/s ± 12374.650op/s | 4872557.922op/s | 4879265.129op/s | 4882408.852op/s | 4883188.844op/s | 0.46% | -0.663 | 0.236 | 0.32% | 1114.463op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 18.577µs | 18.713µs ± 0.109µs | 18.672µs ± 0.036µs | 18.762µs | 18.901µs | 19.041µs | 19.375µs | 3.77% | 2.123 | 7.024 | 0.58% | 0.008µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 51612451.723op/s | 53441229.378op/s ± 307160.078op/s | 53556467.131op/s ± 102938.854op/s | 53641246.213op/s | 53725740.070op/s | 53765473.671op/s | 53829047.157op/s | 0.51% | -2.047 | 6.423 | 0.57% | 21719.497op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 10.803µs | 10.928µs ± 0.050µs | 10.927µs ± 0.034µs | 10.960µs | 11.014µs | 11.076µs | 11.087µs | 1.47% | 0.426 | 0.342 | 0.46% | 0.004µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 90195414.217op/s | 91509569.925op/s ± 418242.452op/s | 91518984.602op/s ± 282918.822op/s | 91807688.123op/s | 92125402.228op/s | 92358996.403op/s | 92563805.432op/s | 1.14% | -0.396 | 0.295 | 0.46% | 29574.207op/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.713µs; 205.899µs] or [-0.045%; +0.045%] | None | None | None |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | [4856814.271op/s; 4861182.886op/s] or [-0.045%; +0.045%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [18.698µs; 18.728µs] or [-0.081%; +0.081%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [53398659.945op/s; 53483798.810op/s] or [-0.080%; +0.080%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [10.921µs; 10.935µs] or [-0.063%; +0.063%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [91451605.544op/s; 91567534.307op/s] or [-0.063%; +0.063%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching deserializing traces from msgpack to their internal representation | execution_time | 48.857ms | 49.397ms ± 1.288ms | 49.241ms ± 0.182ms | 49.424ms | 49.666ms | 54.308ms | 62.453ms | 26.83% | 8.486 | 76.176 | 2.60% | 0.091ms | 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 | [49.219ms; 49.576ms] or [-0.361%; +0.361%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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 | 493.421µs | 494.155µs ± 0.583µs | 494.086µs ± 0.273µs | 494.370µs | 494.770µs | 495.320µs | 500.311µs | 1.26% | 6.071 | 60.613 | 0.12% | 0.041µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1998758.105op/s | 2023658.378op/s ± 2368.942op/s | 2023937.673op/s ± 1116.824op/s | 2024978.504op/s | 2026026.631op/s | 2026547.972op/s | 2026668.480op/s | 0.13% | -5.981 | 59.331 | 0.12% | 167.510op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 369.995µs | 370.588µs ± 0.269µs | 370.581µs ± 0.166µs | 370.742µs | 371.049µs | 371.293µs | 371.750µs | 0.32% | 0.563 | 1.076 | 0.07% | 0.019µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2689976.994op/s | 2698412.921op/s ± 1955.294op/s | 2698463.167op/s ± 1207.819op/s | 2699701.704op/s | 2701570.916op/s | 2702119.372op/s | 2702741.767op/s | 0.16% | -0.557 | 1.058 | 0.07% | 138.260op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 167.343µs | 167.655µs ± 0.166µs | 167.640µs ± 0.090µs | 167.731µs | 167.903µs | 168.049µs | 168.911µs | 0.76% | 2.462 | 15.166 | 0.10% | 0.012µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5920279.173op/s | 5964646.044op/s ± 5895.078op/s | 5965167.998op/s ± 3210.349op/s | 5968210.259op/s | 5971386.684op/s | 5974982.515op/s | 5975763.692op/s | 0.18% | -2.429 | 14.853 | 0.10% | 416.845op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 37.104µs | 37.223µs ± 0.072µs | 37.217µs ± 0.027µs | 37.245µs | 37.298µs | 37.328µs | 38.046µs | 2.23% | 7.426 | 82.499 | 0.19% | 0.005µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 26284069.566op/s | 26865492.189op/s ± 51417.906op/s | 26869621.877op/s ± 19544.968op/s | 26887939.649op/s | 26913518.735op/s | 26939673.203op/s | 26951609.653op/s | 0.31% | -7.257 | 79.974 | 0.19% | 3635.795op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 45.470µs | 45.637µs ± 0.098µs | 45.628µs ± 0.039µs | 45.672µs | 45.734µs | 45.804µs | 46.712µs | 2.38% | 6.706 | 72.069 | 0.21% | 0.007µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 21407760.028op/s | 21912065.882op/s ± 46164.925op/s | 21916473.883op/s ± 18588.928op/s | 21930048.993op/s | 21964085.109op/s | 21980107.825op/s | 21992624.651op/s | 0.35% | -6.522 | 69.433 | 0.21% | 3264.353op/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 | [494.074µs; 494.236µs] or [-0.016%; +0.016%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [2023330.066op/s; 2023986.691op/s] or [-0.016%; +0.016%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [370.551µs; 370.626µs] or [-0.010%; +0.010%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2698141.936op/s; 2698683.906op/s] or [-0.010%; +0.010%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [167.632µs; 167.678µs] or [-0.014%; +0.014%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5963829.043op/s; 5965463.045op/s] or [-0.014%; +0.014%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [37.213µs; 37.233µs] or [-0.027%; +0.027%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [26858366.162op/s; 26872618.216op/s] or [-0.027%; +0.027%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [45.624µs; 45.651µs] or [-0.030%; +0.030%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [21905667.867op/s; 21918463.897op/s] or [-0.029%; +0.029%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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 | 4.150ms | 4.156ms ± 0.009ms | 4.154ms ± 0.001ms | 4.155ms | 4.161ms | 4.188ms | 4.247ms | 2.25% | 6.968 | 61.261 | 0.21% | 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 | [4.154ms; 4.157ms] or [-0.029%; +0.029%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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 | 721.889µs | 723.205µs ± 0.748µs | 723.153µs ± 0.350µs | 723.518µs | 724.120µs | 724.852µs | 730.331µs | 0.99% | 4.400 | 39.576 | 0.10% | 0.053µ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 | [723.101µs; 723.308µs] or [-0.014%; +0.014%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.164µs | 3.220µs ± 1.435µs | 3.001µs ± 0.030µs | 3.030µs | 3.660µs | 14.114µs | 14.721µs | 390.59% | 7.318 | 54.774 | 44.44% | 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.021µs; 3.419µs] or [-6.175%; +6.175%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.684ms | 10.713ms ± 0.014ms | 10.710ms ± 0.009ms | 10.721ms | 10.737ms | 10.751ms | 10.781ms | 0.66% | 0.971 | 1.989 | 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.711ms; 10.715ms] or [-0.018%; +0.018%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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/2598 | execution_time | 3.583ms | 3.624ms ± 0.025ms | 3.615ms ± 0.010ms | 3.629ms | 3.679ms | 3.704ms | 3.716ms | 2.79% | 1.486 | 1.705 | 0.69% | 0.002ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| receiver_entry_point/report/2598 | execution_time | [3.620ms; 3.627ms] or [-0.096%; +0.096%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.675µs | 25.653µs ± 9.815µs | 17.925µs ± 0.192µs | 34.472µs | 43.095µs | 47.523µs | 62.338µs | 247.76% | 0.834 | -0.351 | 38.16% | 0.694µ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.293µs; 27.013µs] or [-5.302%; +5.302%] | None | None | None |
Group 10
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.385µs | 2.405µs ± 0.012µs | 2.401µs ± 0.006µs | 2.410µs | 2.429µs | 2.436µs | 2.444µs | 1.78% | 1.099 | 0.713 | 0.48% | 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.403µs; 2.406µs] or [-0.067%; +0.067%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.958µs | 5.004µs ± 0.036µs | 4.984µs ± 0.016µs | 5.041µs | 5.063µs | 5.065µs | 5.070µs | 1.73% | 0.561 | -1.331 | 0.72% | 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 | [4.999µs; 5.009µs] or [-0.100%; +0.100%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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 | 243.334ns | 253.576ns ± 12.183ns | 248.074ns ± 2.677ns | 253.859ns | 281.623ns | 292.915ns | 294.840ns | 18.85% | 1.810 | 2.353 | 4.79% | 0.861ns | 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 | [251.887ns; 255.264ns] or [-0.666%; +0.666%] | None | None | None |
Group 13
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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 | 164.407µs | 165.111µs ± 0.273µs | 165.074µs ± 0.165µs | 165.280µs | 165.569µs | 165.775µs | 166.335µs | 0.76% | 0.811 | 1.598 | 0.16% | 0.019µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | [165.073µs; 165.149µs] or [-0.023%; +0.023%] | None | None | None |
Group 14
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.896µs | 3.913µs ± 0.003µs | 3.913µs ± 0.002µs | 3.915µs | 3.917µs | 3.918µs | 3.922µs | 0.24% | -0.962 | 8.265 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 254967271.383op/s | 255562094.910op/s ± 167659.686op/s | 255579561.926op/s ± 108213.032op/s | 255671894.608op/s | 255768818.159op/s | 255828859.046op/s | 256661702.196op/s | 0.42% | 0.980 | 8.383 | 0.07% | 11855.330op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 74.321µs | 75.784µs ± 0.762µs | 75.726µs ± 0.596µs | 76.297µs | 77.122µs | 77.604µs | 78.083µs | 3.11% | 0.418 | -0.220 | 1.00% | 0.054µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 12806931.843op/s | 13196757.579op/s ± 132183.557op/s | 13205418.830op/s ± 104824.242op/s | 13309480.141op/s | 13396813.659op/s | 13432682.572op/s | 13455231.662op/s | 1.89% | -0.370 | -0.286 | 1.00% | 9346.789op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 68.466µs | 68.647µs ± 0.086µs | 68.650µs ± 0.050µs | 68.694µs | 68.767µs | 68.860µs | 69.181µs | 0.77% | 1.173 | 6.677 | 0.12% | 0.006µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 14454794.363op/s | 14567375.564op/s ± 18123.308op/s | 14566748.483op/s ± 10647.500op/s | 14578069.481op/s | 14597200.038op/s | 14602430.444op/s | 14605845.259op/s | 0.27% | -1.146 | 6.500 | 0.12% | 1281.511op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 3.893µs | 3.913µs ± 0.003µs | 3.913µs ± 0.002µs | 3.915µs | 3.918µs | 3.920µs | 3.923µs | 0.24% | -1.370 | 12.576 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 254935739.437op/s | 255545040.381op/s ± 182263.718op/s | 255555609.992op/s ± 100928.452op/s | 255654249.833op/s | 255764930.038op/s | 255837197.411op/s | 256861085.184op/s | 0.51% | 1.397 | 12.780 | 0.07% | 12887.991op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 64.642µs | 64.859µs ± 0.141µs | 64.834µs ± 0.086µs | 64.936µs | 65.097µs | 65.289µs | 65.572µs | 1.14% | 1.304 | 3.178 | 0.22% | 0.010µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 15250503.291op/s | 15418093.755op/s ± 33539.572op/s | 15423961.413op/s ± 20464.908op/s | 15441861.403op/s | 15461725.207op/s | 15467822.336op/s | 15469903.303op/s | 0.30% | -1.282 | 3.064 | 0.22% | 2371.606op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 45.377µs | 45.694µs ± 0.142µs | 45.696µs ± 0.107µs | 45.802µs | 45.923µs | 45.951µs | 46.032µs | 0.74% | -0.058 | -0.721 | 0.31% | 0.010µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 21724031.004op/s | 21885070.952op/s ± 68205.174op/s | 21883730.547op/s ± 51081.257op/s | 21934740.808op/s | 21997216.068op/s | 22026788.309op/s | 22037769.114op/s | 0.70% | 0.070 | -0.719 | 0.31% | 4822.834op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 6.431µs | 6.439µs ± 0.004µs | 6.439µs ± 0.003µs | 6.442µs | 6.446µs | 6.448µs | 6.452µs | 0.19% | 0.122 | -0.517 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 154993343.963op/s | 155298111.869op/s ± 103299.788op/s | 155292646.194op/s ± 75243.946op/s | 155378973.344op/s | 155465655.497op/s | 155487072.300op/s | 155500780.056op/s | 0.13% | -0.119 | -0.519 | 0.07% | 7304.398op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 3.891µs | 3.912µs ± 0.003µs | 3.912µs ± 0.002µs | 3.914µs | 3.917µs | 3.920µs | 3.921µs | 0.23% | -1.199 | 9.840 | 0.08% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 255043113.362op/s | 255614624.737op/s ± 199174.259op/s | 255621254.908op/s ± 117646.579op/s | 255737740.347op/s | 255878193.332op/s | 255927508.642op/s | 256980576.752op/s | 0.53% | 1.223 | 10.016 | 0.08% | 14083.747op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 61.193µs | 62.896µs ± 0.638µs | 62.904µs ± 0.410µs | 63.291µs | 63.885µs | 64.477µs | 64.697µs | 2.85% | -0.000 | 0.237 | 1.01% | 0.045µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 15456692.777op/s | 15900796.119op/s ± 161409.792op/s | 15897287.926op/s ± 103605.730op/s | 16005853.282op/s | 16179489.689op/s | 16312593.412op/s | 16341698.124op/s | 2.80% | 0.068 | 0.237 | 1.01% | 11413.396op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 54.009µs | 54.283µs ± 0.101µs | 54.292µs ± 0.065µs | 54.345µs | 54.438µs | 54.527µs | 54.579µs | 0.53% | 0.097 | -0.030 | 0.19% | 0.007µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 18322065.263op/s | 18421936.971op/s ± 34349.708op/s | 18418966.677op/s ± 21933.181op/s | 18447632.745op/s | 18476779.925op/s | 18491315.020op/s | 18515310.310op/s | 0.52% | -0.086 | -0.037 | 0.19% | 2428.891op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 3.895µs | 3.914µs ± 0.003µs | 3.914µs ± 0.002µs | 3.916µs | 3.918µs | 3.920µs | 3.921µs | 0.18% | -1.332 | 9.445 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 255031305.691op/s | 255496446.572op/s ± 181652.694op/s | 255491607.689op/s ± 118940.436op/s | 255615400.831op/s | 255722102.217op/s | 255793183.026op/s | 256738816.368op/s | 0.49% | 1.353 | 9.602 | 0.07% | 12844.785op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 50.225µs | 50.446µs ± 0.108µs | 50.441µs ± 0.063µs | 50.503µs | 50.624µs | 50.811µs | 50.991µs | 1.09% | 1.226 | 4.086 | 0.21% | 0.008µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 19611465.179op/s | 19823313.863op/s ± 42174.592op/s | 19825013.221op/s ± 24660.761op/s | 19851051.980op/s | 19883572.548op/s | 19906440.380op/s | 19910413.196op/s | 0.43% | -1.197 | 3.955 | 0.21% | 2982.194op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 45.369µs | 45.700µs ± 0.140µs | 45.717µs ± 0.099µs | 45.800µs | 45.920µs | 45.947µs | 45.970µs | 0.55% | -0.289 | -0.604 | 0.31% | 0.010µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 21753535.620op/s | 21881831.478op/s ± 67086.405op/s | 21873864.014op/s ± 47236.143op/s | 21922383.307op/s | 21999720.332op/s | 22032485.167op/s | 22041699.473op/s | 0.77% | 0.301 | -0.595 | 0.31% | 4743.725op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 6.429µs | 6.437µs ± 0.004µs | 6.437µs ± 0.002µs | 6.439µs | 6.444µs | 6.448µs | 6.452µs | 0.24% | 0.807 | 0.985 | 0.06% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 154984842.103op/s | 155348967.041op/s ± 95292.542op/s | 155362425.600op/s ± 57110.636op/s | 155416178.827op/s | 155482432.899op/s | 155515196.793op/s | 155556474.257op/s | 0.12% | -0.802 | 0.974 | 0.06% | 6738.200op/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.913µs; 3.913µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number/ | throughput | [255538858.890op/s; 255585330.930op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [75.678µs; 75.889µs] or [-0.139%; +0.139%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [13178438.209op/s; 13215076.948op/s] or [-0.139%; +0.139%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [68.635µs; 68.659µs] or [-0.017%; +0.017%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [14564863.848op/s; 14569887.281op/s] or [-0.017%; +0.017%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [3.913µs; 3.914µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [255519780.382op/s; 255570300.379op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [64.840µs; 64.879µs] or [-0.030%; +0.030%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [15413445.493op/s; 15422742.017op/s] or [-0.030%; +0.030%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [45.674µs; 45.713µs] or [-0.043%; +0.043%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [21875618.371op/s; 21894523.534op/s] or [-0.043%; +0.043%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [6.439µs; 6.440µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [155283795.512op/s; 155312428.227op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [3.912µs; 3.913µs] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [255587021.101op/s; 255642228.374op/s] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [62.808µs; 62.985µs] or [-0.141%; +0.141%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [15878426.274op/s; 15923165.964op/s] or [-0.141%; +0.141%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [54.269µs; 54.297µs] or [-0.026%; +0.026%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [18417176.432op/s; 18426697.510op/s] or [-0.026%; +0.026%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [3.914µs; 3.914µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [255471271.256op/s; 255521621.888op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [50.431µs; 50.461µs] or [-0.030%; +0.030%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [19817468.870op/s; 19829158.855op/s] or [-0.029%; +0.029%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [45.681µs; 45.720µs] or [-0.042%; +0.042%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [21872533.948op/s; 21891129.009op/s] or [-0.042%; +0.042%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [6.437µs; 6.438µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [155335760.411op/s; 155362173.670op/s] or [-0.009%; +0.009%] | None | None | None |
Group 15
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| redis/obfuscate_redis_string | execution_time | 33.494µs | 33.940µs ± 0.735µs | 33.619µs ± 0.052µs | 33.702µs | 35.370µs | 35.401µs | 38.378µs | 14.16% | 2.278 | 6.180 | 2.16% | 0.052µ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 | [33.839µs; 34.042µs] or [-0.300%; +0.300%] | None | None | None |
Group 16
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.929µs | 146.960µs ± 1.841µs | 146.625µs ± 0.523µs | 147.229µs | 148.376µs | 153.278µs | 165.054µs | 12.57% | 6.175 | 51.194 | 1.25% | 0.130µ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.704µs; 147.215µs] or [-0.174%; +0.174%] | None | None | None |
Group 17
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.880ms | 13.956ms ± 0.039ms | 13.951ms ± 0.020ms | 13.970ms | 14.015ms | 14.101ms | 14.162ms | 1.51% | 1.687 | 5.350 | 0.28% | 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 | [13.951ms; 13.962ms] or [-0.038%; +0.038%] | None | None | None |
Group 18
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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.360µs | 85.563µs ± 0.215µs | 85.539µs ± 0.045µs | 85.588µs | 85.679µs | 85.893µs | 88.374µs | 3.31% | 11.236 | 143.592 | 0.25% | 0.015µ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.533µs; 85.593µs] or [-0.035%; +0.035%] | None | None | None |
Group 19
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 8db3fd4 | 1773333420 | oscarld/obfuscation-http-parity |
| 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 | 190.366ns | 192.552ns ± 1.998ns | 192.371ns ± 1.257ns | 193.239ns | 196.334ns | 199.855ns | 200.239ns | 4.09% | 1.492 | 2.639 | 1.04% | 0.141ns | 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 | [192.275ns; 192.829ns] or [-0.144%; +0.144%] | None | None | None |
Baseline
Omitted due to size.
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1684 +/- ##
==========================================
+ Coverage 71.28% 71.34% +0.06%
==========================================
Files 431 431
Lines 64585 64709 +124
==========================================
+ Hits 46038 46169 +131
+ Misses 18547 18540 -7
🚀 New features to boost your workflow:
|
|
For the kind of tests this fixes, it's not worth it given how much complexity it adds to a very simple function |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Go's url.Parse rejects bare '%' and other invalid percent-encoding sequences, returning an error which causes obfuscateURLString to return "?". The url crate silently re-encodes them as '%25', so add an explicit pre-check matching Go's behavior. Fixes fuzzing testcase: http_fuzzing_594901251
Go's url.Parse stores "." and ".." path segments literally, while the url crate's join() resolves them via RFC 3986 normalization (making them empty after stripping the base). Return the original input when go_like_reference returns empty for a non-empty input that already passed all error checks (control chars, invalid percent-encoding). Fixes fuzzing testcase: http_fuzzing_3638045804
Go's url.Parse succeeds for relative URLs (like "0") and applies path-digit removal to them. The Rust code was returning early from the go_like_reference path without applying digit removal. Add remove_relative_path_digits() helper and call it for relative URL results when remove_path_digits=true. Fixes fuzzing testcase: http_fuzzing_1928485962
…URLs Go's url.shouldEscape for encodePath does not allow !, ', (, ), * even though RFC 3986 considers them valid sub-delimiters in path segments. The url crate follows RFC 3986 and keeps them unencoded. Post-process go_like_reference output to encode these characters to match Go's behavior. Fixes fuzzing testcase: http_fuzzing_4273565798
Go's validEncoded() has an explicit allowlist for !, ', (, ), * so these are only re-encoded when the path has non-ASCII chars (which forces Go to call escape() instead of using RawPath). For pure-ASCII inputs, Go's EscapedPath() returns the RawPath unchanged, keeping ! as-is. Only apply encode_go_path_chars() when the original input contains non-ASCII. Fixes fuzzing testcase: http_fuzzing_1457007156
Go's url.Parse percent-encodes non-ASCII chars in fragments (e.g., '#ჸ' → '#%E1%83%B8'). Our early-return fragment handler was returning the raw fragment without encoding. Delegate non-empty fragments to go_like_reference which uses the url crate's join() to correctly encode them. Fixes fuzzing testcase: http_fuzzing_1092426409
1ca887f to
4d1aa68
Compare
|
@codex review |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
|
Codex Review: Something went wrong. Try again later by commenting “@codex review”. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage (details) 🔗 Commit SHA: 63a350c | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
…-unprocessed * 'main' of github.com:DataDog/libdatadog: chore(build): ekump/APMSP-2718 update aws-lc dependencies (#1751) chore(crashtracking): add integration test for errno preservation (#1768) chore(crashtracking): preserve errno for crashtracker (#1767) chore(examples): add compilation flags to prevent logic errors (#1766) feat(agents)!: retrieve container tags hash from /info endpoint (#1700) fix(ci): handle new crate addition in semver-check (#1769) fix(obfuscation/redis): fuzzer fixes [APMSP-2670] (#1694) fix(obfuscation/http)!: fuzzer fixes [APMSP-2670] (#1684) ci: add Datadog code coverage upload (#1718)
What does this PR do?
Ran a fuzzer to find output difference between this obfuscator and the agent's obfuscator, fixed issues one by one, even the nonsensical edge cases.
Motivation
Reach 100% parity between obfuscation libs.
Additional Notes
How to test the change?
Here is the list of input that are fixed in this PR (one per line). These are obviously not correct urls but we need to get the exact same outputs as the agent even in these cases.