Skip to content

Conversation

@morrisonlevi
Copy link
Contributor

@morrisonlevi morrisonlevi commented May 19, 2025

What does this PR do?

Converts from lz4 compression to zstd for file uploads in the profiler.

Breaking Change

This is a breaking change in the sense that tooling and tests may have previously assumed that the compression is lz4. Using an lz4 decompressor on zstd input will obviously fail.

There are some Rust-level changes such as InternalProfile::new -> try_new but only PHP will really be affected by this.

Motivation

tl;dr Generally faster while creating smaller files.

zstd may have a better tradeoff for performance to compressed size.

Here are some benchmarks on compressors for a CPU profile which I cannot share publicly yet. We're working on anonymizing it so we can commit these to the repository. Throughput is in MiB/s. Utility is the compression ratio multiplied by throughput. This is on an Apple M1 Max.

Algo.      Size     Ratio    Throughput     Utility
None    2363410     1.000     11,746.     11,746.
lz4     1215720     1.944        459.23      892.74
zstd-1   778653     3.035        518.39    1,573.31
zstd-2   745217     3.171        350.07    1,110.07
zstd-3   698466     3.384        277.35      938.55
zstd-4   694724     3.402        270.86      921.47

I tested zstd-5 and zstd-6 informally, and compression rations were incrementally better, but you lose throughput steadily. Sticking to something in the level 1-4 range seems better.

And here's from another, also not public set of data:

Algo.      Size     Ratio    Throughput     Utility
None    5804495     1.0000    11.901.     11,901.
lz4     1467466     3.9554       760.52    3,008.1
zstd-1   746324     7.7774       728.48    5,665.6
zstd-2   727673     7.9768       639.62    5,102.1
zstd-3   696252     8.3368       585.82    4,883.9
zstd-4   696241     8.3369       569.99    4,751.9

My personal opinion is that zstd-1 is a safe upgrade. The performance is roughly similar to lz4, but the compression is much better.. Moving to a higher level is something that could be discussed.

Additional Notes

Currently lacks tests, pushed to see if this will cause build issues or significant artifact size bloat.

How to test the change?

As noted in Breaking Change, this adjusts the outputs to be zstd compressed instead of lz4 compressed. Tests which work on compressed files need updated.

@github-actions github-actions bot added the profiling Relates to the profiling* modules. label May 19, 2025
@morrisonlevi morrisonlevi added the enhancement New feature or request label May 19, 2025
@r1viollet
Copy link
Contributor

r1viollet commented May 19, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.25 MB 7.50 MB +3.44% (+256.00 KB) ⚠️
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 71.36 MB 82.73 MB +15.93% (+11.36 MB) 🚨
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.20 MB 9.54 MB +3.70% (+349.22 KB) ⚠️
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 83.71 MB 95.91 MB +14.57% (+12.20 MB) 🚨
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 18.61 MB 19.00 MB +2.05% (+391.50 KB) ⚠️
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 65.77 KB 65.77 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 131.06 MB 131.59 MB +.40% (+544.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 692.07 MB 692.97 MB +.13% (+926.94 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 5.93 MB 6.31 MB +6.39% (+389.00 KB) 🚨
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 65.77 KB 65.77 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 17.51 MB 19.01 MB +8.51% (+1.49 MB) 🚨
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 32.46 MB 36.80 MB +13.35% (+4.33 MB) 🚨
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 15.85 MB 16.09 MB +1.53% (+248.50 KB) ⚠️
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 66.79 KB 66.79 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 133.16 MB 133.71 MB +.41% (+568.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 680.69 MB 681.01 MB +.04% (+320.63 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.54 MB 4.85 MB +6.70% (+312.50 KB) 🚨
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 66.79 KB 66.79 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 18.66 MB 20.18 MB +8.16% (+1.52 MB) 🚨
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 30.52 MB 34.56 MB +13.24% (+4.04 MB) 🚨
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 63.98 MB 71.71 MB +12.07% (+7.72 MB) 🚨
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.56 MB 8.91 MB +4.01% (+352.00 KB) ⚠️
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 78.42 MB 90.69 MB +15.63% (+12.26 MB) 🚨
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.91 MB 10.25 MB +3.43% (+348.65 KB) ⚠️

@pr-commenter
Copy link

pr-commenter bot commented May 19, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-10-30 15:25:05

Comparing candidate commit 08985b3 in PR branch PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog with baseline commit 853e167 in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 55 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 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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.968µs 5.045µs ± 0.065µs 5.007µs ± 0.033µs 5.109µs 5.154µs 5.160µs 5.162µs 3.09% 0.491 -1.347 1.28% 0.005µ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.036µs; 5.054µs] or [-0.178%; +0.178%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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 59.906ms 60.372ms ± 1.927ms 60.117ms ± 0.074ms 60.191ms 60.488ms 73.652ms 79.431ms 32.13% 8.266 69.013 3.18% 0.136ms 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 [60.105ms; 60.639ms] or [-0.442%; +0.442%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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 171.440ns 176.325ns ± 3.676ns 175.547ns ± 2.239ns 178.128ns 183.370ns 187.750ns 191.422ns 9.04% 1.314 2.026 2.08% 0.260ns 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 [175.815ns; 176.834ns] or [-0.289%; +0.289%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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 159.622µs 160.396µs ± 0.305µs 160.339µs ± 0.149µs 160.512µs 160.883µs 161.426µs 161.774µs 0.89% 1.439 4.173 0.19% 0.022µ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 [160.354µs; 160.439µs] or [-0.026%; +0.026%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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.207µs 3.212µs ± 1.435µs 3.009µs ± 0.027µs 3.034µs 3.664µs 13.856µs 14.900µs 395.23% 7.399 55.737 44.55% 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 [3.013µs; 3.411µs] or [-6.190%; +6.190%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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.635µs 34.235µs ± 0.984µs 33.795µs ± 0.070µs 33.921µs 36.274µs 36.328µs 38.652µs 14.37% 1.856 2.160 2.87% 0.070µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [34.098µs; 34.371µs] or [-0.398%; +0.398%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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.573µs 25.110µs ± 9.853µs 17.767µs ± 0.140µs 34.183µs 43.617µs 53.143µs 72.008µs 305.29% 1.189 1.486 39.14% 0.697µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [23.745µs; 26.476µs] or [-5.438%; +5.438%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 14.192ms 14.234ms ± 0.032ms 14.229ms ± 0.010ms 14.239ms 14.279ms 14.358ms 14.447ms 1.54% 3.475 15.727 0.23% 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.230ms; 14.239ms] or [-0.031%; +0.031%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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 6.231ms 6.404ms ± 0.040ms 6.410ms ± 0.014ms 6.424ms 6.445ms 6.459ms 6.533ms 1.92% -1.984 5.957 0.63% 0.003ms 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 [6.398ms; 6.409ms] or [-0.087%; +0.087%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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.665ms 10.703ms ± 0.016ms 10.701ms ± 0.009ms 10.710ms 10.730ms 10.748ms 10.812ms 1.04% 1.821 9.225 0.15% 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.701ms; 10.705ms] or [-0.021%; +0.021%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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.342µs 2.407µs ± 0.018µs 2.407µs ± 0.007µs 2.417µs 2.439µs 2.447µs 2.461µs 2.27% -0.824 2.748 0.74% 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.405µs; 2.410µs] or [-0.103%; +0.103%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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 242.244ns 253.136ns ± 13.854ns 246.480ns ± 2.918ns 253.810ns 283.613ns 293.676ns 297.264ns 20.60% 1.604 1.402 5.46% 0.980ns 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 [251.216ns; 255.056ns] or [-0.758%; +0.758%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 185.593µs 186.078µs ± 0.237µs 186.049µs ± 0.135µs 186.176µs 186.541µs 186.843µs 187.133µs 0.58% 1.332 2.742 0.13% 0.017µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5343793.631op/s 5374109.927op/s ± 6845.317op/s 5374920.167op/s ± 3902.305op/s 5378925.283op/s 5382475.587op/s 5384769.499op/s 5388148.767op/s 0.25% -1.320 2.697 0.13% 484.037op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.804µs 17.911µs ± 0.038µs 17.910µs ± 0.024µs 17.934µs 17.977µs 18.014µs 18.025µs 0.64% 0.234 0.567 0.21% 0.003µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 55477467.524op/s 55831242.004op/s ± 118420.037op/s 55834991.180op/s ± 75125.960op/s 55907364.800op/s 56010594.571op/s 56111504.063op/s 56167498.087op/s 0.60% -0.218 0.558 0.21% 8373.561op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.507µs 10.565µs ± 0.028µs 10.572µs ± 0.018µs 10.587µs 10.602µs 10.615µs 10.675µs 0.98% -0.049 -0.211 0.27% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 93672759.890op/s 94651219.484op/s ± 255324.248op/s 94591515.174op/s ± 165462.722op/s 94828915.167op/s 95034494.464op/s 95045422.532op/s 95170871.369op/s 0.61% 0.063 -0.249 0.27% 18054.151op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [186.045µs; 186.111µs] or [-0.018%; +0.018%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5373161.232op/s; 5375058.622op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.906µs; 17.916µs] or [-0.029%; +0.029%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55814830.125op/s; 55847653.882op/s] or [-0.029%; +0.029%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.561µs; 10.569µs] or [-0.037%; +0.037%] None None None
normalization/normalize_name/normalize_name/good throughput [94615833.999op/s; 94686604.969op/s] or [-0.037%; +0.037%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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 121.584µs 122.841µs ± 1.240µs 122.644µs ± 0.380µs 123.087µs 123.976µs 126.996µs 135.005µs 10.08% 5.885 49.051 1.01% 0.088µ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 [122.669µs; 123.013µs] or [-0.140%; +0.140%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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.898µs 3.916µs ± 0.003µs 3.916µs ± 0.002µs 3.917µs 3.920µs 3.921µs 3.921µs 0.13% -1.266 7.727 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255044722.701op/s 255391074.622op/s ± 176088.433op/s 255381804.051op/s ± 118922.918op/s 255510533.866op/s 255643520.922op/s 255704396.171op/s 256547253.664op/s 0.46% 1.283 7.853 0.07% 12451.333op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.912µs 78.753µs ± 0.684µs 78.560µs ± 0.440µs 79.181µs 80.080µs 80.949µs 81.011µs 3.12% 1.018 0.591 0.87% 0.048µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12344028.856op/s 12698873.297op/s ± 109407.928op/s 12729100.819op/s ± 71367.652op/s 12783249.150op/s 12822345.309op/s 12832718.994op/s 12835001.048op/s 0.83% -0.979 0.468 0.86% 7736.309op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 71.438µs 71.866µs ± 0.294µs 71.830µs ± 0.227µs 72.054µs 72.372µs 72.708µs 72.909µs 1.50% 0.735 0.329 0.41% 0.021µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13715742.606op/s 13914940.516op/s ± 56771.024op/s 13921688.415op/s ± 43986.224op/s 13965920.388op/s 13987960.842op/s 13996497.084op/s 13998216.627op/s 0.55% -0.714 0.269 0.41% 4014.318op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.894µs 3.916µs ± 0.003µs 3.916µs ± 0.002µs 3.918µs 3.921µs 3.922µs 3.924µs 0.21% -1.342 8.069 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254856137.004op/s 255385380.776op/s ± 216261.981op/s 255384357.708op/s ± 148110.323op/s 255519321.156op/s 255679877.421op/s 255746667.679op/s 256822669.176op/s 0.56% 1.363 8.231 0.08% 15292.031op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 68.253µs 68.740µs ± 0.286µs 68.706µs ± 0.172µs 68.882µs 69.218µs 69.797µs 69.904µs 1.74% 1.160 2.256 0.41% 0.020µs 1 200
credit_card/is_card_number/378282246310005 throughput 14305368.070op/s 14547797.058op/s ± 60223.727op/s 14554705.770op/s ± 36547.504op/s 14591217.182op/s 14631013.814op/s 14643379.867op/s 14651289.770op/s 0.66% -1.124 2.113 0.41% 4258.461op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 45.445µs 45.728µs ± 0.110µs 45.739µs ± 0.074µs 45.807µs 45.893µs 45.937µs 45.965µs 0.49% -0.400 -0.347 0.24% 0.008µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21755508.614op/s 21868609.586op/s ± 52459.210op/s 21863071.103op/s ± 35520.626op/s 21904771.969op/s 21965713.405op/s 22002542.210op/s 22004634.236op/s 0.65% 0.411 -0.337 0.24% 3709.426op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.564µs 6.624µs ± 0.015µs 6.627µs ± 0.010µs 6.636µs 6.642µs 6.646µs 6.648µs 0.31% -1.190 1.589 0.23% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 150422002.362op/s 150963544.609op/s ± 353224.551op/s 150888724.114op/s ± 219766.358op/s 151153697.894op/s 151657648.235op/s 152118844.831op/s 152349139.086op/s 0.97% 1.206 1.644 0.23% 24976.748op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.894µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.916µs 3.919µs 3.922µs 3.923µs 0.20% -1.369 11.794 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254920667.292op/s 255432347.498op/s ± 192918.645op/s 255439167.165op/s ± 116325.083op/s 255559564.562op/s 255663563.321op/s 255724206.468op/s 256812930.426op/s 0.54% 1.396 12.003 0.08% 13641.408op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.580µs 65.757µs ± 0.062µs 65.756µs ± 0.040µs 65.795µs 65.859µs 65.898µs 65.916µs 0.24% -0.001 0.041 0.09% 0.004µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15170724.191op/s 15207551.444op/s ± 14273.138op/s 15207626.595op/s ± 9275.778op/s 15216894.074op/s 15227967.754op/s 15241771.451op/s 15248475.402op/s 0.27% 0.007 0.042 0.09% 1009.263op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.360µs 53.427µs ± 0.033µs 53.425µs ± 0.021µs 53.446µs 53.485µs 53.523µs 53.525µs 0.19% 0.548 0.484 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18682687.668op/s 18717197.703op/s ± 11458.047op/s 18717653.555op/s ± 7311.764op/s 18724925.221op/s 18733672.217op/s 18738952.970op/s 18740784.742op/s 0.12% -0.544 0.476 0.06% 810.206op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.898µs 3.915µs ± 0.003µs 3.915µs ± 0.001µs 3.916µs 3.919µs 3.921µs 3.922µs 0.18% -0.769 7.636 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254997960.016op/s 255448348.402op/s ± 167118.072op/s 255458500.777op/s ± 91005.374op/s 255547129.280op/s 255664481.747op/s 255706696.193op/s 256521751.790op/s 0.42% 0.787 7.746 0.07% 11817.032op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.148µs 50.215µs ± 0.032µs 50.214µs ± 0.025µs 50.237µs 50.267µs 50.285µs 50.306µs 0.18% 0.241 -0.426 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19878348.483op/s 19914383.692op/s ± 12542.287op/s 19914693.419op/s ± 9736.208op/s 19924537.310op/s 19933785.844op/s 19939122.272op/s 19941159.620op/s 0.13% -0.239 -0.428 0.06% 886.874op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 45.438µs 45.734µs ± 0.095µs 45.743µs ± 0.060µs 45.799µs 45.871µs 45.907µs 45.942µs 0.43% -0.556 0.192 0.21% 0.007µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21766544.960op/s 21865784.462op/s ± 45438.200op/s 21861070.903op/s ± 28756.449op/s 21892388.576op/s 21948995.589op/s 21991918.551op/s 22007847.255op/s 0.67% 0.568 0.210 0.21% 3212.966op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.594µs 6.634µs ± 0.009µs 6.636µs ± 0.004µs 6.641µs 6.645µs 6.647µs 6.649µs 0.19% -1.686 3.895 0.14% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 150402918.355op/s 150730647.930op/s ± 210543.518op/s 150695920.050op/s ± 102071.936op/s 150791042.163op/s 151091747.164op/s 151431639.446op/s 151642167.094op/s 0.63% 1.699 3.951 0.14% 14887.675op/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.915µs; 3.916µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255366670.459op/s; 255415478.785op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [78.658µs; 78.848µs] or [-0.120%; +0.120%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12683710.410op/s; 12714036.183op/s] or [-0.119%; +0.119%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.826µs; 71.907µs] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13907072.598op/s; 13922808.434op/s] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/37828224631 execution_time [3.915µs; 3.916µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/37828224631 throughput [255355408.945op/s; 255415352.606op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/378282246310005 execution_time [68.700µs; 68.780µs] or [-0.058%; +0.058%] None None None
credit_card/is_card_number/378282246310005 throughput [14539450.629op/s; 14556143.488op/s] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.713µs; 45.743µs] or [-0.033%; +0.033%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [21861339.244op/s; 21875879.928op/s] or [-0.033%; +0.033%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.622µs; 6.626µs] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/x371413321323331 throughput [150914591.083op/s; 151012498.134op/s] or [-0.032%; +0.032%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.915µs; 3.915µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ throughput [255405610.830op/s; 255459084.167op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.748µs; 65.765µs] or [-0.013%; +0.013%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15205573.324op/s; 15209529.564op/s] or [-0.013%; +0.013%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.422µs; 53.431µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18715609.728op/s; 18718785.678op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.914µs; 3.915µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255425187.444op/s; 255471509.359op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.211µs; 50.219µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19912645.452op/s; 19916121.932op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.721µs; 45.747µs] or [-0.029%; +0.029%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [21859487.165op/s; 21872081.760op/s] or [-0.029%; +0.029%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.633µs; 6.636µs] or [-0.019%; +0.019%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [150701468.624op/s; 150759827.237op/s] or [-0.019%; +0.019%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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 496.307µs 496.975µs ± 0.494µs 496.939µs ± 0.215µs 497.141µs 497.481µs 497.998µs 502.244µs 1.07% 6.181 62.907 0.10% 0.035µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1991063.444op/s 2012174.838op/s ± 1988.552op/s 2012318.295op/s ± 870.778op/s 2013196.897op/s 2014233.187op/s 2014719.839op/s 2014883.497op/s 0.13% -6.102 61.786 0.10% 140.612op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 370.424µs 371.336µs ± 0.362µs 371.312µs ± 0.227µs 371.537µs 372.025µs 372.325µs 372.778µs 0.39% 0.677 1.024 0.10% 0.026µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2682560.488op/s 2692980.905op/s ± 2622.188op/s 2693155.924op/s ± 1647.965op/s 2694887.292op/s 2696489.386op/s 2698007.394op/s 2699607.195op/s 0.24% -0.670 1.007 0.10% 185.417op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 168.457µs 168.820µs ± 0.144µs 168.814µs ± 0.089µs 168.906µs 169.071µs 169.177µs 169.352µs 0.32% 0.504 0.820 0.09% 0.010µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5904849.529op/s 5923465.046op/s ± 5053.959op/s 5923678.092op/s ± 3107.499op/s 5926642.637op/s 5930957.258op/s 5934502.131op/s 5936241.180op/s 0.21% -0.498 0.807 0.09% 357.369op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.161µs 36.447µs ± 0.099µs 36.442µs ± 0.067µs 36.509µs 36.629µs 36.688µs 36.743µs 0.82% 0.333 0.075 0.27% 0.007µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 27216186.010op/s 27436952.863op/s ± 74477.225op/s 27440625.750op/s ± 50509.706op/s 27489826.382op/s 27550188.463op/s 27573035.714op/s 27653922.546op/s 0.78% -0.317 0.064 0.27% 5266.335op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.205µs 46.321µs ± 0.117µs 46.312µs ± 0.045µs 46.357µs 46.418µs 46.480µs 47.757µs 3.12% 9.322 111.810 0.25% 0.008µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 20939431.299op/s 21588470.998op/s ± 53266.421op/s 21592657.633op/s ± 20916.613op/s 21613722.553op/s 21631638.437op/s 21637678.889op/s 21642752.227op/s 0.23% -9.119 108.496 0.25% 3766.505op/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 [496.907µs; 497.044µs] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2011899.244op/s; 2012450.433op/s] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [371.286µs; 371.386µs] or [-0.014%; +0.014%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2692617.495op/s; 2693344.315op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [168.800µs; 168.840µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5922764.616op/s; 5924165.476op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [36.434µs; 36.461µs] or [-0.038%; +0.038%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27426631.036op/s; 27447274.690op/s] or [-0.038%; +0.038%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.305µs; 46.338µs] or [-0.035%; +0.035%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21581088.785op/s; 21595853.212op/s] or [-0.034%; +0.034%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 08985b3 1761836837 PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog
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 86.226µs 86.494µs ± 0.277µs 86.462µs ± 0.051µs 86.514µs 86.686µs 86.826µs 90.126µs 4.24% 11.380 146.243 0.32% 0.020µ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 [86.456µs; 86.532µs] or [-0.044%; +0.044%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented May 19, 2025

Codecov Report

❌ Patch coverage is 68.65672% with 63 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.03%. Comparing base (0cf70d0) to head (a612a1c).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1065      +/-   ##
==========================================
- Coverage   72.09%   72.03%   -0.07%     
==========================================
  Files         368      369       +1     
  Lines       58111    58241     +130     
==========================================
+ Hits        41896    41954      +58     
- Misses      16215    16287      +72     
Components Coverage Δ
datadog-crashtracker 50.67% <ø> (ø)
datadog-crashtracker-ffi 5.86% <ø> (ø)
datadog-alloc 98.73% <ø> (ø)
data-pipeline 88.19% <ø> (ø)
data-pipeline-ffi 88.19% <ø> (ø)
ddcommon 80.93% <ø> (-0.03%) ⬇️
ddcommon-ffi 73.84% <ø> (ø)
ddtelemetry 60.02% <ø> (+0.03%) ⬆️
ddtelemetry-ffi 21.24% <ø> (ø)
dogstatsd-client 83.26% <ø> (ø)
datadog-ipc 82.39% <ø> (ø)
datadog-profiling 76.50% <68.65%> (-0.40%) ⬇️
datadog-profiling-ffi 62.11% <70.00%> (-0.01%) ⬇️
datadog-sidecar 37.62% <ø> (ø)
datdog-sidecar-ffi 15.88% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
tinybytes 92.44% <ø> (ø)
datadog-trace-normalization 98.24% <ø> (ø)
datadog-trace-obfuscation 94.17% <ø> (ø)
datadog-trace-protobuf 59.65% <ø> (ø)
datadog-trace-utils 90.19% <ø> (ø)
datadog-tracer-flare 64.98% <ø> (ø)
datadog-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@morrisonlevi morrisonlevi force-pushed the PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog branch from 80c8f07 to 0d6cabc Compare May 19, 2025 22:56
@morrisonlevi morrisonlevi force-pushed the PROF-11830-Add-upload-compression-configuration-to-libdatadog branch 2 times, most recently from d301705 to 8fa167e Compare May 25, 2025 19:25
@morrisonlevi morrisonlevi changed the title feat(profiling): add zstd as a compression option feat(profiling): zstd as a compression option May 25, 2025
@morrisonlevi morrisonlevi force-pushed the PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog branch 2 times, most recently from 8788621 to 714ecc0 Compare May 27, 2025 16:33
@morrisonlevi morrisonlevi force-pushed the PROF-11830-Add-upload-compression-configuration-to-libdatadog branch from 5d54a41 to 9cafb27 Compare May 27, 2025 16:42
@morrisonlevi morrisonlevi force-pushed the PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog branch from 714ecc0 to 5ed02e4 Compare May 27, 2025 16:42
@morrisonlevi morrisonlevi force-pushed the PROF-11830-Add-upload-compression-configuration-to-libdatadog branch from 9cafb27 to c4c8301 Compare May 28, 2025 21:18
@morrisonlevi morrisonlevi force-pushed the PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog branch 2 times, most recently from 064a512 to 6f72248 Compare May 28, 2025 21:23
@morrisonlevi morrisonlevi force-pushed the PROF-11830-Add-upload-compression-configuration-to-libdatadog branch 2 times, most recently from 49d50fa to 9fa834b Compare May 29, 2025 02:32
@morrisonlevi morrisonlevi force-pushed the PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog branch 2 times, most recently from a13e0dd to b751d09 Compare May 29, 2025 17:49
@morrisonlevi morrisonlevi force-pushed the PROF-11830-Add-upload-compression-configuration-to-libdatadog branch from 9fa834b to 35933df Compare May 29, 2025 17:49
@github-actions
Copy link

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.

@github-actions github-actions bot added the stale Used by actions/stale to identify PRs that have been inactive for 90+ days label Aug 28, 2025
@morrisonlevi morrisonlevi added the keep-open Overrides actions/stale auto-closing stale PRs label Aug 28, 2025
@morrisonlevi morrisonlevi force-pushed the PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog branch from b751d09 to 958b210 Compare September 30, 2025 18:01
@morrisonlevi morrisonlevi changed the base branch from PROF-11830-Add-upload-compression-configuration-to-libdatadog to main September 30, 2025 20:43
@morrisonlevi morrisonlevi removed the stale Used by actions/stale to identify PRs that have been inactive for 90+ days label Sep 30, 2025
@morrisonlevi morrisonlevi changed the title perf(profiling)!: use zstd for compression profiling!: use zstd instead of lz4 for compression Oct 10, 2025
@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Oct 10, 2025

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: a612a1c | Docs | Datadog PR Page | Was this helpful? Give us feedback!

Copy link
Contributor

@danielsn danielsn left a comment

Choose a reason for hiding this comment

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

Looks good, some questions about details

@morrisonlevi morrisonlevi marked this pull request as ready for review October 18, 2025 15:41
@morrisonlevi morrisonlevi requested review from a team as code owners October 18, 2025 15:41
@morrisonlevi morrisonlevi marked this pull request as draft October 18, 2025 17:11
Copy link
Contributor

@danielsn danielsn left a comment

Choose a reason for hiding this comment

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

LGTM

@morrisonlevi morrisonlevi marked this pull request as ready for review October 30, 2025 15:04
@morrisonlevi
Copy link
Contributor Author

/merge

@dd-devflow-routing-codex
Copy link

dd-devflow-routing-codex bot commented Oct 31, 2025

View all feedbacks in Devflow UI.

2025-10-31 20:08:05 UTC ℹ️ Start processing command /merge


2025-10-31 20:08:10 UTC ℹ️ MergeQueue: pull request added to the queue

The expected merge time in main is approximately 39m (p90).


2025-10-31 20:41:47 UTC ℹ️ MergeQueue: This merge request was merged

@dd-mergequeue dd-mergequeue bot merged commit 42a3612 into main Oct 31, 2025
37 checks passed
@dd-mergequeue dd-mergequeue bot deleted the PROF-11832-Add-zstd-to-compression-configuration-to-libdatadog branch October 31, 2025 20:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request keep-open Overrides actions/stale auto-closing stale PRs mergequeue-status: done profiling Relates to the profiling* modules.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants