Conversation
📚 Documentation Check Results📦
|
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📦
|
BenchmarksComparisonBenchmark execution time: 2026-03-06 20:05:47 Comparing candidate commit 42de22c in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 56 metrics, 2 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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 | 146.327µs | 148.189µs ± 1.550µs | 147.975µs ± 0.569µs | 148.544µs | 149.557µs | 153.887µs | 162.706µs | 9.95% | 5.579 | 43.914 | 1.04% | 0.110µ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 | [147.974µs; 148.403µs] or [-0.145%; +0.145%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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 | 241.684ns | 250.077ns ± 10.991ns | 245.173ns ± 2.099ns | 249.902ns | 276.073ns | 280.808ns | 283.197ns | 15.51% | 1.765 | 1.641 | 4.38% | 0.777ns | 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 | [248.554ns; 251.600ns] or [-0.609%; +0.609%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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.895µs | 3.912µs ± 0.003µs | 3.911µs ± 0.002µs | 3.913µs | 3.916µs | 3.917µs | 3.919µs | 0.20% | -0.734 | 5.326 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 255137498.357op/s | 255646756.582op/s ± 177128.587op/s | 255656870.686op/s ± 108541.318op/s | 255760967.021op/s | 255884578.503op/s | 255953538.641op/s | 256710334.865op/s | 0.41% | 0.748 | 5.410 | 0.07% | 12524.882op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 78.980µs | 79.616µs ± 0.387µs | 79.550µs ± 0.252µs | 79.842µs | 80.357µs | 80.701µs | 80.819µs | 1.59% | 0.738 | 0.224 | 0.48% | 0.027µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 12373308.613op/s | 12560550.444op/s ± 60840.201op/s | 12570634.374op/s ± 39808.305op/s | 12606096.651op/s | 12646522.319op/s | 12656996.838op/s | 12661390.016op/s | 0.72% | -0.714 | 0.172 | 0.48% | 4302.052op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 72.325µs | 72.861µs ± 0.321µs | 72.808µs ± 0.201µs | 73.038µs | 73.429µs | 73.857µs | 73.927µs | 1.54% | 0.842 | 0.646 | 0.44% | 0.023µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 13526942.435op/s | 13724957.862op/s ± 60155.844op/s | 13734796.800op/s ± 37965.503op/s | 13768652.222op/s | 13804470.179op/s | 13815547.238op/s | 13826476.320op/s | 0.67% | -0.816 | 0.580 | 0.44% | 4253.661op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 3.895µs | 3.914µs ± 0.003µs | 3.913µs ± 0.002µs | 3.916µs | 3.919µs | 3.920µs | 3.921µs | 0.19% | -0.547 | 5.110 | 0.08% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 255050473.540op/s | 255522648.650op/s ± 207385.302op/s | 255544528.645op/s ± 131921.988op/s | 255665632.981op/s | 255776467.507op/s | 255839699.605op/s | 256760024.142op/s | 0.48% | 0.564 | 5.209 | 0.08% | 14664.355op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 69.263µs | 69.761µs ± 0.342µs | 69.685µs ± 0.226µs | 69.956µs | 70.488µs | 70.664µs | 71.180µs | 2.15% | 1.040 | 1.069 | 0.49% | 0.024µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 14048868.208op/s | 14334942.177op/s ± 69843.828op/s | 14350345.652op/s ± 46557.332op/s | 14389704.527op/s | 14419563.384op/s | 14434764.562op/s | 14437686.694op/s | 0.61% | -1.012 | 0.966 | 0.49% | 4938.704op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 52.157µs | 52.242µs ± 0.039µs | 52.244µs ± 0.025µs | 52.265µs | 52.300µs | 52.351µs | 52.418µs | 0.33% | 0.678 | 2.006 | 0.07% | 0.003µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 19077558.323op/s | 19141810.897op/s ± 14233.759op/s | 19140891.969op/s ± 9118.365op/s | 19151711.354op/s | 19163417.326op/s | 19167245.204op/s | 19172736.369op/s | 0.17% | -0.670 | 1.978 | 0.07% | 1006.479op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 6.028µs | 6.038µs ± 0.010µs | 6.035µs ± 0.003µs | 6.038µs | 6.060µs | 6.074µs | 6.111µs | 1.26% | 3.887 | 18.836 | 0.16% | 0.001µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 163631221.865op/s | 165629714.404op/s ± 271426.203op/s | 165694362.943op/s ± 73005.768op/s | 165756552.921op/s | 165825088.493op/s | 165850982.302op/s | 165883943.546op/s | 0.11% | -3.860 | 18.531 | 0.16% | 19192.731op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 3.895µs | 3.912µs ± 0.003µs | 3.912µs ± 0.002µs | 3.913µs | 3.916µs | 3.919µs | 3.920µs | 0.22% | -0.776 | 7.081 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 255074404.515op/s | 255616591.485op/s ± 173497.041op/s | 255624692.965op/s ± 99663.699op/s | 255732190.290op/s | 255837237.491op/s | 255887293.149op/s | 256712705.954op/s | 0.43% | 0.793 | 7.185 | 0.07% | 12268.093op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 64.190µs | 64.445µs ± 0.139µs | 64.424µs ± 0.084µs | 64.528µs | 64.697µs | 64.857µs | 65.019µs | 0.92% | 0.963 | 1.441 | 0.22% | 0.010µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 15380183.344op/s | 15517169.387op/s ± 33482.067op/s | 15522091.522op/s ± 20382.673op/s | 15540363.854op/s | 15562602.521op/s | 15575391.692op/s | 15578861.043op/s | 0.37% | -0.947 | 1.389 | 0.22% | 2367.540op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 58.105µs | 58.411µs ± 0.165µs | 58.380µs ± 0.099µs | 58.510µs | 58.737µs | 58.889µs | 59.128µs | 1.28% | 0.999 | 1.557 | 0.28% | 0.012µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 16912354.672op/s | 17120201.992op/s ± 48364.298op/s | 17129028.441op/s ± 29057.049op/s | 17151907.847op/s | 17185214.789op/s | 17194379.646op/s | 17210317.585op/s | 0.47% | -0.977 | 1.482 | 0.28% | 3419.872op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 3.891µs | 3.913µs ± 0.003µs | 3.913µs ± 0.002µs | 3.915µs | 3.916µs | 3.918µs | 3.920µs | 0.17% | -2.082 | 14.305 | 0.08% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 255112628.684op/s | 255571497.306op/s ± 192474.007op/s | 255540287.337op/s ± 133481.577op/s | 255699910.517op/s | 255835914.120op/s | 255890459.783op/s | 257024240.291op/s | 0.58% | 2.109 | 14.556 | 0.08% | 13609.968op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 54.594µs | 54.941µs ± 0.281µs | 54.871µs ± 0.179µs | 55.107µs | 55.434µs | 55.862µs | 55.926µs | 1.92% | 1.187 | 1.383 | 0.51% | 0.020µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 17880821.685op/s | 18201781.795op/s ± 92421.290op/s | 18224539.500op/s ± 59639.200op/s | 18277215.635op/s | 18304681.611op/s | 18313376.297op/s | 18316926.672op/s | 0.51% | -1.158 | 1.274 | 0.51% | 6535.172op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 52.147µs | 52.215µs ± 0.035µs | 52.210µs ± 0.021µs | 52.232µs | 52.276µs | 52.312µs | 52.363µs | 0.29% | 0.979 | 1.327 | 0.07% | 0.002µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 19097328.940op/s | 19151658.578op/s ± 12785.978op/s | 19153327.172op/s ± 7546.181op/s | 19160737.254op/s | 19168253.539op/s | 19173819.109op/s | 19176524.099op/s | 0.12% | -0.974 | 1.311 | 0.07% | 904.105op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 6.028µs | 6.039µs ± 0.010µs | 6.037µs ± 0.003µs | 6.040µs | 6.069µs | 6.074µs | 6.076µs | 0.66% | 2.515 | 6.257 | 0.16% | 0.001µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 164571853.801op/s | 165601873.146op/s ± 259541.986op/s | 165658104.582op/s ± 89203.339op/s | 165747121.289op/s | 165833291.788op/s | 165863767.678op/s | 165886668.752op/s | 0.14% | -2.506 | 6.218 | 0.16% | 18352.390op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| credit_card/is_card_number/ | execution_time | [3.911µs; 3.912µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/ | throughput | [255622208.263op/s; 255671304.900op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [79.563µs; 79.670µs] or [-0.067%; +0.067%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [12552118.577op/s; 12568982.311op/s] or [-0.067%; +0.067%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [72.817µs; 72.906µs] or [-0.061%; +0.061%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [13716620.840op/s; 13733294.883op/s] or [-0.061%; +0.061%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [3.913µs; 3.914µs] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [255493907.042op/s; 255551390.259op/s] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [69.714µs; 69.809µs] or [-0.068%; +0.068%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [14325262.494op/s; 14344621.860op/s] or [-0.068%; +0.068%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [52.236µs; 52.247µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [19139838.235op/s; 19143783.560op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [6.036µs; 6.039µs] or [-0.023%; +0.023%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [165592097.343op/s; 165667331.465op/s] or [-0.023%; +0.023%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [3.912µs; 3.912µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [255592546.464op/s; 255640636.507op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [64.426µs; 64.464µs] or [-0.030%; +0.030%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [15512529.094op/s; 15521809.679op/s] or [-0.030%; +0.030%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [58.388µs; 58.434µs] or [-0.039%; +0.039%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [17113499.165op/s; 17126904.819op/s] or [-0.039%; +0.039%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [3.912µs; 3.913µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [255544822.260op/s; 255598172.352op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [54.902µs; 54.980µs] or [-0.071%; +0.071%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [18188973.093op/s; 18214590.497op/s] or [-0.070%; +0.070%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [52.210µs; 52.220µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [19149886.565op/s; 19153430.592op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [6.037µs; 6.040µs] or [-0.022%; +0.022%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [165565903.123op/s; 165637843.169op/s] or [-0.022%; +0.022%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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 | 18.525µs | 27.288µs ± 10.213µs | 19.033µs ± 0.300µs | 36.150µs | 45.395µs | 50.719µs | 73.348µs | 285.38% | 0.901 | 0.560 | 37.33% | 0.722µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| two way interface | execution_time | [25.872µs; 28.703µs] or [-5.187%; +5.187%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| write only interface | execution_time | 1.212µs | 3.188µs ± 1.430µs | 3.019µs ± 0.033µs | 3.046µs | 3.404µs | 13.781µs | 15.308µs | 407.00% | 7.513 | 57.178 | 44.75% | 0.101µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| write only interface | execution_time | [2.989µs; 3.386µs] or [-6.218%; +6.218%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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.061µs | 162.765µs ± 0.329µs | 162.711µs ± 0.155µs | 162.877µs | 163.432µs | 163.975µs | 164.419µs | 1.05% | 1.671 | 4.768 | 0.20% | 0.023µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | [162.720µs; 162.811µs] or [-0.028%; +0.028%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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.330µs | 2.392µs ± 0.017µs | 2.390µs ± 0.005µs | 2.403µs | 2.416µs | 2.422µs | 2.438µs | 2.04% | -1.119 | 3.060 | 0.70% | 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.390µs; 2.395µs] or [-0.097%; +0.097%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| receiver_entry_point/report/2597 | execution_time | 3.288ms | 3.312ms ± 0.014ms | 3.308ms ± 0.007ms | 3.317ms | 3.340ms | 3.360ms | 3.371ms | 1.89% | 1.373 | 2.436 | 0.42% | 0.001ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| receiver_entry_point/report/2597 | execution_time | [3.310ms; 3.314ms] or [-0.059%; +0.059%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| redis/obfuscate_redis_string | execution_time | 33.406µs | 33.958µs ± 0.891µs | 33.559µs ± 0.055µs | 33.635µs | 35.853µs | 35.868µs | 37.243µs | 10.98% | 1.756 | 1.324 | 2.62% | 0.063µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| redis/obfuscate_redis_string | execution_time | [33.835µs; 34.082µs] or [-0.364%; +0.364%] | None | None | None |
Group 10
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching serializing traces from their internal representation to msgpack | execution_time | 13.993ms | 14.070ms ± 0.034ms | 14.065ms ± 0.016ms | 14.081ms | 14.133ms | 14.199ms | 14.264ms | 1.41% | 2.073 | 7.455 | 0.24% | 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.065ms; 14.074ms] or [-0.034%; +0.034%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| concentrator/add_spans_to_concentrator | execution_time | 10.628ms | 10.656ms ± 0.014ms | 10.654ms ± 0.009ms | 10.665ms | 10.678ms | 10.693ms | 10.721ms | 0.63% | 0.896 | 2.095 | 0.13% | 0.001ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| concentrator/add_spans_to_concentrator | execution_time | [10.654ms; 10.658ms] or [-0.018%; +0.018%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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 | 50.240ms | 50.727ms ± 0.867ms | 50.603ms ± 0.066ms | 50.675ms | 50.812ms | 54.954ms | 58.889ms | 16.37% | 7.694 | 62.840 | 1.71% | 0.061ms | 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.607ms; 50.847ms] or [-0.237%; +0.237%] | None | None | None |
Group 13
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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 | 91.247µs | 91.449µs ± 0.197µs | 91.421µs ± 0.058µs | 91.488µs | 91.633µs | 91.902µs | 93.732µs | 2.53% | 8.220 | 89.699 | 0.21% | 0.014µ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 | [91.421µs; 91.476µs] or [-0.030%; +0.030%] | None | None | None |
Group 14
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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.159ms | 4.166ms ± 0.008ms | 4.165ms ± 0.001ms | 4.167ms | 4.169ms | 4.171ms | 4.269ms | 2.50% | 12.331 | 163.381 | 0.18% | 0.001ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_add_sample_frames_x1000 | execution_time | [4.165ms; 4.167ms] or [-0.026%; +0.026%] | None | None | None |
Group 15
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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.116µs | 535.679µs ± 1.449µs | 535.048µs ± 0.473µs | 536.466µs | 538.177µs | 540.519µs | 542.256µs | 1.35% | 1.832 | 3.814 | 0.27% | 0.102µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1844146.614op/s | 1866804.882op/s ± 5024.999op/s | 1868992.118op/s ± 1654.022op/s | 1870096.188op/s | 1871308.342op/s | 1872063.986op/s | 1872252.676op/s | 0.17% | -1.812 | 3.709 | 0.27% | 355.321op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 388.652µs | 389.285µs ± 0.264µs | 389.254µs ± 0.176µs | 389.464µs | 389.731µs | 389.866µs | 390.226µs | 0.25% | 0.412 | 0.121 | 0.07% | 0.019µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2562620.247op/s | 2568812.784op/s ± 1740.463op/s | 2569017.832op/s ± 1159.478op/s | 2570037.614op/s | 2571311.812op/s | 2572168.217op/s | 2572993.787op/s | 0.15% | -0.408 | 0.115 | 0.07% | 123.069op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 189.722µs | 190.211µs ± 0.196µs | 190.206µs ± 0.130µs | 190.345µs | 190.545µs | 190.646µs | 190.770µs | 0.30% | 0.064 | -0.215 | 0.10% | 0.014µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5241923.506op/s | 5257320.624op/s ± 5418.756op/s | 5257458.413op/s ± 3588.915op/s | 5260761.622op/s | 5266493.518op/s | 5268954.927op/s | 5270874.996op/s | 0.26% | -0.059 | -0.216 | 0.10% | 383.164op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 37.479µs | 37.688µs ± 0.065µs | 37.693µs ± 0.039µs | 37.728µs | 37.795µs | 37.836µs | 37.853µs | 0.42% | -0.247 | 0.263 | 0.17% | 0.005µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 26418263.701op/s | 26534048.595op/s ± 45697.032op/s | 26530399.383op/s ± 27636.486op/s | 26560555.141op/s | 26619620.502op/s | 26639394.932op/s | 26681324.455op/s | 0.57% | 0.259 | 0.270 | 0.17% | 3231.268op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 45.795µs | 45.907µs ± 0.084µs | 45.893µs ± 0.037µs | 45.934µs | 46.028µs | 46.125µs | 46.644µs | 1.64% | 3.737 | 27.841 | 0.18% | 0.006µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 21438881.967op/s | 21783471.190op/s ± 39788.247op/s | 21789951.825op/s ± 17557.665op/s | 21806996.137op/s | 21825881.499op/s | 21832244.709op/s | 21836282.703op/s | 0.21% | -3.651 | 26.825 | 0.18% | 2813.454op/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.478µs; 535.879µs] or [-0.037%; +0.037%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [1866108.465op/s; 1867501.298op/s] or [-0.037%; +0.037%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [389.249µs; 389.322µs] or [-0.009%; +0.009%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2568571.573op/s; 2569053.996op/s] or [-0.009%; +0.009%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [190.184µs; 190.238µs] or [-0.014%; +0.014%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5256569.637op/s; 5258071.612op/s] or [-0.014%; +0.014%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [37.679µs; 37.697µs] or [-0.024%; +0.024%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [26527715.426op/s; 26540381.764op/s] or [-0.024%; +0.024%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [45.895µs; 45.918µs] or [-0.025%; +0.025%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [21777956.922op/s; 21788985.459op/s] or [-0.025%; +0.025%] | None | None | None |
Group 16
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| profile_add_sample2_frames_x1000 | execution_time | 721.961µs | 722.916µs ± 0.556µs | 722.802µs ± 0.333µs | 723.216µs | 723.806µs | 724.504µs | 726.295µs | 0.48% | 1.669 | 6.476 | 0.08% | 0.039µ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 | [722.839µs; 722.993µs] or [-0.011%; +0.011%] | None | None | None |
Group 17
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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.953µs | 5.020µs ± 0.043µs | 5.015µs ± 0.035µs | 5.054µs | 5.087µs | 5.090µs | 5.093µs | 1.55% | 0.383 | -1.252 | 0.85% | 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.014µs; 5.026µs] or [-0.118%; +0.118%] | None | None | None |
Group 18
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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 | 188.275ns | 190.790ns ± 2.348ns | 190.450ns ± 1.428ns | 191.687ns | 195.645ns | 197.578ns | 201.836ns | 5.98% | 1.494 | 2.678 | 1.23% | 0.166ns | 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 | [190.464ns; 191.115ns] or [-0.171%; +0.171%] | None | None | None |
Group 19
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 42de22c | 1772826505 | rachel.yang/OTLP-trace-export |
| 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 | 184.918µs | 185.346µs ± 0.222µs | 185.318µs ± 0.164µs | 185.508µs | 185.721µs | 185.849µs | 186.122µs | 0.43% | 0.486 | -0.256 | 0.12% | 0.016µs | 1 | 200 |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | 5372813.483op/s | 5395332.889op/s ± 6461.657op/s | 5396136.447op/s ± 4789.599op/s | 5400500.621op/s | 5404295.591op/s | 5406370.955op/s | 5407795.797op/s | 0.22% | -0.481 | -0.267 | 0.12% | 456.908op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 18.030µs | 18.127µs ± 0.057µs | 18.123µs ± 0.025µs | 18.148µs | 18.196µs | 18.225µs | 18.715µs | 3.27% | 5.599 | 55.143 | 0.31% | 0.004µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 53432019.429op/s | 55166019.845op/s ± 170389.921op/s | 55178886.241op/s ± 77114.017op/s | 55255840.351op/s | 55353723.795op/s | 55402328.617op/s | 55462858.528op/s | 0.51% | -5.361 | 51.929 | 0.31% | 12048.387op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 10.318µs | 10.448µs ± 0.067µs | 10.441µs ± 0.053µs | 10.498µs | 10.557µs | 10.600µs | 10.661µs | 2.11% | 0.389 | -0.226 | 0.64% | 0.005µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 93801697.526op/s | 95717195.242op/s ± 616267.553op/s | 95776649.563op/s ± 482822.516op/s | 96211209.945op/s | 96623403.728op/s | 96786619.789op/s | 96918007.366op/s | 1.19% | -0.359 | -0.281 | 0.64% | 43576.697op/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 | [185.315µs; 185.376µs] or [-0.017%; +0.017%] | None | None | None |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | [5394437.365op/s; 5396228.413op/s] or [-0.017%; +0.017%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [18.119µs; 18.135µs] or [-0.044%; +0.044%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [55142405.441op/s; 55189634.250op/s] or [-0.043%; +0.043%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [10.439µs; 10.457µs] or [-0.089%; +0.089%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [95631786.486op/s; 95802603.998op/s] or [-0.089%; +0.089%] | None | None | None |
Baseline
Omitted due to size.
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1641 +/- ##
==========================================
+ Coverage 71.19% 71.44% +0.25%
==========================================
Files 425 431 +6
Lines 62666 63539 +873
==========================================
+ Hits 44615 45396 +781
- Misses 18051 18143 +92
🚀 New features to boost your workflow:
|
| /// Sets the tracer/SDK name for OTLP resource attribute `telemetry.sdk.name` | ||
| /// (e.g. "dd-trace-py"). When unset, OTLP uses "libdatadog". | ||
| #[no_mangle] | ||
| pub unsafe extern "C" fn ddog_trace_exporter_config_set_tracer_name( |
There was a problem hiding this comment.
Is tracer name a required field in the otlp trace payload. It would be nice if we went to with a minimal implementation where we defer unnecessary configurations. Also can the tracer name be interfered from other configurations?
|
|
||
| #[derive(Debug, Serialize)] | ||
| #[serde(rename_all = "camelCase")] | ||
| pub struct KeyValue { |
There was a problem hiding this comment.
Did we look into vendoring or adding opentelemetry-rust as a dependency to the libdd-data-pipeline so we can re-use existing functionality (ex).
At the minimum we should make it clear which components are borrowed from opentelemetry-rust and include a versioned link to the original implementation.
| } | ||
|
|
||
| #[derive(Debug, Serialize)] | ||
| #[serde(rename_all = "camelCase")] |
There was a problem hiding this comment.
DO we need the rename_all option here?
| } | ||
|
|
||
| /// OTLP SpanKind enum values. | ||
| pub mod span_kind { |
There was a problem hiding this comment.
Why are we using snakeCasing here? This is inconsistent with AnyValue,
| } | ||
| } | ||
|
|
||
| fn build_resource(metadata: &TracerMetadata) -> Resource { |
There was a problem hiding this comment.
We have a similar function in dd-trace-rs. It would be nice if we could pull out some of this logic into a common rust crate and re-use it in both places. We can do something similar with a few other components in this PR (re-use helpers for applying otlp configurations).
cc: @paullegranddc
There was a problem hiding this comment.
let's live with the duplication for now
paullegranddc
left a comment
There was a problem hiding this comment.
To test the otlp trace export, you can add test agent snapshot tests here
| // Copyright 2024-Present Datadog, Inc. https://www.datadoghq.com/ | ||
| // SPDX-License-Identifier: Apache-2.0 |
There was a problem hiding this comment.
I think we should parse the configurations from the host language, and not in libdatadg.
The way we would configure the TraceExporter for agent_url for instance would be
1) language_configuration resolves agent_url from different sources
2) when the tracer wants to instantiate a TraceExporter it first creates a TraceExporterBuilder and calls setters on it (set_agent_url in this case)
3) TraceExporterBuilder::build gives a TraceExporter containing the agent_url
4) In TraceExporter::send we can just read self.agent_url
| pub async fn send_otlp_traces_http( | ||
| client: &HttpClient, | ||
| config: &OtlpTraceConfig, | ||
| json_body: Vec<u8>, | ||
| ) -> Result<(), TraceExporterError> { |
There was a problem hiding this comment.
You should use libdd_trace_utils::send_with_retry::send_with_retry to send a serialized payloads to the agent, it already handles retries/telemetry (defined here)
| //! | ||
| //! The Rust implementation in opentelemetry-rust uses `prost`-generated types with an optional | ||
| //! `with-serde` feature (`opentelemetry-proto` crate). We use hand-rolled serde structs here to | ||
| //! avoid the `prost` + `tonic` dependency tree in this early implementation. If/when protobuf |
There was a problem hiding this comment.
agreed with duplicating type defs in here, and let's add opentelemetry-proto when we actually want to add http/proto export
| // Copyright 2024-Present Datadog, Inc. https://www.datadoghq.com/ | ||
| // SPDX-License-Identifier: Apache-2.0 | ||
|
|
There was a problem hiding this comment.
You should probably move both this file and mapper.rs to libdd_trace_utils in an otlp_encoder module/folder there to put the code
| where | ||
| T::Text: Borrow<str>, |
There was a problem hiding this comment.
This is not necessary, T::Text: Borrow<str> is already required in the definition of TraceData and the code compiles without it
| } | ||
| } | ||
|
|
||
| fn build_resource(metadata: &TracerMetadata) -> Resource { |
There was a problem hiding this comment.
let's live with the duplication for now
| pub struct AnyValue { | ||
| #[serde(skip_serializing_if = "Option::is_none")] | ||
| pub string_value: Option<String>, | ||
| #[serde(skip_serializing_if = "Option::is_none")] | ||
| pub bool_value: Option<bool>, | ||
| #[serde(skip_serializing_if = "Option::is_none")] | ||
| pub int_value: Option<i64>, | ||
| #[serde(skip_serializing_if = "Option::is_none")] | ||
| pub double_value: Option<f64>, | ||
| #[serde(skip_serializing_if = "Option::is_none")] | ||
| pub bytes_value: Option<String>, | ||
| } |
There was a problem hiding this comment.
Should be an enum instead
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
enum AnyValue {
StringValue(String),
BoolValue(bool),
// and so on
}
| where | ||
| T::Text: Borrow<str>, |
There was a problem hiding this comment.
same as the comment before, this trait bound is no necessary
What does this PR do?
Summary
This PR adds an OTLP HTTP/JSON trace export path to TraceExporter. When
OTEL_TRACES_EXPORTER=otlpis set, the exporter converts Datadog msgpack trace payloads to OTLP and POSTs them to the configured OTLP endpoint instead of the Datadog agent. The caller (e.g. dd-trace-py) sends traces in the same format as before — no changes are required on the tracer side.Not in scope
Motivation
We are seeing an increasing number of scenarios where users have applications instrumented with the OTel SDK sending data to OTel collectors, and they would like to get additional features offered by the DD SDK without needing to update their OTel collector deployments. Although there will be follow-up work, this provides the ability for users to write vendor-neutral API instrumentation and emit vendor-neutral telemetry data so DD SDK users don't have to feel locked in when setting up Datadog APM.
Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.