fix(crypto): use ring for non-fips builds#1816
fix(crypto): use ring for non-fips builds#1816gh-worker-dd-mergequeue-cf854d[bot] merged 7 commits intomainfrom
ring for non-fips builds#1816Conversation
14e7e68 to
ea6007e
Compare
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. |
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage (details) 🔗 Commit SHA: 449f27c | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
BenchmarksComparisonBenchmark execution time: 2026-03-30 19:48:24 Comparing candidate commit eab0da1 in PR branch Found 4 performance improvements and 7 performance regressions! Performance is the same for 51 metrics, 0 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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.298µs | 2.372µs ± 0.020µs | 2.373µs ± 0.004µs | 2.378µs | 2.399µs | 2.410µs | 2.414µs | 1.77% | -1.739 | 4.419 | 0.85% | 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.369µs; 2.374µs] or [-0.118%; +0.118%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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_timestamped_x1000 | execution_time | 4.157ms | 4.165ms ± 0.008ms | 4.164ms ± 0.002ms | 4.166ms | 4.170ms | 4.173ms | 4.271ms | 2.56% | 10.981 | 138.053 | 0.20% | 0.001ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_add_sample_timestamped_x1000 | execution_time | [4.164ms; 4.166ms] or [-0.027%; +0.027%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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.982µs | 5.052µs ± 0.039µs | 5.039µs ± 0.013µs | 5.056µs | 5.128µs | 5.132µs | 5.133µs | 1.86% | 0.891 | -0.434 | 0.78% | 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.046µs; 5.057µs] or [-0.108%; +0.108%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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.808ns | 193.326ns ± 2.042ns | 193.045ns ± 1.525ns | 194.501ns | 197.235ns | 199.406ns | 200.480ns | 3.85% | 0.996 | 0.710 | 1.05% | 0.144ns | 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 | [193.043ns; 193.609ns] or [-0.146%; +0.146%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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.158ms | 14.240ms ± 0.031ms | 14.240ms ± 0.016ms | 14.254ms | 14.292ms | 14.342ms | 14.417ms | 1.24% | 1.651 | 7.115 | 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.236ms; 14.244ms] or [-0.030%; +0.030%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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.175ms | 4.181ms ± 0.003ms | 4.180ms ± 0.002ms | 4.182ms | 4.186ms | 4.188ms | 4.207ms | 0.63% | 2.509 | 15.281 | 0.08% | 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 | [4.180ms; 4.181ms] or [-0.011%; +0.011%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| profile_serialize_compressed_pprof_timestamped_x1000 | execution_time | 926.736µs | 930.315µs ± 2.783µs | 929.727µs ± 0.851µs | 930.752µs | 934.026µs | 938.030µs | 953.125µs | 2.52% | 4.425 | 29.291 | 0.30% | 0.197µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_serialize_compressed_pprof_timestamped_x1000 | execution_time | [929.929µs; 930.701µs] or [-0.041%; +0.041%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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 | 534.723µs | 535.720µs ± 0.682µs | 535.579µs ± 0.360µs | 536.059µs | 536.756µs | 537.559µs | 540.855µs | 0.99% | 2.691 | 15.577 | 0.13% | 0.048µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1848924.589op/s | 1866648.196op/s ± 2368.465op/s | 1867137.464op/s ± 1255.419op/s | 1868138.437op/s | 1869420.752op/s | 1869824.666op/s | 1870127.767op/s | 0.16% | -2.652 | 15.198 | 0.13% | 167.476op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 380.092µs | 381.129µs ± 0.481µs | 381.077µs ± 0.271µs | 381.372µs | 381.971µs | 382.563µs | 383.768µs | 0.71% | 1.212 | 4.176 | 0.13% | 0.034µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2605743.035op/s | 2623788.233op/s ± 3304.008op/s | 2624139.482op/s ± 1865.963op/s | 2625860.790op/s | 2628189.741op/s | 2629800.098op/s | 2630944.089op/s | 0.26% | -1.194 | 4.081 | 0.13% | 233.629op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 194.548µs | 195.130µs ± 0.271µs | 195.110µs ± 0.172µs | 195.285µs | 195.615µs | 195.884µs | 196.432µs | 0.68% | 0.953 | 2.105 | 0.14% | 0.019µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5090814.095op/s | 5124796.033op/s ± 7108.055op/s | 5125311.160op/s ± 4524.820op/s | 5129777.637op/s | 5134903.025op/s | 5136372.307op/s | 5140123.834op/s | 0.29% | -0.939 | 2.049 | 0.14% | 502.615op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 37.822µs | 38.321µs ± 0.152µs | 38.336µs ± 0.080µs | 38.417µs | 38.538µs | 38.584µs | 38.741µs | 1.06% | -0.600 | 0.794 | 0.39% | 0.011µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 25812506.251op/s | 26095618.356op/s ± 103514.461op/s | 26085131.779op/s ± 54137.844op/s | 26137889.894op/s | 26300143.716op/s | 26390898.374op/s | 26439892.132op/s | 1.36% | 0.629 | 0.831 | 0.40% | 7319.578op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 45.781µs | 45.976µs ± 0.090µs | 45.965µs ± 0.042µs | 46.008µs | 46.151µs | 46.257µs | 46.503µs | 1.17% | 1.823 | 6.697 | 0.20% | 0.006µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 21504179.098op/s | 21750733.410op/s ± 42476.341op/s | 21755620.565op/s ± 20084.113op/s | 21774727.391op/s | 21801064.945op/s | 21828911.326op/s | 21843249.926op/s | 0.40% | -1.792 | 6.513 | 0.19% | 3003.531op/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 | [535.626µs; 535.815µs] or [-0.018%; +0.018%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [1866319.950op/s; 1866976.443op/s] or [-0.018%; +0.018%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [381.062µs; 381.196µs] or [-0.017%; +0.017%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2623330.329op/s; 2624246.137op/s] or [-0.017%; +0.017%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [195.093µs; 195.168µs] or [-0.019%; +0.019%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5123810.925op/s; 5125781.142op/s] or [-0.019%; +0.019%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [38.300µs; 38.342µs] or [-0.055%; +0.055%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [26081272.247op/s; 26109964.465op/s] or [-0.055%; +0.055%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [45.963µs; 45.988µs] or [-0.027%; +0.027%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [21744846.597op/s; 21756620.222op/s] or [-0.027%; +0.027%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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 | 14.871ms | 14.908ms ± 0.020ms | 14.906ms ± 0.014ms | 14.921ms | 14.946ms | 14.950ms | 14.991ms | 0.57% | 0.717 | 0.462 | 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 | [14.906ms; 14.911ms] or [-0.019%; +0.019%] | None | None | None |
Group 10
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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 | 49.952ms | 50.258ms ± 0.850ms | 50.138ms ± 0.101ms | 50.251ms | 50.390ms | 54.127ms | 58.015ms | 15.71% | 8.111 | 68.621 | 1.69% | 0.060ms | 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 | [50.140ms; 50.375ms] or [-0.234%; +0.234%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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 | 145.056µs | 146.914µs ± 1.636µs | 146.641µs ± 0.524µs | 147.187µs | 148.562µs | 152.937µs | 162.689µs | 10.94% | 5.587 | 45.183 | 1.11% | 0.116µ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.687µs; 147.141µs] or [-0.154%; +0.154%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | 162.575µs | 163.867µs ± 0.821µs | 163.723µs ± 0.211µs | 164.002µs | 164.633µs | 165.765µs | 173.276µs | 5.83% | 8.103 | 86.378 | 0.50% | 0.058µ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 | [163.753µs; 163.981µs] or [-0.069%; +0.069%] | None | None | None |
Group 13
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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.360µs | 34.918µs ± 0.977µs | 34.467µs ± 0.060µs | 34.579µs | 36.962µs | 37.123µs | 38.169µs | 10.74% | 1.718 | 1.143 | 2.79% | 0.069µ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.783µs; 35.054µs] or [-0.388%; +0.388%] | None | None | None |
Group 14
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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 | 5.247µs | 5.382µs ± 0.032µs | 5.382µs ± 0.020µs | 5.402µs | 5.439µs | 5.453µs | 5.465µs | 1.55% | -0.156 | 1.110 | 0.59% | 0.002µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| write only interface | execution_time | [5.378µs; 5.387µs] or [-0.082%; +0.082%] | None | None | None |
Group 15
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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 | 14.957µs | 15.329µs ± 0.266µs | 15.272µs ± 0.101µs | 15.408µs | 15.760µs | 16.367µs | 16.932µs | 10.87% | 2.505 | 9.665 | 1.73% | 0.019µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| two way interface | execution_time | [15.292µs; 15.366µs] or [-0.240%; +0.240%] | None | None | None |
Group 16
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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 | 294.707µs | 296.041µs ± 0.605µs | 295.978µs ± 0.347µs | 296.354µs | 296.702µs | 297.394µs | 300.834µs | 1.64% | 3.749 | 25.482 | 0.20% | 0.043µ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 | [295.957µs; 296.124µs] or [-0.028%; +0.028%] | None | None | None |
Group 17
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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.901µs | 3.917µs ± 0.004µs | 3.917µs ± 0.003µs | 3.920µs | 3.924µs | 3.926µs | 3.933µs | 0.40% | 0.205 | 1.624 | 0.10% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 254276960.377op/s | 255267674.690op/s ± 251542.164op/s | 255304796.946op/s ± 177766.016op/s | 255446682.883op/s | 255582735.275op/s | 255729151.041op/s | 256346971.347op/s | 0.41% | -0.195 | 1.633 | 0.10% | 17786.717op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 73.889µs | 74.747µs ± 0.486µs | 74.695µs ± 0.322µs | 75.008µs | 75.532µs | 76.059µs | 76.629µs | 2.59% | 0.747 | 0.593 | 0.65% | 0.034µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 13049885.916op/s | 13378945.367op/s ± 86502.746op/s | 13387783.399op/s ± 57859.867op/s | 13446283.790op/s | 13508302.965op/s | 13529071.962op/s | 13533766.394op/s | 1.09% | -0.708 | 0.487 | 0.64% | 6116.668op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 67.657µs | 67.776µs ± 0.080µs | 67.765µs ± 0.044µs | 67.809µs | 67.919µs | 67.962µs | 68.361µs | 0.88% | 2.493 | 13.513 | 0.12% | 0.006µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 14628168.753op/s | 14754400.060op/s ± 17461.958op/s | 14756909.088op/s ± 9633.211op/s | 14766582.486op/s | 14774104.691op/s | 14779221.435op/s | 14780469.088op/s | 0.16% | -2.460 | 13.210 | 0.12% | 1234.747op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 3.896µs | 3.916µs ± 0.005µs | 3.916µs ± 0.002µs | 3.918µs | 3.922µs | 3.929µs | 3.969µs | 1.35% | 5.196 | 50.524 | 0.13% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 251977788.858op/s | 255339990.206op/s ± 337619.391op/s | 255372675.124op/s ± 128349.387op/s | 255502565.120op/s | 255617786.356op/s | 255698022.195op/s | 256660485.309op/s | 0.50% | -5.095 | 49.328 | 0.13% | 23873.296op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 64.427µs | 64.577µs ± 0.075µs | 64.569µs ± 0.049µs | 64.620µs | 64.727µs | 64.762µs | 64.828µs | 0.40% | 0.737 | 0.196 | 0.12% | 0.005µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 15425439.595op/s | 15485322.488op/s ± 17902.129op/s | 15487376.243op/s ± 11794.857op/s | 15498299.067op/s | 15509739.031op/s | 15513837.040op/s | 15521461.525op/s | 0.22% | -0.731 | 0.184 | 0.12% | 1265.872op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 44.778µs | 45.306µs ± 0.142µs | 45.343µs ± 0.094µs | 45.419µs | 45.503µs | 45.573µs | 45.611µs | 0.59% | -0.639 | 0.416 | 0.31% | 0.010µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 21924681.477op/s | 22072111.389op/s ± 69414.752op/s | 22054220.952op/s ± 45783.471op/s | 22111844.238op/s | 22189763.477op/s | 22250595.236op/s | 22332415.683op/s | 1.26% | 0.658 | 0.461 | 0.31% | 4908.364op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 6.031µs | 6.053µs ± 0.034µs | 6.044µs ± 0.005µs | 6.049µs | 6.117µs | 6.193µs | 6.256µs | 3.52% | 3.603 | 14.493 | 0.56% | 0.002µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 159838979.896op/s | 165200946.646op/s ± 906784.302op/s | 165458855.470op/s ± 142810.051op/s | 165600776.749op/s | 165700847.844op/s | 165759015.398op/s | 165811097.473op/s | 0.21% | -3.545 | 13.972 | 0.55% | 64119.333op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 3.903µs | 3.917µs ± 0.004µs | 3.916µs ± 0.003µs | 3.919µs | 3.924µs | 3.929µs | 3.934µs | 0.46% | 0.874 | 2.159 | 0.10% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 254194153.734op/s | 255311621.976op/s ± 261458.847op/s | 255359829.743op/s ± 163712.527op/s | 255510240.536op/s | 255636088.363op/s | 255719499.426op/s | 256192618.300op/s | 0.33% | -0.864 | 2.136 | 0.10% | 18487.932op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 65.019µs | 65.522µs ± 0.068µs | 65.514µs ± 0.039µs | 65.557µs | 65.626µs | 65.700µs | 65.716µs | 0.31% | -1.522 | 14.093 | 0.10% | 0.005µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 15216882.345op/s | 15262100.936op/s ± 15837.569op/s | 15263997.578op/s ± 9026.443op/s | 15271640.569op/s | 15280147.194op/s | 15284851.941op/s | 15380193.869op/s | 0.76% | 1.565 | 14.439 | 0.10% | 1119.885op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 52.999µs | 53.079µs ± 0.047µs | 53.070µs ± 0.034µs | 53.110µs | 53.160µs | 53.178µs | 53.264µs | 0.37% | 0.662 | 0.092 | 0.09% | 0.003µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 18774263.128op/s | 18839692.296op/s ± 16556.313op/s | 18843066.627op/s ± 12055.099op/s | 18853098.675op/s | 18860998.003op/s | 18864633.887op/s | 18868318.207op/s | 0.13% | -0.657 | 0.078 | 0.09% | 1170.708op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 3.903µs | 3.917µs ± 0.004µs | 3.917µs ± 0.002µs | 3.920µs | 3.924µs | 3.927µs | 3.929µs | 0.32% | 0.426 | 0.600 | 0.10% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 254528118.029op/s | 255287970.955op/s ± 252065.221op/s | 255329950.216op/s ± 159729.790op/s | 255466615.327op/s | 255624663.774op/s | 255736496.938op/s | 256193628.997op/s | 0.34% | -0.419 | 0.602 | 0.10% | 17823.703op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 49.794µs | 49.883µs ± 0.052µs | 49.872µs ± 0.033µs | 49.916µs | 49.980µs | 50.050µs | 50.085µs | 0.43% | 1.041 | 1.401 | 0.10% | 0.004µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 19966202.484op/s | 20047026.709op/s ± 20950.164op/s | 20051448.426op/s ± 13337.050op/s | 20061064.985op/s | 20074493.550op/s | 20078197.728op/s | 20082829.181op/s | 0.16% | -1.033 | 1.376 | 0.10% | 1481.400op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 44.909µs | 45.285µs ± 0.134µs | 45.289µs ± 0.093µs | 45.379µs | 45.508µs | 45.555µs | 45.672µs | 0.85% | -0.172 | 0.075 | 0.30% | 0.009µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 21895130.020op/s | 22082381.266op/s ± 65443.907op/s | 22080360.877op/s ± 45194.377op/s | 22125419.087op/s | 22194874.095op/s | 22262046.037op/s | 22267202.417op/s | 0.85% | 0.190 | 0.085 | 0.30% | 4627.583op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 6.032µs | 6.052µs ± 0.043µs | 6.041µs ± 0.004µs | 6.046µs | 6.117µs | 6.324µs | 6.393µs | 5.84% | 5.640 | 35.660 | 0.70% | 0.003µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 156410765.383op/s | 165255692.101op/s ± 1123142.385op/s | 165541893.114op/s ± 102529.965op/s | 165623564.439op/s | 165689890.456op/s | 165739680.862op/s | 165786024.700op/s | 0.15% | -5.519 | 34.215 | 0.68% | 79418.160op/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.917µs; 3.918µs] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number/ | throughput | [255232813.365op/s; 255302536.014op/s] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [74.680µs; 74.815µs] or [-0.090%; +0.090%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [13366956.918op/s; 13390933.815op/s] or [-0.090%; +0.090%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [67.765µs; 67.788µs] or [-0.016%; +0.016%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [14751980.000op/s; 14756820.119op/s] or [-0.016%; +0.016%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [3.916µs; 3.917µs] or [-0.018%; +0.018%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [255293199.405op/s; 255386781.006op/s] or [-0.018%; +0.018%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [64.567µs; 64.588µs] or [-0.016%; +0.016%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [15482841.425op/s; 15487803.551op/s] or [-0.016%; +0.016%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [45.287µs; 45.326µs] or [-0.043%; +0.043%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [22062491.172op/s; 22081731.606op/s] or [-0.044%; +0.044%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [6.049µs; 6.058µs] or [-0.078%; +0.078%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [165075275.063op/s; 165326618.229op/s] or [-0.076%; +0.076%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [3.916µs; 3.917µs] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [255275386.294op/s; 255347857.657op/s] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [65.512µs; 65.531µs] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [15259906.001op/s; 15264295.870op/s] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [53.073µs; 53.086µs] or [-0.012%; +0.012%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [18837397.750op/s; 18841986.841op/s] or [-0.012%; +0.012%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [3.917µs; 3.918µs] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [255253037.140op/s; 255322904.770op/s] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [49.876µs; 49.890µs] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [20044123.217op/s; 20049930.200op/s] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [45.267µs; 45.304µs] or [-0.041%; +0.041%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [22073311.370op/s; 22091451.162op/s] or [-0.041%; +0.041%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [6.046µs; 6.057µs] or [-0.098%; +0.098%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [165100035.369op/s; 165411348.834op/s] or [-0.094%; +0.094%] | None | None | None |
Group 18
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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 | 185.643µs | 186.203µs ± 0.266µs | 186.179µs ± 0.185µs | 186.367µs | 186.748µs | 186.911µs | 187.333µs | 0.62% | 0.767 | 1.214 | 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 | 5338102.038op/s | 5370504.161op/s ± 7652.963op/s | 5371172.528op/s ± 5347.154op/s | 5376442.184op/s | 5381108.030op/s | 5385105.749op/s | 5386681.591op/s | 0.29% | -0.756 | 1.179 | 0.14% | 541.146op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 17.952µs | 18.065µs ± 0.057µs | 18.057µs ± 0.037µs | 18.097µs | 18.171µs | 18.214µs | 18.259µs | 1.12% | 0.665 | 0.355 | 0.32% | 0.004µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 54767663.147op/s | 55356813.221op/s ± 175831.363op/s | 55380803.525op/s ± 112781.630op/s | 55479840.603op/s | 55611064.070op/s | 55675724.148op/s | 55704178.047op/s | 0.58% | -0.647 | 0.320 | 0.32% | 12433.155op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 9.887µs | 9.950µs ± 0.044µs | 9.949µs ± 0.024µs | 9.971µs | 10.008µs | 10.127µs | 10.145µs | 1.97% | 1.538 | 4.724 | 0.44% | 0.003µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 98572270.276op/s | 100500400.114op/s ± 436577.768op/s | 100513614.700op/s ± 239456.001op/s | 100883996.076op/s | 101050024.591op/s | 101101547.407op/s | 101140357.531op/s | 0.62% | -1.482 | 4.463 | 0.43% | 30870.710op/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.166µs; 186.239µ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 | [5369443.534op/s; 5371564.788op/s] or [-0.020%; +0.020%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [18.057µs; 18.073µs] or [-0.044%; +0.044%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [55332444.685op/s; 55381181.757op/s] or [-0.044%; +0.044%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [9.944µs; 9.956µs] or [-0.061%; +0.061%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [100439894.634op/s; 100560905.594op/s] or [-0.060%; +0.060%] | None | None | None |
Group 19
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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 | 736.295µs | 737.892µs ± 0.732µs | 737.900µs ± 0.477µs | 738.363µs | 739.190µs | 739.664µs | 740.014µs | 0.29% | 0.219 | 0.075 | 0.10% | 0.052µ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 | [737.791µs; 737.994µs] or [-0.014%; +0.014%] | None | None | None |
Group 20
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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.369ns | 251.576ns ± 10.691ns | 247.160ns ± 1.862ns | 251.874ns | 283.988ns | 286.916ns | 288.828ns | 16.86% | 2.344 | 4.631 | 4.24% | 0.756ns | 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 | [250.094ns; 253.057ns] or [-0.589%; +0.589%] | None | None | None |
Group 21
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | eab0da1 | 1774899049 | jordan.gonzalez/crypto/ring-for-non-fips |
| 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.614ms | 3.640ms ± 0.017ms | 3.635ms ± 0.008ms | 3.648ms | 3.680ms | 3.690ms | 3.691ms | 1.53% | 1.224 | 1.020 | 0.46% | 0.001ms | 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.638ms; 3.643ms] or [-0.064%; +0.064%] | 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
|
2747245 to
13b8202
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1816 +/- ##
==========================================
- Coverage 71.55% 71.49% -0.06%
==========================================
Files 426 426
Lines 67350 67362 +12
==========================================
- Hits 48192 48161 -31
- Misses 19158 19201 +43
🚀 New features to boost your workflow:
|
morrisonlevi
left a comment
There was a problem hiding this comment.
CI is failing but overall looks good to me. Ping me on Slack when you have it ready for re-review.
2121479 to
4915c49
Compare
4915c49 to
f5cb663
Compare
d4bfcbf to
eab0da1
Compare
morrisonlevi
left a comment
There was a problem hiding this comment.
Looks fine to me, but for the artifacts I'm seeing reductions around 1-2 MiB, isn't aws-lc-rs much heavier than that?
d902723 to
dc550ab
Compare
b66d170 to
ac78df9
Compare
There was a problem hiding this comment.
If I'm following correctly, now when FIPS is enabled it's going to include both ring and aws-lc.
This would only impact serverless right now, so if you're ok with it, then it's not a blocker for me.
If you did want to solve this I think you'd have to declare rustls and hyper-rustls without a crypto provider like:
rustls = { version = "0.23.37", default-features = false, optional = true }
hyper-rustls = { version = "0.27.7", default-features = false, features = [
"native-tokio",
"http1",
"tls12",
], optional = true }and then add another feature like:
tls-core = ["tokio-rustls", "rustls", "hyper-rustls", "rustls-native-certs"]
https = ["tls-core", "rustls/ring", "hyper-rustls/ring"]
fips = ["tls-core", "hyper-rustls/fips"]and then change the gates from #[cfg(feature = "https")] to #[cfg(feature = "tls-core")]
There was a problem hiding this comment.
Wait, thought this was done by the no-default-provider, let me take a look
There was a problem hiding this comment.
Ok, I looked a it, yes, I didn't realize the gating would not reduce size in FIPS, now it is, added your suggestion on another featured called tls-core and updated it where necessary, thanks for catching this!
Sorry about the miss here!
ekump
left a comment
There was a problem hiding this comment.
Left a non-blocking comment. LGTM
2963fd8 to
ac9c30e
Compare
fips builds still use `aws-lc-rs`
…o-provider doesnt auto-install one
New crate from #1624 used reqwest?/rustls which re-introduced aws-lc-rs. Switch to rustls-no-provider to match the rest of the workspace.
Version 0.8.3+ pulls in openssl-probe@0.2 which probes multiple certificate directories and parses individual cert files instead of loading a single bundle, adding unnecessary I/O overhead in latency-sensitive environments.
Without this, FIPS builds through libdd-http-client's hyper backend would use libdd-common's default connector which installs ring. Propagating fips ensures libdd-common skips ring init and uses the FIPS-compliant hyper-rustls/fips path instead.
Introduce tls-core feature for TLS plumbing (rustls, hyper-rustls, tokio-rustls, rustls-native-certs) without a crypto provider. The https and fips features now both build on tls-core and add their respective provider: - https = tls-core + ring - fips = tls-core + aws-lc-rs (via hyper-rustls/fips) This ensures FIPS builds only compile aws-lc-rs without ring, avoiding unnecessary binary bloat from shipping both crypto backends. Updated all cfg(feature = "https") gates to cfg(feature = "tls-core") so TLS code compiles under both https and fips features.
ac9c30e to
449f27c
Compare
…lities-impl (#1872) ## What does this PR do? Follows up on #1816 by gating `libdd-common`'s TLS features behind `https`/`fips` feature flags in the three internal crates that were still pulling in `libdd-common` with default features. Without this, downstream consumers that build with `--no-default-features --features fips` still get `ring` in the dependency tree via transitive default feature activation, breaking FIPS compliance checks. ### Changes: - `libdd-trace-obfuscation/Cargo.toml`: Added `default-features = false` on both `libdd-common` and `libdd-trace-utils`. Added `[features]` section with `default = ["https"]`, `https` (forwarding to `libdd-common/https` and `libdd-trace-utils/https`), and `fips` (forwarding to `libdd-common/fips` and `libdd-trace-utils/fips`). - `libdd-capabilities-impl/Cargo.toml`: Added `default-features = false` on `libdd-common`. Added `[features]` section with `default = ["https"]`, `https` (forwarding to `libdd-common/https`), and `fips` (forwarding to `libdd-common/fips`). - `libdd-trace-utils/Cargo.toml`: Added `default-features = false` on `libdd-capabilities-impl` in `[target.'cfg(not(target_arch = "wasm32"))'.dependencies]`. Updated `https` and `fips` features to also forward to `libdd-capabilities-impl/https` and `libdd-capabilities-impl/fips` respectively. ## Motivation PR #1816 moved `ring` behind `libdd-common`'s `https` feature and introduced a separate `fips` feature that uses `aws-lc-rs` without pulling in `ring`. However, three internal crates (`libdd-trace-obfuscation`, `libdd-capabilities-impl`, and `libdd-trace-utils` via `libdd-capabilities-impl`) still depended on `libdd-common` with default features enabled. Since Cargo features are additive, this caused `libdd-common/default` → `https` → `rustls/ring` to be activated regardless of what the downstream consumer configured. In `datadog-lambda-extension`, the FIPS build (`cargo clippy --no-default-features --features fips`) was failing because the build.rs FIPS compliance check detected `ring` in the dependency tree through these transitive paths: ``` ring v0.17.14 └── rustls └── libdd-common (feature "https", activated by "default") ├── libdd-trace-obfuscation (default features) ├── libdd-capabilities-impl (default features, via libdd-trace-utils) └── libdd-trace-utils (default features, via libdd-trace-obfuscation) ``` This PR applies the same pattern already used by `libdd-trace-utils` for its `libdd-common` dependency (`default-features = false` + explicit `https`/`fips` forwarding) to all internal crates in the dependency chain. ## Additional Notes - `libdd-trace-utils` already had `default-features = false` on `libdd-common` and proper `https`/`fips` feature gates. The only change to `libdd-trace-utils` is adding the same treatment for its `libdd-capabilities-impl` dependency. - Default builds are unchanged — the `default = ["https"]` feature on each crate preserves the existing behavior where `ring` is used as the crypto backend. - Downstream consumers that need FIPS must set `default-features = false` on these crates and activate the `fips` feature explicitly. For example, in `datadog-lambda-extension`: ```toml libdd-common = { ..., default-features = false } libdd-trace-utils = { ..., default-features = false, features = ["mini_agent"] } libdd-trace-obfuscation = { ..., default-features = false } [features] default = ["libdd-common/default", "libdd-trace-utils/default", "libdd-trace-obfuscation/default", ...] fips = ["libdd-common/fips", "libdd-trace-utils/fips", "libdd-trace-obfuscation/fips", ...] ``` ## How to test the change? - Verify default build compiles (ring path unchanged): ``` cargo check --workspace ``` - Verify ring is absent from a FIPS feature build of affected crates: ``` cargo tree -p libdd-trace-obfuscation --no-default-features --features fips -i ring # Expected: "error: package ID specification `ring` did not match any packages" ``` - Verify aws-lc-rs is present in FIPS builds: ``` cargo tree -p libdd-trace-obfuscation --no-default-features --features fips -i aws-lc-rs # Expected: aws-lc-rs present via hyper-rustls/fips ``` - Verify ring is still present in default builds: ``` cargo tree -p libdd-trace-obfuscation -i ring # Expected: ring present via libdd-common/https ``` Co-authored-by: jordan.gonzalez <jordan.gonzalez@datadoghq.com>
# Release proposal for libdd-capabilities-impl and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-capabilities **Next version:** `1.0.0` **Semver bump:** `major` **Tag:** `libdd-capabilities-v1.0.0` **Warning:** this is an initial release. Please verify that the version and commits included are correct. ## libdd-common **Next version:** `4.0.0` **Semver bump:** `major` **Tag:** `libdd-common-v4.0.0` ### Commits - chore(benchmarks): add allocation size tracking allocator (#1905) - refactor(libdd-capabilities)!: remove transitive dependency (#1895) - feat(runtime)!: add shared runtime (#1602) - fix(crypto): use `ring` for non-fips builds (#1816) - fix(ci): skip thread counting test (#1841) - chore(ci): mock now function for rate limiter in tests to make them deterministic (#1842) - fix(entity_id): Handle Podman cgroupns=host cgroup path (#1828) - feat(capabilities)!: trait architecture http (#1555) - feat!: implement HTTP common component (#1624) - fix(common): don't use reqwest http proxies (#1810) - test(miri): skip reqwest test that takes 10mn (#1784) ## libdd-capabilities-impl **Next version:** `1.0.0` **Semver bump:** `major` **Tag:** `libdd-capabilities-impl-v1.0.0` **Warning:** this is an initial release. Please verify that the version and commits included are correct. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: hoolioh <107922352+hoolioh@users.noreply.github.com>
# Release proposal for libdd-capabilities-impl and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-capabilities **Next version:** `1.0.0` **Semver bump:** `major` **Tag:** `libdd-capabilities-v1.0.0` **Warning:** this is an initial release. Please verify that the version and commits included are correct. ## libdd-common **Next version:** `4.0.0` **Semver bump:** `major` **Tag:** `libdd-common-v4.0.0` ### Commits - fix(libdd-common): fix condition so testing with --all-features works (#1919) - chore(benchmarks): add allocation size tracking allocator (#1905) - refactor(libdd-capabilities)!: remove transitive dependency (#1895) - feat(runtime)!: add shared runtime (#1602) - fix(crypto): use `ring` for non-fips builds (#1816) - fix(ci): skip thread counting test (#1841) - chore(ci): mock now function for rate limiter in tests to make them deterministic (#1842) - fix(entity_id): Handle Podman cgroupns=host cgroup path (#1828) - feat(capabilities)!: trait architecture http (#1555) - feat!: implement HTTP common component (#1624) - fix(common): don't use reqwest http proxies (#1810) - test(miri): skip reqwest test that takes 10mn (#1784) ## libdd-capabilities-impl **Next version:** `1.0.0` **Semver bump:** `major` **Tag:** `libdd-capabilities-impl-v1.0.0` **Warning:** this is an initial release. Please verify that the version and commits included are correct. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: hoolioh <107922352+hoolioh@users.noreply.github.com>
What does this PR do?
Switches the default (non-FIPS) crypto backend for rustls from
aws-lc-rstoringacross all platforms, and changes reqwest's TLS feature fromrustlstorustls-no-providerto prevent reqwest from forcingaws-lc-rsback into the dependency tree.Changes:
libdd-common/Cargo.toml: Removedcfg(unix)/cfg(not(unix))platform-specific rustls/hyper-rustls deps. Both now useringunconditionally. Switched reqwest feature fromrustlstorustls-no-provider. Pinnedrustls-native-certsto<0.8.3.libdd-common/src/connector/mod.rs: Simplifiedensure_crypto_provider_initialized()to always install ring's provider, removing platform#[cfg]branches.libdd-profiling/Cargo.toml: Same — removed platform split for rustls, unified onring. Switched reqwest torustls-no-provider.libdd-profiling/src/exporter/tls.rs: Simplifieddefault_crypto_provider()to always return ring's provider.libdd-http-client/Cargo.toml: Switchedhttpsfeature fromreqwest?/rustlstoreqwest?/rustls-no-provider. Addedrustlswithringas dev-dependency for tests.ensure_crypto_provider()calls inlibdd-common/tests/reqwest_builder_test.rsand alllibdd-http-clienttest files, sincerustls-no-providerdoes not auto-install a crypto provider.FIPS builds are unchanged —
hyper-rustls/fipscontinues to activateaws-lc-rsas the FIPS-certified backend.Motivation
Reduce binary size by eliminating
aws-lc-sys(a large C crypto library) from non-FIPS builds.Measured binary size reduction (macOS arm64, release profile):
libdatadog_profiling_ffi.dyliblibdatadog_profiling_ffi.aThe
.apercentage is smaller because it contains all object files before link-time dead-code elimination. The.dylibreflects actual linked output where the crypto portion is a larger share of the total.Additionally, reqwest 0.13's
rustlsfeature implicitly enables__rustls-aws-lc-rs, which forcesaws-lc-rsinto the tree regardless of what the consumer configures on rustls directly. This made it impossible to use ring-only builds without switching torustls-no-provider. As a side effect, this also drops thequinn/QUIC HTTP/3 stack (quinn,quinn-proto,quinn-udp,lru-slab,web-time) from the dependency tree, which was being pulled in by reqwest'srustlsfeature but never used.This is the first step in a cross-repo effort to standardize on
ringfor non-FIPS andaws-lc-rsfor FIPS-only across libdatadog and its downstream consumers.Additional Notes
rustls-platform-verifierinlibdd-profilingis intentionally kept — it's there for the cert-caching performance fix (PR perf(profiling): cache TLS in ProfileExporter::new #1619), not for crypto backend selection.rustls-native-certsis pinned to>=0.8.1, <0.8.3— version 0.8.3+ pulls inopenssl-probe@0.2which probes multiple certificate directories and parses individual cert files instead of loading a single bundle, adding unnecessary I/O overhead in latency-sensitive environments.cfg(unix)/cfg(not(unix))split existed becauseaws-lc-rshad build issues on Windows. Since we're now usingringeverywhere, the platform split is no longer necessary.ensure_crypto_provider_initialized()is a no-op when thefipsfeature is enabled, and the caller must install the FIPS-compliant provider (e.g.,aws-lc-rsFIPS) before any TLS connections. This is existing behavior, unchanged by this PR.How to test the change?
Verify
aws-lc-rsis absent from the default dependency tree:Verify
ringis the sole crypto backend:Verify FIPS builds still pull in
aws-lc-rs:Verify full workspace compiles:
Verify
rustls-native-certsstays below 0.8.3: