Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: normalize duration so we don't fail parsing spans into protobuf #998

Merged
merged 20 commits into from
Apr 8, 2025

Conversation

astuyve
Copy link
Contributor

@astuyve astuyve commented Apr 3, 2025

What does this PR do?

Fixes a customer issue where they lose a span because the duration was negative for some reason. This causes an error like this today:
"from request body: Error deserializing trace from request body: invalid value: integer 18226454927103518912, expected i64"

Motivation

Got the error, found it was due to a negative duration. We do the same thing in the go agent

Additional Notes

Anything else we should know when reviewing?

How to test the change?

Describe here in detail how the change can be validated.

@astuyve astuyve requested review from a team as code owners April 3, 2025 17:48
@r1viollet
Copy link
Contributor

r1viollet commented Apr 3, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so.debug 23.99 MB 23.99 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.78 MB 7.78 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 77.63 MB 77.63 MB -0% (-8 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so.debug 22.56 MB 22.56 MB -0% (-8 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 7.71 MB 7.71 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 71.86 MB 71.86 MB -0% (-8 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 16.85 MB 16.85 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 61.83 KB 61.83 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 113.05 MB 113.04 MB -0% (-8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 630.61 MB 630.61 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 5.04 MB 5.04 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 61.83 KB 61.83 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 16.06 MB 16.06 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 26.71 MB 26.71 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 14.25 MB 14.25 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 62.78 KB 62.78 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 115.02 MB 115.02 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 622.55 MB 622.55 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 3.81 MB 3.81 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 62.78 KB 62.78 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 16.68 MB 16.68 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 24.61 MB 24.61 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 66.92 MB 66.92 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.25 MB 8.25 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so.debug 23.15 MB 23.15 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 67.84 MB 67.84 MB -0% (-8 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 8.13 MB 8.13 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so.debug 20.77 MB 20.77 MB -0% (-8 B) 👌

@pr-commenter
Copy link

pr-commenter bot commented Apr 3, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-04-08 01:23:06

Comparing candidate commit 2793895 in PR branch aj/span-links-v05-string-compression-fix with baseline commit 4bbc310 in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 52 metrics, 2 unstable metrics.

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 2793895 1744074672 aj/span-links-v05-string-compression-fix
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.315µs 2.391µs ± 0.021µs 2.388µs ± 0.011µs 2.404µs 2.424µs 2.428µs 2.433µs 1.90% -1.114 2.308 0.90% 0.002µ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.388µs; 2.394µs] or [-0.124%; +0.124%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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 68.190µs 68.412µs ± 0.267µs 68.367µs ± 0.062µs 68.469µs 68.592µs 68.641µs 71.886µs 5.15% 11.155 142.707 0.39% 0.019µ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 [68.375µs; 68.449µs] or [-0.054%; +0.054%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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 504.127µs 505.622µs ± 0.611µs 505.641µs ± 0.286µs 505.912µs 506.306µs 506.668µs 511.234µs 1.11% 3.733 34.047 0.12% 0.043µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1956052.287op/s 1977763.930op/s ± 2379.500op/s 1977687.293op/s ± 1119.070op/s 1979046.896op/s 1980766.646op/s 1982533.108op/s 1983627.797op/s 0.30% -3.654 33.153 0.12% 168.256op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 453.902µs 455.505µs ± 0.582µs 455.515µs ± 0.343µs 455.827µs 456.464µs 456.782µs 457.105µs 0.35% -0.006 -0.035 0.13% 0.041µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2187682.125op/s 2195371.560op/s ± 2807.111op/s 2195315.701op/s ± 1655.167op/s 2197062.259op/s 2200226.811op/s 2201693.871op/s 2203119.463op/s 0.36% 0.014 -0.035 0.13% 198.493op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 176.629µs 177.275µs ± 0.225µs 177.284µs ± 0.133µs 177.414µs 177.596µs 177.850µs 178.045µs 0.43% 0.080 0.993 0.13% 0.016µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5616564.537op/s 5640951.375op/s ± 7167.556op/s 5640668.505op/s ± 4219.669op/s 5644942.804op/s 5653350.943op/s 5658383.871op/s 5661596.960op/s 0.37% -0.069 0.984 0.13% 506.823op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.508µs 37.612µs ± 0.046µs 37.603µs ± 0.025µs 37.636µs 37.695µs 37.769µs 37.828µs 0.60% 1.172 2.736 0.12% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26435128.791op/s 26587022.128op/s ± 32759.653op/s 26593498.987op/s ± 18021.741op/s 26606650.881op/s 26629531.766op/s 26650011.725op/s 26660926.785op/s 0.25% -1.159 2.688 0.12% 2316.457op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 48.097µs 48.318µs ± 0.208µs 48.276µs ± 0.176µs 48.536µs 48.621µs 48.668µs 48.774µs 1.03% 0.244 -1.563 0.43% 0.015µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20502800.773op/s 20696398.403op/s ± 88881.614op/s 20714191.167op/s ± 75604.013op/s 20788885.668op/s 20790405.762op/s 20791089.723op/s 20791365.049op/s 0.37% -0.239 -1.569 0.43% 6284.879op/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 [505.538µs; 505.707µs] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1977434.154op/s; 1978093.706op/s] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [455.424µs; 455.585µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2194982.521op/s; 2195760.598op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [177.244µs; 177.307µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5639958.020op/s; 5641944.729op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.606µs; 37.619µs] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26582481.955op/s; 26591562.301op/s] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [48.290µs; 48.347µs] or [-0.060%; +0.060%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [20684080.266op/s; 20708716.540op/s] or [-0.060%; +0.060%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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 208.716µs 209.117µs ± 0.167µs 209.122µs ± 0.095µs 209.216µs 209.421µs 209.483µs 209.579µs 0.22% 0.043 0.143 0.08% 0.012µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4771472.954op/s 4782018.671op/s ± 3817.052op/s 4781898.601op/s ± 2174.544op/s 4784241.188op/s 4788793.712op/s 4790431.656op/s 4791193.148op/s 0.19% -0.038 0.141 0.08% 269.906op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.611µs 18.672µs ± 0.049µs 18.665µs ± 0.010µs 18.679µs 18.716µs 18.772µs 19.265µs 3.21% 9.111 106.986 0.26% 0.003µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 51908860.359op/s 53556296.304op/s ± 136795.493op/s 53575470.254op/s ± 28338.381op/s 53600810.464op/s 53667736.129op/s 53728586.802op/s 53730807.743op/s 0.29% -8.909 103.650 0.25% 9672.902op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.845µs 10.957µs ± 0.037µs 10.962µs ± 0.024µs 10.986µs 11.006µs 11.021µs 11.033µs 0.65% -0.924 1.008 0.34% 0.003µs 1 200
normalization/normalize_name/normalize_name/good throughput 90640718.321op/s 91263059.495op/s ± 311555.274op/s 91226181.697op/s ± 199456.249op/s 91422608.735op/s 91881782.511op/s 92194560.972op/s 92208914.190op/s 1.08% 0.946 1.059 0.34% 22030.285op/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 [209.094µs; 209.140µs] or [-0.011%; +0.011%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4781489.664op/s; 4782547.678op/s] or [-0.011%; +0.011%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.665µs; 18.679µs] or [-0.036%; +0.036%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53537337.765op/s; 53575254.844op/s] or [-0.035%; +0.035%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.952µs; 10.963µs] or [-0.047%; +0.047%] None None None
normalization/normalize_name/normalize_name/good throughput [91219880.931op/s; 91306238.060op/s] or [-0.047%; +0.047%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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 54.215ms 54.416ms ± 0.224ms 54.339ms ± 0.062ms 54.427ms 54.951ms 55.211ms 55.405ms 1.96% 2.353 5.344 0.41% 0.016ms 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 [54.385ms; 54.447ms] or [-0.057%; +0.057%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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.918µs 4.993µs ± 0.040µs 4.987µs ± 0.033µs 5.032µs 5.049µs 5.072µs 5.075µs 1.77% 0.140 -1.172 0.80% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [4.987µs; 4.998µs] or [-0.111%; +0.111%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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 146.786µs 147.607µs ± 0.360µs 147.580µs ± 0.193µs 147.790µs 148.094µs 149.009µs 149.418µs 1.25% 1.239 5.124 0.24% 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 [147.557µs; 147.657µs] or [-0.034%; +0.034%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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.723ns 255.177ns ± 12.142ns 250.223ns ± 2.892ns 254.808ns 284.950ns 287.542ns 288.862ns 15.44% 1.683 1.409 4.75% 0.859ns 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 [253.495ns; 256.860ns] or [-0.659%; +0.659%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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.894µs 3.913µs ± 0.003µs 3.913µs ± 0.001µs 3.915µs 3.916µs 3.919µs 3.920µs 0.17% -1.611 8.620 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255109831.969op/s 255563898.407op/s ± 185824.451op/s 255531760.244op/s ± 88773.244op/s 255660029.006op/s 255867117.595op/s 255934462.065op/s 256804619.107op/s 0.50% 1.628 8.754 0.07% 13139.773op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 81.974µs 82.356µs ± 0.250µs 82.295µs ± 0.149µs 82.482µs 82.823µs 83.286µs 83.426µs 1.37% 1.376 2.527 0.30% 0.018µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 11986686.132op/s 12142570.601op/s ± 36731.829op/s 12151471.278op/s ± 21966.743op/s 12170249.827op/s 12184368.615op/s 12192138.947op/s 12198965.528op/s 0.39% -1.352 2.420 0.30% 2597.333op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 76.466µs 77.113µs ± 0.348µs 77.047µs ± 0.217µs 77.290µs 77.690µs 78.107µs 78.692µs 2.13% 1.056 1.903 0.45% 0.025µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 12707798.160op/s 12968324.692op/s ± 58324.039op/s 12979098.464op/s ± 36546.022op/s 13010032.441op/s 13043963.320op/s 13062808.092op/s 13077743.260op/s 0.76% -1.019 1.758 0.45% 4124.132op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.895µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.915µs 3.917µs 3.919µs 3.920µs 0.16% -1.893 11.084 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255083066.727op/s 255516663.373op/s ± 176838.827op/s 255493165.558op/s ± 71669.355op/s 255566319.460op/s 255812766.938op/s 255972235.504op/s 256753754.257op/s 0.49% 1.913 11.239 0.07% 12504.393op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 72.878µs 73.827µs ± 0.425µs 73.819µs ± 0.300µs 74.135µs 74.464µs 74.929µs 75.066µs 1.69% 0.245 -0.008 0.57% 0.030µs 1 200
credit_card/is_card_number/378282246310005 throughput 13321569.865op/s 13545648.562op/s ± 77894.725op/s 13546718.094op/s ± 55320.852op/s 13596248.130op/s 13677589.511op/s 13701359.936op/s 13721510.839op/s 1.29% -0.212 -0.042 0.57% 5507.989op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 51.834µs 52.123µs ± 0.082µs 52.134µs ± 0.053µs 52.181µs 52.246µs 52.280µs 52.320µs 0.36% -0.525 0.455 0.16% 0.006µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19113035.688op/s 19185503.627op/s ± 30357.926op/s 19181242.691op/s ± 19500.592op/s 19204954.404op/s 19236121.406op/s 19264907.593op/s 19292191.596op/s 0.58% 0.535 0.473 0.16% 2146.630op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.441µs 6.607µs ± 0.063µs 6.597µs ± 0.043µs 6.654µs 6.711µs 6.744µs 6.756µs 2.41% 0.033 -0.370 0.95% 0.004µs 1 200
credit_card/is_card_number/x371413321323331 throughput 148014450.668op/s 151376981.020op/s ± 1437446.663op/s 151575721.780op/s ± 999478.219op/s 152530091.643op/s 153689750.800op/s 154412133.590op/s 155260696.965op/s 2.43% 0.014 -0.353 0.95% 101642.828op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.896µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.915µs 3.919µs 3.923µs 3.929µs 0.38% 0.010 8.683 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254535463.315op/s 255485126.425op/s ± 199215.611op/s 255504177.495op/s ± 63928.047op/s 255560612.588op/s 255759781.643op/s 255923693.999op/s 256659304.412op/s 0.45% 0.015 8.740 0.08% 14086.671op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 63.818µs 63.956µs ± 0.075µs 63.935µs ± 0.040µs 63.998µs 64.112µs 64.172µs 64.220µs 0.45% 0.957 0.792 0.12% 0.005µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15571548.737op/s 15635690.508op/s ± 18199.255op/s 15640900.078op/s ± 9833.761op/s 15648418.119op/s 15657976.344op/s 15666699.725op/s 15669572.823op/s 0.18% -0.951 0.776 0.12% 1286.882op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.414µs 57.556µs ± 0.097µs 57.535µs ± 0.038µs 57.586µs 57.702µs 57.919µs 58.254µs 1.25% 2.885 14.537 0.17% 0.007µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17166196.405op/s 17374454.628op/s ± 29220.736op/s 17380752.559op/s ± 11618.278op/s 17390599.511op/s 17406758.786op/s 17414822.853op/s 17417459.261op/s 0.21% -2.843 14.164 0.17% 2066.218op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.895µs 3.914µs ± 0.003µs 3.914µs ± 0.001µs 3.915µs 3.919µs 3.922µs 3.926µs 0.30% -0.481 5.252 0.09% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254724262.730op/s 255508159.652op/s ± 218527.509op/s 255497611.102op/s ± 91934.696op/s 255584393.972op/s 255841900.900op/s 255986551.597op/s 256728316.631op/s 0.48% 0.499 5.311 0.09% 15452.228op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.573µs 54.740µs ± 0.192µs 54.671µs ± 0.030µs 54.717µs 55.138µs 55.449µs 55.903µs 2.25% 2.691 8.679 0.35% 0.014µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17888264.038op/s 18268479.127op/s ± 63477.827op/s 18291095.897op/s ± 10084.530op/s 18299481.667op/s 18311685.328op/s 18322265.603op/s 18324076.003op/s 0.18% -2.656 8.365 0.35% 4488.560op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 51.942µs 52.115µs ± 0.072µs 52.115µs ± 0.049µs 52.168µs 52.226µs 52.247µs 52.286µs 0.33% -0.119 -0.640 0.14% 0.005µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19125679.522op/s 19188234.106op/s ± 26336.522op/s 19188502.254op/s ± 18102.309op/s 19205520.627op/s 19230105.696op/s 19245240.403op/s 19252364.506op/s 0.33% 0.124 -0.638 0.14% 1862.273op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.465µs 6.639µs ± 0.070µs 6.634µs ± 0.049µs 6.686µs 6.755µs 6.774µs 6.785µs 2.26% -0.088 -0.683 1.05% 0.005µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 147391824.022op/s 150645090.445op/s ± 1584086.192op/s 150728215.311op/s ± 1105862.696op/s 151745961.716op/s 153430512.393op/s 153785494.143op/s 154673127.200op/s 2.62% 0.130 -0.664 1.05% 112011.809op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
credit_card/is_card_number/ execution_time [3.913µs; 3.913µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255538144.926op/s; 255589651.889op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [82.321µs; 82.390µs] or [-0.042%; +0.042%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12137479.923op/s; 12147661.279op/s] or [-0.042%; +0.042%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [77.064µs; 77.161µs] or [-0.063%; +0.063%] None None None
credit_card/is_card_number/ 378282246310005 throughput [12960241.542op/s; 12976407.843op/s] or [-0.062%; +0.062%] None None None
credit_card/is_card_number/37828224631 execution_time [3.913µs; 3.914µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631 throughput [255492155.212op/s; 255541171.533op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/378282246310005 execution_time [73.768µs; 73.886µs] or [-0.080%; +0.080%] None None None
credit_card/is_card_number/378282246310005 throughput [13534853.103op/s; 13556444.022op/s] or [-0.080%; +0.080%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.111µs; 52.134µs] or [-0.022%; +0.022%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19181296.310op/s; 19189710.943op/s] or [-0.022%; +0.022%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.598µs; 6.615µs] or [-0.132%; +0.132%] None None None
credit_card/is_card_number/x371413321323331 throughput [151177764.737op/s; 151576197.303op/s] or [-0.132%; +0.132%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.914µs; 3.915µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255457517.057op/s; 255512735.792op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [63.946µs; 63.967µs] or [-0.016%; +0.016%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15633168.266op/s; 15638212.749op/s] or [-0.016%; +0.016%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [57.542µs; 57.569µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17370404.915op/s; 17378504.341op/s] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.913µs; 3.914µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255477873.841op/s; 255538445.463op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.713µs; 54.766µs] or [-0.049%; +0.049%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18259681.711op/s; 18277276.543op/s] or [-0.048%; +0.048%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.105µs; 52.125µs] or [-0.019%; +0.019%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19184584.118op/s; 19191884.095op/s] or [-0.019%; +0.019%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.629µs; 6.649µs] or [-0.146%; +0.146%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [150425551.334op/s; 150864629.556op/s] or [-0.146%; +0.146%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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.193µs 3.235µs ± 1.483µs 3.036µs ± 0.022µs 3.053µs 3.706µs 13.938µs 16.197µs 433.58% 7.468 57.079 45.73% 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.030µs; 3.441µs] or [-6.353%; +6.353%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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 32.906µs 33.872µs ± 1.254µs 33.097µs ± 0.100µs 35.390µs 36.004µs 36.093µs 36.252µs 9.53% 0.923 -1.075 3.69% 0.089µ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.698µs; 34.045µs] or [-0.513%; +0.513%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
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 5.976ms 5.991ms ± 0.007ms 5.990ms ± 0.003ms 5.994ms 5.999ms 6.008ms 6.046ms 0.93% 3.270 22.564 0.11% 0.000ms 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 [5.990ms; 5.992ms] or [-0.016%; +0.016%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 2793895 1744074672 aj/span-links-v05-string-compression-fix
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 17.838µs 25.987µs ± 11.041µs 18.017µs ± 0.072µs 35.245µs 43.844µs 52.845µs 95.489µs 430.01% 1.962 7.592 42.38% 0.781µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.456µs; 27.517µs] or [-5.888%; +5.888%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Apr 3, 2025

Codecov Report

Attention: Patch coverage is 91.66667% with 2 lines in your changes missing coverage. Please review.

Project coverage is 71.45%. Comparing base (4bbc310) to head (2793895).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #998      +/-   ##
==========================================
- Coverage   71.47%   71.45%   -0.02%     
==========================================
  Files         336      337       +1     
  Lines       50496    50509      +13     
==========================================
+ Hits        36091    36093       +2     
- Misses      14405    14416      +11     
Components Coverage Δ
crashtracker 42.66% <ø> (-0.06%) ⬇️
crashtracker-ffi 6.30% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 90.74% <ø> (ø)
data-pipeline-ffi 90.35% <ø> (ø)
ddcommon 79.95% <ø> (ø)
ddcommon-ffi 66.37% <ø> (ø)
ddtelemetry 60.28% <ø> (ø)
ddtelemetry-ffi 21.43% <ø> (ø)
dogstatsd-client 82.57% <ø> (ø)
ipc 82.42% <ø> (ø)
profiling 77.58% <ø> (ø)
profiling-ffi 62.28% <ø> (ø)
serverless 0.00% <ø> (ø)
sidecar 40.95% <ø> (ø)
sidecar-ffi 0.58% <ø> (ø)
spawn-worker 54.37% <ø> (ø)
tinybytes 91.59% <ø> (ø)
trace-mini-agent 73.82% <ø> (ø)
trace-normalization 98.24% <ø> (ø)
trace-obfuscation 96.00% <ø> (ø)
trace-protobuf 78.50% <91.66%> (+0.36%) ⬆️
trace-utils 93.05% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@astuyve astuyve requested a review from paullegranddc April 8, 2025 01:11
@astuyve astuyve enabled auto-merge (squash) April 8, 2025 01:19
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

serializer.rs but it's mean for deserializing?
Should we change the name of it?

Comment on lines +63 to +104
".pb.Span.service",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
);
config.field_attribute(
".pb.Span.name",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
);
config.field_attribute(
".pb.Span.resource",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
);
config.field_attribute(
".pb.Span.traceID",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
);
config.field_attribute(
".pb.Span.spanID",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
);
config.field_attribute(
".pb.Span.parentID",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
);
config.field_attribute(
".pb.Span.start",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
);
config.field_attribute(
".pb.Span.duration",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_duration\")]",
);
config.field_attribute(
".pb.Span.meta",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
);
config.field_attribute(
".pb.Span.metrics",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
);
config.field_attribute(
".pb.Span.type",
"#[serde(default)] #[serde(deserialize_with = \"crate::serializers::deserialize_null_into_default\")]",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know we are only targeting duration, does it make sense to then apply it to everything if we weren't doing it before?

Or is this mainly because we might reject when any of these fields are empty?

@astuyve astuyve merged commit a0b92b6 into main Apr 8, 2025
35 checks passed
@astuyve astuyve deleted the aj/span-links-v05-string-compression-fix branch April 8, 2025 01:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants