libdatadog
libdatadog copied to clipboard
Add span decoder for slices
What does this PR do?
Use &[u8] in the msgpack decoder instead of Bytes and produce a SpanSlice which contains &str instead of BytesString. This allows to parse non-owned buffer containing traces. It also provides a from_bytes wrapper which uses the same parsing logic but convert the &str to BytesString based on the given Bytes buffer.
Motivation
The trace exporter needs to support reading traces from borrowed buffer.
Additional Notes
This PR also refactors the string, map and number decoding logic to be moved to separate modules.
How to test the change?
Describe here in detail how the change can be validated.
Benchmarks
Comparison
Benchmark execution time: 2025-02-17 12:18:48
Comparing candidate commit 55b16bf6 in PR branch vianney/decode-with-ref with baseline commit a8fb1444 in branch main.
Found 3 performance improvements and 45 performance regressions! Performance is the same for 4 metrics, 2 unstable metrics.
scenario:benching deserializing traces from msgpack to their internal representation
- 🟥
execution_time[+24.227ms; +24.288ms] or [+44.557%; +44.669%]
scenario:benching string interning on wordpress profile
- 🟩
execution_time[-11.743µs; -11.619µs] or [-7.789%; -7.707%]
scenario:concentrator/add_spans_to_concentrator
- 🟥
execution_time[+315.496µs; +318.209µs] or [+5.300%; +5.346%]
scenario:credit_card/is_card_number/
- 🟥
execution_time[+373.397ns; +375.306ns] or [+9.542%; +9.591%] - 🟥
throughput[-22368422.408op/s; -22259368.681op/s] or [-8.753%; -8.710%]
scenario:credit_card/is_card_number/ 3782-8224-6310-005
- 🟥
execution_time[+6.545µs; +6.761µs] or [+7.832%; +8.090%] - 🟥
throughput[-897811.271op/s; -868224.919op/s] or [-7.502%; -7.255%]
scenario:credit_card/is_card_number/37828224631
- 🟥
execution_time[+374.567ns; +376.259ns] or [+9.571%; +9.614%] - 🟥
throughput[-22417401.685op/s; -22311386.704op/s] or [-8.774%; -8.732%]
scenario:credit_card/is_card_number/378282246310005
- 🟩
execution_time[-7.308µs; -7.011µs] or [-8.451%; -8.108%] - 🟩
throughput[+1022395.044op/s; +1062010.366op/s] or [+8.840%; +9.182%]
scenario:credit_card/is_card_number/37828224631000521389798
- 🟥
execution_time[+18.734µs; +18.824µs] or [+36.427%; +36.602%] - 🟥
throughput[-5209827.851op/s; -5191234.326op/s] or [-26.794%; -26.698%]
scenario:credit_card/is_card_number/x371413321323331
- 🟥
execution_time[+1.206µs; +1.208µs] or [+19.970%; +20.010%] - 🟥
throughput[-27619450.831op/s; -27557217.530op/s] or [-16.679%; -16.641%]
scenario:credit_card/is_card_number_no_luhn/
- 🟥
execution_time[+374.937ns; +376.059ns] or [+9.581%; +9.610%] - 🟥
throughput[-22408666.291op/s; -22340466.624op/s] or [-8.769%; -8.742%]
scenario:credit_card/is_card_number_no_luhn/ 3782-8224-6310-005
- 🟥
execution_time[+5.195µs; +5.250µs] or [+7.836%; +7.919%] - 🟥
throughput[-1107673.306op/s; -1095235.443op/s] or [-7.344%; -7.262%]
scenario:credit_card/is_card_number_no_luhn/ 378282246310005
- 🟥
execution_time[+4.280µs; +4.308µs] or [+7.183%; +7.230%] - 🟥
throughput[-1132136.499op/s; -1124447.147op/s] or [-6.745%; -6.700%]
scenario:credit_card/is_card_number_no_luhn/37828224631
- 🟥
execution_time[+375.349ns; +376.505ns] or [+9.593%; +9.622%] - 🟥
throughput[-22434835.575op/s; -22366315.594op/s] or [-8.779%; -8.752%]
scenario:credit_card/is_card_number_no_luhn/378282246310005
- 🟥
execution_time[+3.982µs; +4.032µs] or [+7.025%; +7.113%] - 🟥
throughput[-1172797.875op/s; -1157302.684op/s] or [-6.647%; -6.559%]
scenario:credit_card/is_card_number_no_luhn/37828224631000521389798
- 🟥
execution_time[+18.817µs; +18.888µs] or [+36.589%; +36.726%] - 🟥
throughput[-5223055.461op/s; -5208323.913op/s] or [-26.861%; -26.786%]
scenario:credit_card/is_card_number_no_luhn/x371413321323331
- 🟥
execution_time[+1.207µs; +1.209µs] or [+19.983%; +20.021%] - 🟥
throughput[-27634358.981op/s; -27575006.318op/s] or [-16.686%; -16.650%]
scenario:ip_address/quantize_peer_ip_address_benchmark
- 🟥
execution_time[+437.209ns; +452.702ns] or [+8.583%; +8.888%]
scenario:normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...
- 🟥
execution_time[+104.393µs; +104.754µs] or [+49.942%; +50.115%] - 🟥
throughput[-1597130.945op/s; -1593373.228op/s] or [-33.384%; -33.306%]
scenario:normalization/normalize_name/normalize_name/bad-name
- 🟥
execution_time[+9.921µs; +9.950µs] or [+54.209%; +54.369%] - 🟥
throughput[-19249106.279op/s; -19202232.748op/s] or [-35.229%; -35.143%]
scenario:normalization/normalize_name/normalize_name/good
- 🟥
execution_time[+6.008µs; +6.044µs] or [+56.126%; +56.464%] - 🟥
throughput[-33712570.652op/s; -33574958.108op/s] or [-36.089%; -35.941%]
scenario:normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000...
- 🟥
execution_time[+114.895µs; +115.260µs] or [+22.728%; +22.800%] - 🟥
throughput[-367386.666op/s; -366210.380op/s] or [-18.572%; -18.513%]
scenario:normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて
- 🟥
execution_time[+22.097µs; +22.221µs] or [+4.871%; +4.899%] - 🟥
throughput[-102962.101op/s; -102385.820op/s] or [-4.671%; -4.644%]
scenario:normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters
- 🟥
execution_time[+14.330µs; +14.452µs] or [+8.131%; +8.200%] - 🟥
throughput[-430187.041op/s; -426492.927op/s] or [-7.582%; -7.517%]
scenario:normalization/normalize_service/normalize_service/[empty string]
- 🟥
execution_time[+7.813µs; +7.848µs] or [+20.741%; +20.834%] - 🟥
throughput[-4579741.728op/s; -4557890.871op/s] or [-17.252%; -17.169%]
scenario:normalization/normalize_trace/test_trace
- 🟥
execution_time[+55.575ns; +60.834ns] or [+21.982%; +24.062%]
scenario:redis/obfuscate_redis_string
- 🟥
execution_time[+5.914µs; +6.395µs] or [+17.714%; +19.155%]
scenario:sql/obfuscate_sql_string
- 🟥
execution_time[+10.132µs; +10.213µs] or [+15.077%; +15.198%]
scenario:tags/replace_trace_tags
- 🟥
execution_time[+249.816ns; +257.542ns] or [+10.250%; +10.567%]
Candidate
Candidate benchmark details
Group 1
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 138.372µs | 139.073µs ± 0.350µs | 139.027µs ± 0.188µs | 139.215µs | 139.545µs | 140.323µs | 141.167µs | 1.54% | 1.988 | 7.836 | 0.25% | 0.025µ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 | [139.025µs; 139.122µs] or [-0.035%; +0.035%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 4.266µs | 4.287µs ± 0.006µs | 4.289µs ± 0.001µs | 4.290µs | 4.293µs | 4.297µs | 4.299µs | 0.23% | -1.897 | 3.078 | 0.14% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 232617084.847op/s | 233244861.106op/s ± 330980.513op/s | 233153485.880op/s ± 73824.383op/s | 233239184.185op/s | 234093438.710op/s | 234256828.623op/s | 234406843.634op/s | 0.54% | 1.903 | 3.094 | 0.14% | 23403.857op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 89.892µs | 90.220µs ± 0.379µs | 90.184µs ± 0.068µs | 90.249µs | 90.464µs | 90.610µs | 95.232µs | 5.60% | 11.641 | 151.126 | 0.42% | 0.027µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 10500673.036op/s | 11084156.770op/s ± 44440.188op/s | 11088494.024op/s ± 8427.692op/s | 11096836.849op/s | 11108138.325op/s | 11117655.400op/s | 11124448.200op/s | 0.32% | -11.418 | 147.153 | 0.40% | 3142.396op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 82.254µs | 82.600µs ± 0.356µs | 82.585µs ± 0.059µs | 82.640µs | 82.710µs | 82.781µs | 87.429µs | 5.87% | 12.606 | 169.045 | 0.43% | 0.025µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 11437794.045op/s | 12106776.440op/s ± 49447.735op/s | 12108706.769op/s ± 8697.851op/s | 12118555.326op/s | 12132838.074op/s | 12150260.942op/s | 12157390.176op/s | 0.40% | -12.447 | 166.224 | 0.41% | 3496.483op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 4.275µs | 4.289µs ± 0.003µs | 4.290µs ± 0.001µs | 4.291µs | 4.293µs | 4.295µs | 4.296µs | 0.16% | -0.823 | 2.784 | 0.06% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 232761663.236op/s | 233147208.670op/s ± 151558.148op/s | 233126879.755op/s ± 70640.496op/s | 233206051.698op/s | 233448968.669op/s | 233518482.321op/s | 233894174.521op/s | 0.33% | 0.831 | 2.811 | 0.06% | 10716.779op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 78.998µs | 79.314µs ± 0.138µs | 79.311µs ± 0.089µs | 79.391µs | 79.544µs | 79.708µs | 79.774µs | 0.58% | 0.417 | 0.284 | 0.17% | 0.010µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 12535461.178op/s | 12608112.828op/s ± 21877.018op/s | 12608561.213op/s ± 14178.938op/s | 12623862.894op/s | 12643278.131op/s | 12653573.079op/s | 12658555.948op/s | 0.40% | -0.406 | 0.267 | 0.17% | 1546.939op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 69.022µs | 70.208µs ± 0.324µs | 70.327µs ± 0.055µs | 70.365µs | 70.449µs | 70.505µs | 71.233µs | 1.29% | -1.857 | 3.828 | 0.46% | 0.023µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 14038518.553op/s | 14243644.593op/s ± 66260.318op/s | 14219242.523op/s ± 11049.999op/s | 14240679.823op/s | 14415712.094op/s | 14464984.205op/s | 14488113.668op/s | 1.89% | 1.889 | 3.892 | 0.46% | 4685.312op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 7.234µs | 7.246µs ± 0.003µs | 7.246µs ± 0.002µs | 7.248µs | 7.251µs | 7.254µs | 7.258µs | 0.17% | -0.155 | 1.670 | 0.05% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 137779291.353op/s | 138009104.087op/s ± 64350.113op/s | 138012800.689op/s ± 35118.579op/s | 138040280.156op/s | 138125100.594op/s | 138184333.293op/s | 138229211.679op/s | 0.16% | 0.160 | 1.671 | 0.05% | 4550.240op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 4.273µs | 4.289µs ± 0.003µs | 4.289µs ± 0.001µs | 4.290µs | 4.292µs | 4.295µs | 4.298µs | 0.22% | -0.965 | 5.831 | 0.06% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 232664011.916op/s | 233172000.033op/s ± 147063.761op/s | 233164652.245op/s ± 74787.206op/s | 233229223.622op/s | 233396820.045op/s | 233488438.544op/s | 234045442.351op/s | 0.38% | 0.978 | 5.895 | 0.06% | 10398.978op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 71.394µs | 71.525µs ± 0.048µs | 71.517µs ± 0.018µs | 71.538µs | 71.599µs | 71.680µs | 71.888µs | 0.52% | 2.904 | 17.677 | 0.07% | 0.003µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 13910519.194op/s | 13981117.863op/s ± 9412.058op/s | 13982708.982op/s ± 3519.478op/s | 13985991.631op/s | 13989301.053op/s | 13999370.650op/s | 14006854.955op/s | 0.17% | -2.882 | 17.485 | 0.07% | 665.533op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 63.782µs | 63.875µs ± 0.040µs | 63.878µs ± 0.022µs | 63.900µs | 63.938µs | 63.959µs | 64.015µs | 0.21% | -0.162 | 0.259 | 0.06% | 0.003µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 15621424.236op/s | 15655545.822op/s ± 9770.975op/s | 15654795.213op/s ± 5411.884op/s | 15660282.003op/s | 15673425.083op/s | 15677661.559op/s | 15678335.676op/s | 0.15% | 0.167 | 0.256 | 0.06% | 690.912op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 4.272µs | 4.289µs ± 0.003µs | 4.289µs ± 0.001µs | 4.291µs | 4.293µs | 4.295µs | 4.296µs | 0.16% | -1.533 | 5.968 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 232770422.186op/s | 233162344.642op/s ± 172336.327op/s | 233140933.774op/s ± 75005.225op/s | 233213240.682op/s | 233467662.516op/s | 233528845.331op/s | 234059254.931op/s | 0.39% | 1.545 | 6.037 | 0.07% | 12186.019op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 60.575µs | 60.685µs ± 0.037µs | 60.679µs ± 0.020µs | 60.702µs | 60.755µs | 60.786µs | 60.809µs | 0.21% | 0.532 | 1.547 | 0.06% | 0.003µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 16444843.993op/s | 16478655.485op/s ± 10167.855op/s | 16480165.297op/s ± 5469.945op/s | 16484852.481op/s | 16490124.979op/s | 16506160.630op/s | 16508596.026op/s | 0.17% | -0.526 | 1.545 | 0.06% | 718.976op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 69.086µs | 70.281µs ± 0.253µs | 70.351µs ± 0.042µs | 70.389µs | 70.445µs | 70.487µs | 70.533µs | 0.26% | -3.220 | 10.637 | 0.36% | 0.018µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 14177727.029op/s | 14228872.801op/s ± 51805.692op/s | 14214538.640op/s ± 8524.917op/s | 14223523.318op/s | 14339128.906op/s | 14470977.569op/s | 14474733.189op/s | 1.83% | 3.245 | 10.804 | 0.36% | 3663.216op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 7.233µs | 7.246µs ± 0.003µs | 7.246µs ± 0.002µs | 7.247µs | 7.252µs | 7.255µs | 7.258µs | 0.17% | 0.483 | 2.219 | 0.04% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 137782205.343op/s | 138009247.493op/s ± 60629.709op/s | 138014444.848op/s ± 35569.604op/s | 138046955.463op/s | 138082076.257op/s | 138154188.498op/s | 138246887.318op/s | 0.17% | -0.478 | 2.218 | 0.04% | 4287.168op/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 | [4.287µs; 4.288µs] or [-0.020%; +0.020%] | None | None | None |
| credit_card/is_card_number/ | throughput | [233198990.390op/s; 233290731.822op/s] or [-0.020%; +0.020%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [90.168µs; 90.273µs] or [-0.058%; +0.058%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [11077997.787op/s; 11090315.753op/s] or [-0.056%; +0.056%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [82.551µs; 82.649µs] or [-0.060%; +0.060%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [12099923.459op/s; 12113629.420op/s] or [-0.057%; +0.057%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [4.289µs; 4.290µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [233126204.169op/s; 233168213.172op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [79.295µs; 79.333µs] or [-0.024%; +0.024%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [12605080.883op/s; 12611144.772op/s] or [-0.024%; +0.024%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [70.163µs; 70.253µs] or [-0.064%; +0.064%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [14234461.551op/s; 14252827.636op/s] or [-0.064%; +0.064%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [7.245µs; 7.246µs] or [-0.006%; +0.006%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [138000185.780op/s; 138018022.394op/s] or [-0.006%; +0.006%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [4.288µs; 4.289µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [233151618.410op/s; 233192381.655op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [71.518µs; 71.532µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [13979813.442op/s; 13982422.284op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [63.870µs; 63.881µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [15654191.658op/s; 15656899.985op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [4.288µs; 4.289µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [233138460.484op/s; 233186228.799op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [60.679µs; 60.690µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [16477246.318op/s; 16480064.652op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [70.246µs; 70.316µs] or [-0.050%; +0.050%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [14221693.031op/s; 14236052.572op/s] or [-0.050%; +0.050%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [7.245µs; 7.246µs] or [-0.006%; +0.006%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [138000844.798op/s; 138017650.187op/s] or [-0.006%; +0.006%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 619.363µs | 620.609µs ± 0.974µs | 620.535µs ± 0.326µs | 620.855µs | 621.252µs | 622.045µs | 629.588µs | 1.46% | 6.668 | 56.525 | 0.16% | 0.069µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1588339.975op/s | 1611325.097op/s ± 2502.551op/s | 1611511.435op/s ± 846.686op/s | 1612403.207op/s | 1613517.968op/s | 1614271.102op/s | 1614562.406op/s | 0.19% | -6.602 | 55.765 | 0.15% | 176.957op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 474.852µs | 475.773µs ± 0.308µs | 475.776µs ± 0.181µs | 475.957µs | 476.265µs | 476.554µs | 476.651µs | 0.18% | 0.095 | 0.349 | 0.06% | 0.022µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2097969.662op/s | 2101841.354op/s ± 1359.548op/s | 2101828.270op/s ± 797.554op/s | 2102611.596op/s | 2104075.002op/s | 2105073.921op/s | 2105921.185op/s | 0.19% | -0.091 | 0.348 | 0.06% | 96.135op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 190.084µs | 190.635µs ± 0.299µs | 190.588µs ± 0.165µs | 190.764µs | 191.133µs | 191.635µs | 192.166µs | 0.83% | 1.391 | 3.930 | 0.16% | 0.021µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5203847.378op/s | 5245651.374op/s ± 8198.332op/s | 5246915.117op/s ± 4555.598op/s | 5251284.041op/s | 5256343.269op/s | 5259166.337op/s | 5260842.698op/s | 0.27% | -1.373 | 3.836 | 0.16% | 579.710op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 45.300µs | 45.500µs ± 0.077µs | 45.492µs ± 0.045µs | 45.547µs | 45.630µs | 45.685µs | 45.818µs | 0.72% | 0.578 | 1.253 | 0.17% | 0.005µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 21825703.544op/s | 21977966.865op/s ± 37087.117op/s | 21982061.880op/s ± 21929.299op/s | 22002236.111op/s | 22029370.875op/s | 22062695.545op/s | 22075065.270op/s | 0.42% | -0.563 | 1.218 | 0.17% | 2622.455op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 47.423µs | 47.517µs ± 0.104µs | 47.502µs ± 0.020µs | 47.533µs | 47.597µs | 47.647µs | 48.875µs | 2.89% | 11.075 | 140.972 | 0.22% | 0.007µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 20460481.742op/s | 21045024.069op/s ± 45180.151op/s | 21051536.194op/s ± 8879.677op/s | 21058514.613op/s | 21072544.378op/s | 21083149.995op/s | 21086753.781op/s | 0.17% | -10.941 | 138.615 | 0.21% | 3194.719op/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 | [620.474µs; 620.744µs] or [-0.022%; +0.022%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [1610978.268op/s; 1611671.927op/s] or [-0.022%; +0.022%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [475.731µs; 475.816µs] or [-0.009%; +0.009%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2101652.934op/s; 2102029.774op/s] or [-0.009%; +0.009%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [190.593µs; 190.676µs] or [-0.022%; +0.022%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5244515.165op/s; 5246787.584op/s] or [-0.022%; +0.022%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [45.490µs; 45.511µs] or [-0.023%; +0.023%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [21972826.947op/s; 21983106.783op/s] or [-0.023%; +0.023%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [47.503µs; 47.532µs] or [-0.030%; +0.030%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [21038762.534op/s; 21051285.603op/s] or [-0.030%; +0.030%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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.353µs | 28.711µs ± 15.769µs | 18.868µs ± 0.448µs | 38.975µs | 51.399µs | 57.648µs | 159.281µs | 744.20% | 3.656 | 24.326 | 54.79% | 1.115µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| two way interface | execution_time | [26.526µs; 30.897µs] or [-7.612%; +7.612%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 77.105µs | 77.376µs ± 0.197µs | 77.342µs ± 0.070µs | 77.420µs | 77.620µs | 77.867µs | 79.371µs | 2.62% | 5.862 | 53.095 | 0.25% | 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 | [77.349µs; 77.404µs] or [-0.035%; +0.035%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 311.567µs | 313.600µs ± 1.291µs | 313.314µs ± 0.688µs | 314.172µs | 316.691µs | 317.357µs | 318.667µs | 1.71% | 1.329 | 1.999 | 0.41% | 0.091µs | 1 | 200 |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | 3138067.865op/s | 3188827.367op/s ± 13052.869op/s | 3191683.554op/s ± 7013.740op/s | 3197631.099op/s | 3203939.979op/s | 3209409.990op/s | 3209587.284op/s | 0.56% | -1.302 | 1.905 | 0.41% | 922.977op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 27.922µs | 28.237µs ± 0.099µs | 28.247µs ± 0.064µs | 28.301µs | 28.374µs | 28.425µs | 28.538µs | 1.03% | -0.289 | 0.361 | 0.35% | 0.007µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 35041442.346op/s | 35414499.465op/s ± 123729.259op/s | 35401428.609op/s ± 79498.616op/s | 35496231.461op/s | 35620511.847op/s | 35716774.940op/s | 35813906.847op/s | 1.17% | 0.312 | 0.373 | 0.35% | 8748.980op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 16.452µs | 16.731µs ± 0.129µs | 16.709µs ± 0.074µs | 16.804µs | 16.968µs | 17.049µs | 17.074µs | 2.18% | 0.468 | -0.054 | 0.77% | 0.009µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 58568410.857op/s | 59772553.814op/s ± 457760.381op/s | 59847158.404op/s ± 263425.569op/s | 60042521.739op/s | 60427106.496op/s | 60749570.121op/s | 60782759.353op/s | 1.56% | -0.428 | -0.078 | 0.76% | 32368.547op/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 | [313.421µs; 313.779µs] or [-0.057%; +0.057%] | None | None | None |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | [3187018.365op/s; 3190636.369op/s] or [-0.057%; +0.057%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [28.224µs; 28.251µs] or [-0.048%; +0.048%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [35397351.779op/s; 35431647.150op/s] or [-0.048%; +0.048%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [16.713µs; 16.749µs] or [-0.107%; +0.107%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [59709112.628op/s; 59835995.001op/s] or [-0.106%; +0.106%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 38.874µs | 39.540µs ± 1.138µs | 39.034µs ± 0.076µs | 39.115µs | 41.980µs | 42.043µs | 43.016µs | 10.20% | 1.713 | 1.017 | 2.87% | 0.080µ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 | [39.382µs; 39.697µs] or [-0.399%; +0.399%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 6.253ms | 6.270ms ± 0.007ms | 6.269ms ± 0.004ms | 6.273ms | 6.278ms | 6.291ms | 6.322ms | 0.84% | 2.977 | 18.530 | 0.12% | 0.001ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| concentrator/add_spans_to_concentrator | execution_time | [6.269ms; 6.271ms] or [-0.017%; +0.017%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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.439µs | 3.329µs ± 1.483µs | 3.130µs ± 0.026µs | 3.155µs | 3.782µs | 14.508µs | 15.517µs | 395.66% | 7.453 | 56.213 | 44.44% | 0.105µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| write only interface | execution_time | [3.123µs; 3.535µs] or [-6.175%; +6.175%] | None | None | None |
Group 10
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 296.355ns | 311.029ns ± 16.046ns | 303.852ns ± 5.210ns | 318.121ns | 343.237ns | 358.766ns | 360.413ns | 18.61% | 1.383 | 0.884 | 5.15% | 1.135ns | 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 | [308.806ns; 313.253ns] or [-0.715%; +0.715%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 78.412ms | 78.631ms ± 0.163ms | 78.591ms ± 0.067ms | 78.678ms | 78.961ms | 79.159ms | 79.596ms | 1.28% | 2.290 | 7.597 | 0.21% | 0.012ms | 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 | [78.608ms; 78.654ms] or [-0.029%; +0.029%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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 | 5.483µs | 5.539µs ± 0.033µs | 5.529µs ± 0.024µs | 5.574µs | 5.590µs | 5.602µs | 5.602µs | 1.32% | 0.325 | -1.210 | 0.59% | 0.002µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| ip_address/quantize_peer_ip_address_benchmark | execution_time | [5.534µs; 5.543µs] or [-0.082%; +0.082%] | None | None | None |
Group 13
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 55b16bf6 | 1739794043 | vianney/decode-with-ref |
| 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.632µs | 2.691µs ± 0.018µs | 2.691µs ± 0.007µs | 2.699µs | 2.721µs | 2.725µs | 2.746µs | 2.07% | -0.907 | 2.649 | 0.66% | 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.688µs; 2.693µs] or [-0.092%; +0.092%] | None | None | None |
Baseline
Omitted due to size.
Codecov Report
Attention: Patch coverage is 96.45390% with 10 lines in your changes missing coverage. Please review.
Project coverage is 71.65%. Comparing base (
5ada426) to head (55b16bf). Report is 7 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #883 +/- ##
==========================================
- Coverage 71.90% 71.65% -0.26%
==========================================
Files 324 326 +2
Lines 48077 48329 +252
==========================================
+ Hits 34572 34632 +60
- Misses 13505 13697 +192
| Components | Coverage Δ | |
|---|---|---|
| crashtracker | 42.93% <ø> (-0.30%) |
:arrow_down: |
| crashtracker-ffi | 6.25% <ø> (-0.05%) |
:arrow_down: |
| datadog-alloc | 98.73% <ø> (ø) |
|
| data-pipeline | 92.01% <100.00%> (-0.35%) |
:arrow_down: |
| data-pipeline-ffi | 90.39% <ø> (-1.06%) |
:arrow_down: |
| ddcommon | 80.08% <ø> (ø) |
|
| ddcommon-ffi | 61.05% <ø> (ø) |
|
| ddtelemetry | 61.74% <ø> (ø) |
|
| ddtelemetry-ffi | 22.46% <ø> (ø) |
|
| dogstatsd | 90.01% <ø> (ø) |
|
| dogstatsd-client | 79.77% <ø> (ø) |
|
| ipc | 82.78% <ø> (+0.10%) |
:arrow_up: |
| profiling | 80.04% <ø> (ø) |
|
| profiling-ffi | 70.68% <ø> (ø) |
|
| serverless | 0.00% <ø> (ø) |
|
| sidecar | 40.57% <ø> (-0.94%) |
:arrow_down: |
| sidecar-ffi | 2.05% <ø> (-7.21%) |
:arrow_down: |
| spawn-worker | 54.37% <ø> (ø) |
|
| tinybytes | 91.21% <100.00%> (-1.58%) |
:arrow_down: |
| trace-mini-agent | 72.48% <ø> (ø) |
|
| trace-normalization | 98.23% <ø> (ø) |
|
| trace-obfuscation | 95.96% <ø> (ø) |
|
| trace-protobuf | 77.67% <ø> (ø) |
|
| trace-utils | 93.31% <96.36%> (-0.26%) |
:arrow_down: |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To override this behavior, add the keep-open label or update the PR.