Conversation
📚 Documentation Check Results✅ No documentation warnings found! 📦
|
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. |
🔒 Cargo Deny Results✅ No issues found! 📦
|
BenchmarksComparisonBenchmark execution time: 2026-03-30 12:29:42 Comparing candidate commit 0f58a30 in PR branch Found 3 performance improvements and 4 performance regressions! Performance is the same for 55 metrics, 0 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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 | 288.716µs | 289.436µs ± 0.514µs | 289.358µs ± 0.163µs | 289.513µs | 289.923µs | 292.046µs | 293.714µs | 1.51% | 4.683 | 29.719 | 0.18% | 0.036µ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 | [289.365µs; 289.507µs] or [-0.025%; +0.025%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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 | 912.491µs | 916.544µs ± 3.018µs | 915.934µs ± 1.272µs | 917.397µs | 920.824µs | 930.573µs | 936.748µs | 2.27% | 3.271 | 16.907 | 0.33% | 0.213µ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 | [916.126µs; 916.962µs] or [-0.046%; +0.046%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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 | 15.161µs | 15.511µs ± 0.202µs | 15.479µs ± 0.103µs | 15.589µs | 15.869µs | 16.300µs | 16.609µs | 7.30% | 1.678 | 5.524 | 1.30% | 0.014µ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.483µs; 15.539µs] or [-0.181%; +0.181%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.151µs | 146.966µs ± 1.691µs | 146.689µs ± 0.622µs | 147.377µs | 148.654µs | 153.408µs | 163.048µs | 11.15% | 5.302 | 42.580 | 1.15% | 0.120µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | [146.731µs; 147.200µs] or [-0.159%; +0.159%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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 | 206.066µs | 206.762µs ± 0.325µs | 206.707µs ± 0.200µs | 206.962µs | 207.311µs | 207.689µs | 208.261µs | 0.75% | 0.977 | 1.865 | 0.16% | 0.023µs | 1 | 200 |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | 4801659.661op/s | 4836491.853op/s ± 7591.671op/s | 4837763.953op/s ± 4691.345op/s | 4841861.848op/s | 4846315.160op/s | 4850817.941op/s | 4852808.419op/s | 0.31% | -0.964 | 1.812 | 0.16% | 536.812op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 18.546µs | 18.662µs ± 0.062µs | 18.665µs ± 0.045µs | 18.701µs | 18.759µs | 18.816µs | 18.887µs | 1.19% | 0.462 | 0.383 | 0.33% | 0.004µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 52945378.317op/s | 53585990.875op/s ± 177736.130op/s | 53576990.590op/s ± 129236.781op/s | 53735377.233op/s | 53858312.518op/s | 53873275.529op/s | 53920032.023op/s | 0.64% | -0.440 | 0.328 | 0.33% | 12567.842op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 10.541µs | 10.701µs ± 0.078µs | 10.698µs ± 0.046µs | 10.742µs | 10.847µs | 10.904µs | 10.938µs | 2.25% | 0.512 | 0.110 | 0.73% | 0.006µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 91424264.419op/s | 93458050.723op/s ± 680444.174op/s | 93477184.632op/s ± 407113.454op/s | 93911423.130op/s | 94490545.150op/s | 94653566.319op/s | 94870407.747op/s | 1.49% | -0.472 | 0.053 | 0.73% | 48114.669op/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 | [206.717µs; 206.807µs] or [-0.022%; +0.022%] | None | None | None |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | [4835439.720op/s; 4837543.985op/s] or [-0.022%; +0.022%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [18.653µs; 18.670µs] or [-0.046%; +0.046%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [53561358.357op/s; 53610623.393op/s] or [-0.046%; +0.046%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [10.690µs; 10.711µs] or [-0.101%; +0.101%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [93363747.705op/s; 93552353.742op/s] or [-0.101%; +0.101%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.868ms | 14.899ms ± 0.017ms | 14.898ms ± 0.011ms | 14.908ms | 14.926ms | 14.949ms | 14.981ms | 0.55% | 1.051 | 3.006 | 0.11% | 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.896ms; 14.901ms] or [-0.016%; +0.016%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.917µs ± 0.004µs | 3.917µs ± 0.002µs | 3.919µs | 3.925µs | 3.928µs | 3.929µs | 0.31% | -0.057 | 4.237 | 0.10% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 254541989.861op/s | 255286493.150op/s ± 256663.037op/s | 255325291.820op/s ± 151133.453op/s | 255465501.356op/s | 255583456.533op/s | 255660798.830op/s | 256703205.162op/s | 0.54% | 0.076 | 4.317 | 0.10% | 18148.817op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 76.048µs | 77.607µs ± 0.612µs | 77.637µs ± 0.438µs | 78.042µs | 78.569µs | 78.965µs | 79.309µs | 2.15% | 0.008 | -0.300 | 0.79% | 0.043µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 12608930.407op/s | 12886248.414op/s ± 101679.680op/s | 12880434.622op/s ± 72886.812op/s | 12960153.906op/s | 13059462.714op/s | 13111866.128op/s | 13149666.136op/s | 2.09% | 0.032 | -0.303 | 0.79% | 7189.839op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 67.506µs | 67.659µs ± 0.098µs | 67.643µs ± 0.057µs | 67.705µs | 67.823µs | 67.888µs | 68.356µs | 1.05% | 2.176 | 11.635 | 0.14% | 0.007µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 14629322.619op/s | 14780134.711op/s ± 21277.180op/s | 14783565.111op/s ± 12459.712op/s | 14794838.822op/s | 14804998.464op/s | 14810432.914op/s | 14813515.852op/s | 0.20% | -2.138 | 11.285 | 0.14% | 1504.524op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 3.901µs | 3.917µs ± 0.004µs | 3.917µs ± 0.002µs | 3.919µs | 3.925µs | 3.931µs | 3.934µs | 0.43% | 0.739 | 2.528 | 0.11% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 254226161.544op/s | 255276131.212op/s ± 275573.245op/s | 255315005.680op/s ± 159401.247op/s | 255460742.178op/s | 255594713.375op/s | 255777624.114op/s | 256367839.869op/s | 0.41% | -0.726 | 2.522 | 0.11% | 19485.971op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 64.493µs | 64.733µs ± 0.095µs | 64.734µs ± 0.057µs | 64.793µs | 64.876µs | 64.996µs | 65.008µs | 0.42% | 0.005 | 0.308 | 0.15% | 0.007µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 15382738.919op/s | 15448216.358op/s ± 22786.045op/s | 15447865.000op/s ± 13685.988op/s | 15460597.508op/s | 15486478.994op/s | 15501533.629op/s | 15505676.628op/s | 0.37% | 0.005 | 0.303 | 0.15% | 1611.217op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 44.718µs | 44.949µs ± 0.081µs | 44.943µs ± 0.058µs | 45.003µs | 45.092µs | 45.148µs | 45.179µs | 0.53% | 0.166 | 0.001 | 0.18% | 0.006µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 22133940.114op/s | 22247592.361op/s ± 40238.735op/s | 22250377.209op/s ± 28771.888op/s | 22275196.016op/s | 22306925.313op/s | 22336140.196op/s | 22362413.496op/s | 0.50% | -0.156 | -0.001 | 0.18% | 2845.308op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 6.799µs | 6.809µs ± 0.006µs | 6.808µs ± 0.004µs | 6.813µs | 6.821µs | 6.828µs | 6.829µs | 0.31% | 0.880 | 0.584 | 0.09% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 146434762.609op/s | 146857161.201op/s ± 132782.515op/s | 146884550.422op/s ± 89592.788op/s | 146962102.027op/s | 147021245.270op/s | 147059691.838op/s | 147081142.446op/s | 0.13% | -0.875 | 0.571 | 0.09% | 9389.142op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 3.902µs | 3.917µs ± 0.004µs | 3.916µs ± 0.002µs | 3.919µs | 3.923µs | 3.927µs | 3.930µs | 0.36% | 0.530 | 1.600 | 0.09% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 254425626.179op/s | 255321832.231op/s ± 242813.441op/s | 255350474.781op/s ± 160697.774op/s | 255503740.911op/s | 255630265.361op/s | 255740529.257op/s | 256257154.556op/s | 0.36% | -0.521 | 1.595 | 0.09% | 17169.503op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 59.471µs | 60.431µs ± 0.644µs | 60.461µs ± 0.482µs | 60.865µs | 61.489µs | 62.072µs | 62.499µs | 3.37% | 0.338 | -0.409 | 1.06% | 0.046µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 16000136.534op/s | 16549611.276op/s ± 175713.030op/s | 16539535.491op/s ± 130790.262op/s | 16728033.658op/s | 16789851.197op/s | 16804681.941op/s | 16814938.758op/s | 1.67% | -0.292 | -0.499 | 1.06% | 12424.788op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 53.539µs | 53.779µs ± 0.106µs | 53.780µs ± 0.071µs | 53.855µs | 53.939µs | 54.031µs | 54.208µs | 0.80% | 0.298 | 0.677 | 0.20% | 0.007µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 18447578.099op/s | 18594697.238op/s ± 36478.659op/s | 18594317.338op/s ± 24627.324op/s | 18618025.300op/s | 18652840.025op/s | 18673624.868op/s | 18677881.653op/s | 0.45% | -0.283 | 0.643 | 0.20% | 2579.431op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 3.894µs | 3.916µs ± 0.004µs | 3.916µs ± 0.002µs | 3.919µs | 3.923µs | 3.927µs | 3.932µs | 0.39% | -0.167 | 5.516 | 0.10% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 254349181.790op/s | 255330788.011op/s ± 256032.579op/s | 255350219.477op/s ± 151941.204op/s | 255489108.214op/s | 255647616.450op/s | 255703526.752op/s | 256800048.183op/s | 0.57% | 0.190 | 5.601 | 0.10% | 18104.237op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 50.238µs | 50.365µs ± 0.074µs | 50.364µs ± 0.051µs | 50.411µs | 50.511µs | 50.549µs | 50.623µs | 0.51% | 0.523 | 0.167 | 0.15% | 0.005µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 19753927.607op/s | 19854918.068op/s ± 29135.001op/s | 19855396.837op/s ± 20078.109op/s | 19876884.189op/s | 19899824.484op/s | 19904211.851op/s | 19905414.273op/s | 0.25% | -0.515 | 0.150 | 0.15% | 2060.156op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 44.750µs | 44.979µs ± 0.084µs | 44.981µs ± 0.060µs | 45.038µs | 45.111µs | 45.158µs | 45.218µs | 0.53% | -0.012 | -0.322 | 0.19% | 0.006µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 22115220.697op/s | 22232608.603op/s ± 41580.997op/s | 22231561.265op/s ± 29476.897op/s | 22262712.739op/s | 22297883.934op/s | 22323301.844op/s | 22346323.930op/s | 0.52% | 0.022 | -0.323 | 0.19% | 2940.220op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 6.802µs | 6.815µs ± 0.007µs | 6.814µs ± 0.004µs | 6.819µs | 6.825µs | 6.835µs | 6.837µs | 0.34% | 0.728 | 0.683 | 0.10% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 146269422.122op/s | 146738233.105op/s ± 141759.750op/s | 146764133.156op/s ± 94193.041op/s | 146836506.101op/s | 146930977.010op/s | 146967815.362op/s | 147014180.861op/s | 0.17% | -0.722 | 0.668 | 0.10% | 10023.928op/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 | [255250922.122op/s; 255322064.179op/s] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [77.522µs; 77.692µs] or [-0.109%; +0.109%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [12872156.588op/s; 12900340.240op/s] or [-0.109%; +0.109%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [67.645µs; 67.672µs] or [-0.020%; +0.020%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [14777185.899op/s; 14783083.524op/s] or [-0.020%; +0.020%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [3.917µs; 3.918µs] or [-0.015%; +0.015%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [255237939.411op/s; 255314323.014op/s] or [-0.015%; +0.015%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [64.719µs; 64.746µs] or [-0.020%; +0.020%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [15445058.432op/s; 15451374.285op/s] or [-0.020%; +0.020%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [44.938µs; 44.960µs] or [-0.025%; +0.025%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [22242015.659op/s; 22253169.062op/s] or [-0.025%; +0.025%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [6.808µs; 6.810µs] or [-0.013%; +0.013%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [146838758.822op/s; 146875563.581op/s] or [-0.013%; +0.013%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [3.916µs; 3.917µs] or [-0.013%; +0.013%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [255288180.623op/s; 255355483.838op/s] or [-0.013%; +0.013%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [60.342µs; 60.520µs] or [-0.148%; +0.148%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [16525259.140op/s; 16573963.412op/s] or [-0.147%; +0.147%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [53.764µs; 53.794µs] or [-0.027%; +0.027%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [18589641.647op/s; 18599752.830op/s] or [-0.027%; +0.027%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [3.916µs; 3.917µs] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [255295304.358op/s; 255366271.664op/s] or [-0.014%; +0.014%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [50.355µs; 50.376µs] or [-0.020%; +0.020%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [19850880.237op/s; 19858955.899op/s] or [-0.020%; +0.020%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [44.967µs; 44.991µs] or [-0.026%; +0.026%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [22226845.876op/s; 22238371.329op/s] or [-0.026%; +0.026%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [6.814µs; 6.816µs] or [-0.013%; +0.013%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [146718586.567op/s; 146757879.642op/s] or [-0.013%; +0.013%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.321µs | 5.408µs ± 0.027µs | 5.405µs ± 0.016µs | 5.425µs | 5.451µs | 5.497µs | 5.514µs | 2.02% | 0.577 | 1.804 | 0.50% | 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.404µs; 5.412µs] or [-0.069%; +0.069%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.979µs | 5.064µs ± 0.048µs | 5.064µs ± 0.040µs | 5.093µs | 5.136µs | 5.175µs | 5.178µs | 2.25% | 0.234 | -0.584 | 0.95% | 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.057µs; 5.070µs] or [-0.132%; +0.132%] | None | None | None |
Group 10
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.433ms | 3.470ms ± 0.014ms | 3.469ms ± 0.009ms | 3.478ms | 3.498ms | 3.511ms | 3.521ms | 1.51% | 0.712 | 1.150 | 0.41% | 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.468ms; 3.472ms] or [-0.057%; +0.057%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.149ns | 192.794ns ± 2.197ns | 192.428ns ± 1.572ns | 193.977ns | 196.897ns | 199.116ns | 200.931ns | 4.42% | 1.053 | 0.835 | 1.14% | 0.155ns | 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.490ns; 193.099ns] or [-0.158%; +0.158%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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 | 245.929ns | 258.466ns ± 13.920ns | 251.481ns ± 3.047ns | 268.603ns | 290.310ns | 293.362ns | 296.143ns | 17.76% | 1.285 | 0.257 | 5.37% | 0.984ns | 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 | [256.537ns; 260.395ns] or [-0.746%; +0.746%] | None | None | None |
Group 13
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | 161.003µs | 161.885µs ± 0.520µs | 161.815µs ± 0.189µs | 162.015µs | 162.577µs | 163.482µs | 166.897µs | 3.14% | 4.977 | 42.494 | 0.32% | 0.037µ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.813µs; 161.957µs] or [-0.045%; +0.045%] | None | None | None |
Group 14
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.314µs | 2.371µs ± 0.017µs | 2.374µs ± 0.007µs | 2.379µs | 2.398µs | 2.407µs | 2.427µs | 2.24% | -0.974 | 2.960 | 0.71% | 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.373µs] or [-0.099%; +0.099%] | None | None | None |
Group 15
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.542µs | 35.052µs ± 0.842µs | 34.676µs ± 0.056µs | 34.748µs | 36.827µs | 36.855µs | 38.236µs | 10.27% | 1.761 | 1.384 | 2.40% | 0.060µ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.935µs; 35.168µs] or [-0.333%; +0.333%] | None | None | None |
Group 16
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.760ms | 14.827ms ± 0.035ms | 14.822ms ± 0.018ms | 14.840ms | 14.892ms | 14.947ms | 14.999ms | 1.19% | 1.628 | 4.085 | 0.24% | 0.003ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching serializing traces from their internal representation to msgpack | execution_time | [14.822ms; 14.832ms] or [-0.033%; +0.033%] | None | None | None |
Group 17
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.918µs | 536.254µs ± 1.079µs | 535.955µs ± 0.513µs | 536.697µs | 538.311µs | 540.135µs | 541.303µs | 1.00% | 1.796 | 4.248 | 0.20% | 0.076µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1847392.753op/s | 1864794.548op/s ± 3738.765op/s | 1865828.083op/s ± 1784.512op/s | 1867345.634op/s | 1868719.858op/s | 1869278.344op/s | 1869443.971op/s | 0.19% | -1.778 | 4.151 | 0.20% | 264.371op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 380.349µs | 381.125µs ± 0.364µs | 381.088µs ± 0.228µs | 381.346µs | 381.760µs | 382.056µs | 382.206µs | 0.29% | 0.496 | -0.057 | 0.10% | 0.026µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2616390.114op/s | 2623811.712op/s ± 2501.586op/s | 2624067.480op/s ± 1568.338op/s | 2625526.118op/s | 2627486.743op/s | 2628327.505op/s | 2629162.464op/s | 0.19% | -0.491 | -0.064 | 0.10% | 176.889op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 189.407µs | 190.066µs ± 0.377µs | 189.994µs ± 0.196µs | 190.230µs | 190.788µs | 191.315µs | 191.852µs | 0.98% | 1.474 | 3.422 | 0.20% | 0.027µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5212351.187op/s | 5261357.397op/s ± 10395.554op/s | 5263328.367op/s ± 5437.233op/s | 5268492.154op/s | 5274200.013op/s | 5276837.823op/s | 5279636.631op/s | 0.31% | -1.455 | 3.333 | 0.20% | 735.077op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 37.830µs | 37.948µs ± 0.059µs | 37.937µs ± 0.037µs | 37.983µs | 38.072µs | 38.104µs | 38.119µs | 0.48% | 0.656 | 0.058 | 0.16% | 0.004µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 26233517.261op/s | 26351637.898op/s ± 41094.586op/s | 26359276.516op/s ± 25901.902op/s | 26381428.144op/s | 26408841.731op/s | 26422775.031op/s | 26434222.790op/s | 0.28% | -0.649 | 0.047 | 0.16% | 2905.826op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 45.828µs | 46.013µs ± 0.117µs | 45.993µs ± 0.074µs | 46.090µs | 46.255µs | 46.344µs | 46.391µs | 0.87% | 0.869 | 0.367 | 0.25% | 0.008µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 21555760.681op/s | 21733104.226op/s ± 55309.471op/s | 21742559.878op/s ± 35220.870op/s | 21774145.293op/s | 21799680.365op/s | 21816732.288op/s | 21820906.125op/s | 0.36% | -0.856 | 0.336 | 0.25% | 3910.970op/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 | [536.105µs; 536.404µs] or [-0.028%; +0.028%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [1864276.391op/s; 1865312.705op/s] or [-0.028%; +0.028%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [381.075µs; 381.176µs] or [-0.013%; +0.013%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2623465.016op/s; 2624158.408op/s] or [-0.013%; +0.013%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [190.014µs; 190.118µs] or [-0.027%; +0.027%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5259916.673op/s; 5262798.121op/s] or [-0.027%; +0.027%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [37.940µs; 37.957µs] or [-0.022%; +0.022%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [26345942.584op/s; 26357333.213op/s] or [-0.022%; +0.022%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [45.997µs; 46.029µs] or [-0.035%; +0.035%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [21725438.865op/s; 21740769.587op/s] or [-0.035%; +0.035%] | None | None | None |
Group 18
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.391ms | 49.759ms ± 1.235ms | 49.604ms ± 0.073ms | 49.681ms | 49.859ms | 53.428ms | 64.666ms | 30.37% | 10.179 | 111.808 | 2.48% | 0.087ms | 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.588ms; 49.930ms] or [-0.344%; +0.344%] | None | None | None |
Group 19
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.165ms | 4.170ms ± 0.008ms | 4.169ms ± 0.001ms | 4.171ms | 4.174ms | 4.180ms | 4.277ms | 2.57% | 11.840 | 153.442 | 0.19% | 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.169ms; 4.171ms] or [-0.027%; +0.027%] | None | None | None |
Group 20
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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 | 727.700µs | 728.774µs ± 0.491µs | 728.754µs ± 0.274µs | 729.023µs | 729.529µs | 729.934µs | 731.380µs | 0.36% | 1.150 | 4.519 | 0.07% | 0.035µ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 | [728.706µs; 728.842µs] or [-0.009%; +0.009%] | None | None | None |
Group 21
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 0f58a30 | 1774872757 | yannham/apmsp-2722-agent-client-layer |
| 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.217ms | 4.224ms ± 0.003ms | 4.224ms ± 0.002ms | 4.225ms | 4.228ms | 4.231ms | 4.248ms | 0.58% | 2.012 | 12.728 | 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.223ms; 4.224ms] or [-0.011%; +0.011%] | None | None | None |
Baseline
Omitted due to size.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## ekump/APMSP-2516-implement-http-common-component #1806 +/- ##
====================================================================================
- Coverage 71.29% 71.21% -0.09%
====================================================================================
Files 423 427 +4
Lines 66609 66711 +102
====================================================================================
+ Hits 47492 47506 +14
- Misses 19117 19205 +88
🚀 New features to boost your workflow:
|
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🎯 Code Coverage (details) 🔗 Commit SHA: 0f58a30 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
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
|
929a466 to
6c0054d
Compare
New HTTP client crate for use by external language clients via FFI. Defines HttpClient, HttpRequest, HttpResponse, HttpClientError, and a builder API with configurable timeout, transport, and retry.
ReqwestBackend sends requests via reqwest::Client with connection pooling, error mapping, and per-request timeout. Integration tests cover HTTP round-trips, timeout behavior, and connection pooling.
Builder API supports unix_socket() and windows_named_pipe() for platform-specific transports. FIPS TLS via rustls-no-provider with init_fips_crypto() helper for callers to install the crypto provider.
Opt-in retry via RetryConfig on the builder. Supports configurable max retries, initial delay, exponential backoff, and jitter. All errors except InvalidConfig are retried.
Add MultipartPart type and multipart_parts field on HttpRequest. When parts are present, the request is sent as multipart/form-data with reqwest handling Content-Type and boundary automatically. Setting both multipart parts and a body returns an error.
Add a hyper-backend feature as a lighter alternative to reqwest-backend for consumers where binary size matters. The hyper backend uses libdd-common's Connector and a new shared multipart encoder in libdd-common. CI runs tests against both backends.
When both reqwest-backend and hyper-backend are enabled (e.g. CI with --all-features), reqwest takes precedence. Hyper backend only activates when reqwest-backend is not enabled.
6c0054d to
f6111ed
Compare
fc06596 to
97cfd8f
Compare
97cfd8f to
b49a17e
Compare
f6111ed to
dafaef0
Compare
dafaef0 to
0f58a30
Compare
brettlangdon
left a comment
There was a problem hiding this comment.
some initial thoughts/questions, in general lgtm
| //! This crate is **Milestone 2** of APMSP-2721 (libdd-http-client: Common HTTP Client for | ||
| //! Language Clients). It sits on top of the basic `libdd-http-client` primitives (Milestone 1) | ||
| //! and encapsulates all Datadog-agent-specific concerns, making them the **default** rather than | ||
| //! opt-in boilerplate that every subsystem must repeat. | ||
| //! | ||
| //! # What it replaces in dd-trace-py | ||
| //! | ||
| //! | Concern | dd-trace-py location | | ||
| //! |---------|----------------------| | ||
| //! | Language metadata headers | `writer.py:638-644`, `stats.py:113-117`, `datastreams/processor.py:128-133` | | ||
| //! | Container/entity-ID headers | `http.py:32-37`, `container.py:157-183` | | ||
| //! | Retry logic (fibonacci backoff) | `writer.py:245-249`, `stats.py:123-126`, `datastreams/processor.py:140-143` | | ||
| //! | Trace send with `X-Datadog-Trace-Count` | `writer.py:749-752` | | ||
| //! | `rate_by_service` parsing | `writer.py:728-734` | | ||
| //! | Stats send | `stats.py:204-228` | | ||
| //! | Pipeline stats send (always gzip) | `datastreams/processor.py:204-210` | | ||
| //! | Telemetry send with per-request headers | `telemetry/writer.py:111-129` | | ||
| //! | EVP event send | `openfeature/writer.py:114-117` | | ||
| //! | `GET /info` with typed result | `agent.py:17-46` | |
There was a problem hiding this comment.
probably want to cut this 😅
| //! use libdd_agent_client::{AgentClient, LanguageMetadata}; | ||
| //! | ||
| //! let client = AgentClient::builder() | ||
| //! .http("localhost", 8126) |
There was a problem hiding this comment.
should we bake in the behaviors for env var parsing and etc so this is all picked up automatically for users, unless they want to manually set?
There was a problem hiding this comment.
same below for api key/intake url, etc
There was a problem hiding this comment.
oh, I see in the builder having an "auto detect" option, I guess that is this. nice
| /// | ||
| /// When set, `x-datadog-test-session-token: <token>` is injected on every request. | ||
| /// Replaces dd-trace-py's `AgentWriter.set_test_session_token` (`writer.py:754-755`). | ||
| pub fn test_token(self, token: impl Into<String>) -> Self { |
There was a problem hiding this comment.
| pub fn test_token(self, token: impl Into<String>) -> Self { | |
| pub fn test_agent_session_token(self, token: impl Into<String>) -> Self { |
? not super important, but might make it more clear to users
| /// Connection mode for the underlying HTTP client. | ||
| /// | ||
| /// # Correctness note | ||
| /// | ||
| /// The Datadog agent has a low keep-alive timeout that causes "pipe closed" errors on every | ||
| /// second connection when connection reuse is enabled. [`ClientMode::Periodic`] (the default) | ||
| /// disables connection pooling and is **correct** for all periodic-flush writers (traces, stats, | ||
| /// data streams). Only high-frequency continuous senders (e.g. a streaming profiling exporter) | ||
| /// should opt into [`ClientMode::Persistent`]. |
There was a problem hiding this comment.
oh....... we do keep-alive by default in Python, should we not be?
| /// data streams). Only high-frequency continuous senders (e.g. a streaming profiling exporter) | ||
| /// should opt into [`ClientMode::Persistent`]. | ||
| #[derive(Debug, Clone, Default, PartialEq, Eq)] | ||
| pub enum ClientMode { |
There was a problem hiding this comment.
instead of ClientMode, what about just a builder method for use_keep_alive(enabled: bool) default of false
?
| //! # async fn example() -> Result<(), libdd_agent_client::BuildError> { | ||
| //! use libdd_agent_client::{AgentClient, LanguageMetadata}; | ||
| //! | ||
| //! let client = AgentClient::builder() |
There was a problem hiding this comment.
I wonder if we should explicitly split an agentless client from a normal agent client.
Since the requirements for building are probably different, and can we enforce which API endpoints are available and the expected payload formats/responses/etc
we might be able to better control from the builder requirements as well, like agentless MUST have an API key and be using a public intake endpoint.
WIP. Claude-generated API that I need to review, refine and clean first.
What does this PR do?
A brief description of the change being made with this pull request.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.