fix(crashtracking): use libunwind to unwind frames - #1663
Conversation
db27cac to
12d5692
Compare
12d5692 to
b3edc83
Compare
Clippy Allow Annotation ReportComparing clippy allow annotations between branches:
Summary by Rule
Annotation Counts by File
Annotation Stats by Crate
About This ReportThis report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1663 +/- ##
==========================================
- Coverage 71.19% 71.08% -0.12%
==========================================
Files 427 427
Lines 62852 62920 +68
==========================================
- Hits 44746 44725 -21
- Misses 18106 18195 +89
🚀 New features to boost your workflow:
|
Artifact Size Benchmark Reportaarch64-alpine-linux-musl
aarch64-unknown-linux-gnu
libdatadog-x64-windows
libdatadog-x86-windows
x86_64-alpine-linux-musl
x86_64-unknown-linux-gnu
|
507c974 to
1ac9cb5
Compare
|
✅ Tests 🎉 All green!❄️ No new flaky tests detected 🔗 Commit SHA: 30a1416 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback! |
1dfb73b to
3aa8cd5
Compare
7a8c08e to
2017c16
Compare
BenchmarksComparisonBenchmark execution time: 2026-03-25 19:53:07 Comparing candidate commit 30a1416 in PR branch Found 7 performance improvements and 16 performance regressions! Performance is the same for 36 metrics, 1 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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 | 143.937µs | 146.444µs ± 1.686µs | 146.148µs ± 0.496µs | 146.743µs | 148.224µs | 152.901µs | 162.401µs | 11.12% | 5.612 | 43.922 | 1.15% | 0.119µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| sdk_test_data/rules-based | execution_time | [146.210µs; 146.678µs] or [-0.160%; +0.160%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | execution_time | 534.278µs | 535.155µs ± 0.999µs | 534.984µs ± 0.250µs | 535.292µs | 535.880µs | 538.029µs | 546.628µs | 2.18% | 8.254 | 87.287 | 0.19% | 0.071µs | 1 | 200 |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | 1829398.083op/s | 1868624.940op/s ± 3435.710op/s | 1869216.424op/s ± 872.868op/s | 1869904.733op/s | 1870872.347op/s | 1871286.083op/s | 1871683.336op/s | 0.13% | -8.137 | 85.318 | 0.18% | 242.941op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | 381.309µs | 382.092µs ± 0.414µs | 382.042µs ± 0.205µs | 382.271µs | 382.580µs | 383.013µs | 385.214µs | 0.83% | 3.782 | 25.355 | 0.11% | 0.029µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | 2595957.011op/s | 2617171.722op/s ± 2825.662op/s | 2617513.407op/s ± 1403.351op/s | 2618712.351op/s | 2620397.227op/s | 2621054.027op/s | 2622546.764op/s | 0.19% | -3.740 | 24.963 | 0.11% | 199.804op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | 189.754µs | 190.330µs ± 0.206µs | 190.342µs ± 0.133µs | 190.468µs | 190.661µs | 190.823µs | 190.929µs | 0.31% | -0.047 | 0.055 | 0.11% | 0.015µs | 1 | 200 |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | 5237537.782op/s | 5254046.431op/s ± 5695.531op/s | 5253695.925op/s ± 3669.644op/s | 5257577.129op/s | 5263207.757op/s | 5267063.839op/s | 5269974.012op/s | 0.31% | 0.054 | 0.054 | 0.11% | 402.735op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | 37.489µs | 37.626µs ± 0.055µs | 37.623µs ± 0.037µs | 37.664µs | 37.712µs | 37.769µs | 37.788µs | 0.44% | 0.069 | 0.032 | 0.15% | 0.004µs | 1 | 200 |
| normalization/normalize_service/normalize_service/[empty string] | throughput | 26463394.195op/s | 26577618.146op/s ± 39094.576op/s | 26579410.260op/s ± 26084.309op/s | 26602277.573op/s | 26645078.866op/s | 26663887.762op/s | 26674702.950op/s | 0.36% | -0.060 | 0.027 | 0.15% | 2764.404op/s | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | 45.803µs | 45.908µs ± 0.057µs | 45.898µs ± 0.035µs | 45.943µs | 46.023µs | 46.072µs | 46.134µs | 0.51% | 1.019 | 1.084 | 0.12% | 0.004µs | 1 | 200 |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | 21676180.503op/s | 21782521.563op/s ± 26842.152op/s | 21787476.002op/s ± 16392.918op/s | 21802189.582op/s | 21813875.364op/s | 21827523.739op/s | 21832705.198op/s | 0.21% | -1.012 | 1.061 | 0.12% | 1898.027op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | execution_time | [535.016µs; 535.293µs] or [-0.026%; +0.026%] | None | None | None |
| normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... | throughput | [1868148.784op/s; 1869101.097op/s] or [-0.025%; +0.025%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | execution_time | [382.035µs; 382.150µs] or [-0.015%; +0.015%] | None | None | None |
| normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて | throughput | [2616780.113op/s; 2617563.332op/s] or [-0.015%; +0.015%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | execution_time | [190.301µs; 190.358µs] or [-0.015%; +0.015%] | None | None | None |
| normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters | throughput | [5253257.085op/s; 5254835.777op/s] or [-0.015%; +0.015%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | execution_time | [37.618µs; 37.633µs] or [-0.020%; +0.020%] | None | None | None |
| normalization/normalize_service/normalize_service/[empty string] | throughput | [26572200.014op/s; 26583036.278op/s] or [-0.020%; +0.020%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | execution_time | [45.901µs; 45.916µs] or [-0.017%; +0.017%] | None | None | None |
| normalization/normalize_service/normalize_service/test_ASCII | throughput | [21778801.498op/s; 21786241.627op/s] or [-0.017%; +0.017%] | None | None | None |
Group 3
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | 161.020µs | 162.063µs ± 0.375µs | 162.033µs ± 0.145µs | 162.172µs | 162.437µs | 162.904µs | 165.936µs | 2.41% | 5.717 | 56.059 | 0.23% | 0.027µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| benching string interning on wordpress profile | execution_time | [162.011µs; 162.115µs] or [-0.032%; +0.032%] | None | None | None |
Group 4
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| receiver_entry_point/report/2598 | execution_time | 3.585ms | 3.624ms ± 0.023ms | 3.617ms ± 0.013ms | 3.637ms | 3.670ms | 3.686ms | 3.727ms | 3.04% | 1.132 | 1.484 | 0.65% | 0.002ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| receiver_entry_point/report/2598 | execution_time | [3.621ms; 3.627ms] or [-0.090%; +0.090%] | None | None | None |
Group 5
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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.475µs | 86.798µs ± 0.137µs | 86.793µs ± 0.057µs | 86.840µs | 86.934µs | 87.301µs | 87.953µs | 1.34% | 3.710 | 26.490 | 0.16% | 0.010µ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.779µs; 86.817µs] or [-0.022%; +0.022%] | None | None | None |
Group 6
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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.631ms | 10.657ms ± 0.015ms | 10.655ms ± 0.008ms | 10.664ms | 10.680ms | 10.708ms | 10.731ms | 0.72% | 1.427 | 4.029 | 0.14% | 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.655ms; 10.659ms] or [-0.019%; +0.019%] | None | None | None |
Group 7
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| single_flag_killswitch/rules-based | execution_time | 188.259ns | 190.571ns ± 1.765ns | 190.388ns ± 1.311ns | 191.528ns | 194.132ns | 195.471ns | 198.024ns | 4.01% | 1.028 | 1.082 | 0.92% | 0.125ns | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| single_flag_killswitch/rules-based | execution_time | [190.326ns; 190.815ns] or [-0.128%; +0.128%] | None | None | None |
Group 8
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| profile_add_sample2_frames_x1000 | execution_time | 716.222µs | 717.653µs ± 0.618µs | 717.609µs ± 0.413µs | 718.015µs | 718.815µs | 719.417µs | 719.494µs | 0.26% | 0.465 | 0.167 | 0.09% | 0.044µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_add_sample2_frames_x1000 | execution_time | [717.568µs; 717.739µs] or [-0.012%; +0.012%] | None | None | None |
Group 9
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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.916µs | 5.009µs ± 0.063µs | 4.989µs ± 0.043µs | 5.041µs | 5.142µs | 5.145µs | 5.145µs | 3.13% | 0.863 | -0.260 | 1.26% | 0.004µ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.000µs; 5.018µs] or [-0.175%; +0.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 | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| profile_add_sample_frames_x1000 | execution_time | 4.129ms | 4.133ms ± 0.007ms | 4.132ms ± 0.001ms | 4.134ms | 4.137ms | 4.143ms | 4.223ms | 2.19% | 11.247 | 143.292 | 0.17% | 0.000ms | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| profile_add_sample_frames_x1000 | execution_time | [4.132ms; 4.134ms] or [-0.023%; +0.023%] | None | None | None |
Group 11
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| redis/obfuscate_redis_string | execution_time | 34.120µs | 34.601µs ± 0.612µs | 34.264µs ± 0.113µs | 35.050µs | 35.831µs | 36.044µs | 37.598µs | 9.73% | 1.487 | 2.035 | 1.76% | 0.043µ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.517µs; 34.686µs] or [-0.245%; +0.245%] | None | None | None |
Group 12
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| credit_card/is_card_number/ | execution_time | 3.896µs | 3.914µs ± 0.003µs | 3.914µs ± 0.002µs | 3.916µs | 3.918µs | 3.920µs | 3.924µs | 0.25% | -0.925 | 5.678 | 0.08% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/ | throughput | 254852593.798op/s | 255501181.308op/s ± 197257.586op/s | 255495374.646op/s ± 132045.379op/s | 255640947.289op/s | 255773754.849op/s | 255853890.229op/s | 256701557.725op/s | 0.47% | 0.941 | 5.772 | 0.08% | 13948.218op/s | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | 79.048µs | 79.733µs ± 0.427µs | 79.646µs ± 0.257µs | 79.929µs | 80.629µs | 81.013µs | 81.052µs | 1.77% | 0.897 | 0.513 | 0.53% | 0.030µs | 1 | 200 |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | 12337702.904op/s | 12542196.718op/s ± 66823.676op/s | 12555521.438op/s ± 40721.733op/s | 12593902.033op/s | 12628838.838op/s | 12640885.469op/s | 12650597.329op/s | 0.76% | -0.869 | 0.450 | 0.53% | 4725.147op/s | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | execution_time | 72.301µs | 72.904µs ± 0.339µs | 72.864µs ± 0.221µs | 73.094µs | 73.495µs | 73.909µs | 73.989µs | 1.54% | 0.700 | 0.271 | 0.46% | 0.024µs | 1 | 200 |
| credit_card/is_card_number/ 378282246310005 | throughput | 13515468.307op/s | 13716990.385op/s ± 63501.337op/s | 13724114.567op/s ± 41594.056op/s | 13765171.707op/s | 13807781.586op/s | 13825624.443op/s | 13831142.200op/s | 0.78% | -0.676 | 0.218 | 0.46% | 4490.223op/s | 1 | 200 |
| credit_card/is_card_number/37828224631 | execution_time | 3.895µs | 3.913µs ± 0.003µs | 3.913µs ± 0.001µs | 3.914µs | 3.917µs | 3.920µs | 3.922µs | 0.22% | -0.950 | 9.367 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number/37828224631 | throughput | 254990725.161op/s | 255554022.820op/s ± 175534.223op/s | 255563850.494op/s ± 92761.203op/s | 255653770.383op/s | 255770037.207op/s | 255815829.013op/s | 256735541.299op/s | 0.46% | 0.971 | 9.511 | 0.07% | 12412.144op/s | 1 | 200 |
| credit_card/is_card_number/378282246310005 | execution_time | 69.118µs | 69.790µs ± 0.347µs | 69.776µs ± 0.226µs | 69.987µs | 70.425µs | 70.729µs | 70.954µs | 1.69% | 0.557 | 0.088 | 0.50% | 0.025µs | 1 | 200 |
| credit_card/is_card_number/378282246310005 | throughput | 14093567.784op/s | 14328957.574op/s ± 71112.176op/s | 14331569.622op/s ± 46328.663op/s | 14385526.413op/s | 14430669.937op/s | 14441304.378op/s | 14468111.529op/s | 0.95% | -0.531 | 0.036 | 0.50% | 5028.390op/s | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | execution_time | 52.159µs | 52.236µs ± 0.038µs | 52.234µs ± 0.028µs | 52.263µs | 52.297µs | 52.325µs | 52.385µs | 0.29% | 0.399 | 0.247 | 0.07% | 0.003µs | 1 | 200 |
| credit_card/is_card_number/37828224631000521389798 | throughput | 19089471.957op/s | 19143821.657op/s ± 13999.498op/s | 19144477.188op/s ± 10230.854op/s | 19154512.343op/s | 19165627.025op/s | 19170412.213op/s | 19172024.182op/s | 0.14% | -0.394 | 0.237 | 0.07% | 989.914op/s | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | execution_time | 6.028µs | 6.036µs ± 0.008µs | 6.034µs ± 0.002µs | 6.036µs | 6.041µs | 6.078µs | 6.115µs | 1.33% | 6.307 | 47.022 | 0.14% | 0.001µs | 1 | 200 |
| credit_card/is_card_number/x371413321323331 | throughput | 163541190.864op/s | 165677312.276op/s ± 230153.618op/s | 165717242.880op/s ± 50746.862op/s | 165763445.959op/s | 165806934.697op/s | 165849747.936op/s | 165889146.805op/s | 0.10% | -6.268 | 46.477 | 0.14% | 16274.318op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | execution_time | 3.896µs | 3.912µs ± 0.003µs | 3.912µs ± 0.002µs | 3.914µs | 3.916µs | 3.918µs | 3.918µs | 0.16% | -1.021 | 7.044 | 0.06% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ | throughput | 255217811.328op/s | 255612919.165op/s ± 166113.244op/s | 255616372.264op/s ± 104425.837op/s | 255721211.858op/s | 255845632.283op/s | 255888095.470op/s | 256675753.752op/s | 0.41% | 1.037 | 7.150 | 0.06% | 11745.980op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | 64.217µs | 64.492µs ± 0.136µs | 64.469µs ± 0.079µs | 64.564µs | 64.752µs | 64.855µs | 64.878µs | 0.64% | 0.655 | 0.016 | 0.21% | 0.010µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | 15413482.984op/s | 15505871.265op/s ± 32658.684op/s | 15511416.627op/s ± 18915.857op/s | 15527107.219op/s | 15551902.243op/s | 15559351.276op/s | 15572146.102op/s | 0.39% | -0.645 | 0.001 | 0.21% | 2309.318op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | 57.810µs | 58.076µs ± 0.139µs | 58.044µs ± 0.085µs | 58.158µs | 58.332µs | 58.475µs | 58.559µs | 0.89% | 0.806 | 0.486 | 0.24% | 0.010µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | 17076701.634op/s | 17219025.286op/s ± 41208.295op/s | 17228392.798op/s ± 25278.159op/s | 17249479.724op/s | 17272180.569op/s | 17284020.787op/s | 17298136.991op/s | 0.40% | -0.793 | 0.451 | 0.24% | 2913.866op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | 3.894µs | 3.912µs ± 0.003µs | 3.912µs ± 0.002µs | 3.914µs | 3.917µs | 3.918µs | 3.919µs | 0.17% | -1.102 | 7.782 | 0.07% | 0.000µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | 255180350.734op/s | 255597274.579op/s ± 187298.252op/s | 255604621.139op/s ± 135726.824op/s | 255739358.289op/s | 255833127.885op/s | 255889726.628op/s | 256829149.355op/s | 0.48% | 1.121 | 7.920 | 0.07% | 13243.986op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | 54.590µs | 54.973µs ± 0.282µs | 54.914µs ± 0.190µs | 55.113µs | 55.580µs | 55.752µs | 55.917µs | 1.83% | 1.034 | 0.676 | 0.51% | 0.020µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | 17883745.102op/s | 18191290.347op/s ± 92876.499op/s | 18210194.704op/s ± 63057.054op/s | 18267932.589op/s | 18298971.689op/s | 18308425.507op/s | 18318329.320op/s | 0.59% | -1.009 | 0.607 | 0.51% | 6567.360op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | 52.164µs | 52.222µs ± 0.037µs | 52.213µs ± 0.021µs | 52.243µs | 52.291µs | 52.339µs | 52.367µs | 0.30% | 1.130 | 1.355 | 0.07% | 0.003µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | 19095938.592op/s | 19149080.151op/s ± 13569.152op/s | 19152453.078op/s ± 7644.104op/s | 19158357.872op/s | 19165489.948op/s | 19168144.633op/s | 19170469.808op/s | 0.09% | -1.126 | 1.340 | 0.07% | 959.484op/s | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | 6.028µs | 6.039µs ± 0.010µs | 6.036µs ± 0.003µs | 6.039µs | 6.071µs | 6.075µs | 6.082µs | 0.76% | 2.661 | 6.432 | 0.17% | 0.001µs | 1 | 200 |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | 164419190.698op/s | 165593581.628op/s ± 281947.725op/s | 165662380.170op/s ± 74617.524op/s | 165736052.727op/s | 165805002.994op/s | 165857824.590op/s | 165901243.478op/s | 0.14% | -2.654 | 6.403 | 0.17% | 19936.715op/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.914µs] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number/ | throughput | [255473843.304op/s; 255528519.312op/s] or [-0.011%; +0.011%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | execution_time | [79.674µs; 79.792µs] or [-0.074%; +0.074%] | None | None | None |
| credit_card/is_card_number/ 3782-8224-6310-005 | throughput | [12532935.599op/s; 12551457.837op/s] or [-0.074%; +0.074%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | execution_time | [72.857µs; 72.951µs] or [-0.064%; +0.064%] | None | None | None |
| credit_card/is_card_number/ 378282246310005 | throughput | [13708189.711op/s; 13725791.060op/s] or [-0.064%; +0.064%] | None | None | None |
| credit_card/is_card_number/37828224631 | execution_time | [3.913µs; 3.913µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/37828224631 | throughput | [255529695.465op/s; 255578350.175op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/378282246310005 | execution_time | [69.742µs; 69.839µs] or [-0.069%; +0.069%] | None | None | None |
| credit_card/is_card_number/378282246310005 | throughput | [14319102.111op/s; 14338813.038op/s] or [-0.069%; +0.069%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | execution_time | [52.231µs; 52.241µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/37828224631000521389798 | throughput | [19141881.461op/s; 19145761.853op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | execution_time | [6.035µs; 6.037µs] or [-0.019%; +0.019%] | None | None | None |
| credit_card/is_card_number/x371413321323331 | throughput | [165645415.198op/s; 165709209.354op/s] or [-0.019%; +0.019%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | execution_time | [3.912µs; 3.913µs] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ | throughput | [255589897.467op/s; 255635940.863op/s] or [-0.009%; +0.009%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | execution_time | [64.473µs; 64.511µs] or [-0.029%; +0.029%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 | throughput | [15501345.085op/s; 15510397.444op/s] or [-0.029%; +0.029%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | execution_time | [58.056µs; 58.095µs] or [-0.033%; +0.033%] | None | None | None |
| credit_card/is_card_number_no_luhn/ 378282246310005 | throughput | [17213314.212op/s; 17224736.359op/s] or [-0.033%; +0.033%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | execution_time | [3.912µs; 3.913µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631 | throughput | [255571316.843op/s; 255623232.315op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | execution_time | [54.934µs; 55.012µs] or [-0.071%; +0.071%] | None | None | None |
| credit_card/is_card_number_no_luhn/378282246310005 | throughput | [18178418.558op/s; 18204162.137op/s] or [-0.071%; +0.071%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | execution_time | [52.217µs; 52.227µs] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/37828224631000521389798 | throughput | [19147199.597op/s; 19150960.705op/s] or [-0.010%; +0.010%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | execution_time | [6.037µs; 6.040µs] or [-0.024%; +0.024%] | None | None | None |
| credit_card/is_card_number_no_luhn/x371413321323331 | throughput | [165554506.385op/s; 165632656.871op/s] or [-0.024%; +0.024%] | None | None | None |
Group 13
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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 | 239.790ns | 251.794ns ± 13.453ns | 244.553ns ± 3.223ns | 260.495ns | 282.070ns | 284.084ns | 287.992ns | 17.76% | 1.178 | 0.020 | 5.33% | 0.951ns | 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 | [249.929ns; 253.658ns] or [-0.740%; +0.740%] | None | None | None |
Group 14
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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.341µs | 2.391µs ± 0.014µs | 2.391µs ± 0.004µs | 2.394µs | 2.418µs | 2.426µs | 2.432µs | 1.71% | -0.432 | 2.804 | 0.60% | 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.389µs; 2.393µs] or [-0.084%; +0.084%] | None | None | None |
Group 15
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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.321µs | 26.565µs ± 10.167µs | 18.499µs ± 0.127µs | 35.589µs | 44.834µs | 50.343µs | 71.537µs | 286.71% | 0.923 | 0.463 | 38.18% | 0.719µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| two way interface | execution_time | [25.156µs; 27.974µs] or [-5.304%; +5.304%] | None | None | None |
Group 16
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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.165µs | 3.176µs ± 1.432µs | 3.004µs ± 0.020µs | 3.024µs | 3.345µs | 13.802µs | 15.152µs | 404.39% | 7.532 | 57.230 | 44.97% | 0.101µs | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| write only interface | execution_time | [2.978µs; 3.374µs] or [-6.247%; +6.247%] | None | None | None |
Group 17
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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.533µs | 185.925µs ± 0.201µs | 185.927µs ± 0.161µs | 186.086µs | 186.234µs | 186.413µs | 186.473µs | 0.29% | 0.211 | -0.748 | 0.11% | 0.014µs | 1 | 200 |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | 5362705.946op/s | 5378509.708op/s ± 5817.076op/s | 5378449.200op/s ± 4653.109op/s | 5383154.971op/s | 5387205.641op/s | 5388284.404op/s | 5389886.175op/s | 0.21% | -0.207 | -0.752 | 0.11% | 411.329op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | execution_time | 17.895µs | 17.977µs ± 0.050µs | 17.972µs ± 0.026µs | 18.000µs | 18.059µs | 18.079µs | 18.380µs | 2.27% | 2.735 | 19.066 | 0.28% | 0.004µs | 1 | 200 |
| normalization/normalize_name/normalize_name/bad-name | throughput | 54405794.994op/s | 55627481.714op/s ± 154814.723op/s | 55642318.087op/s ± 79222.844op/s | 55718529.670op/s | 55840343.916op/s | 55872183.379op/s | 55882318.412op/s | 0.43% | -2.624 | 17.938 | 0.28% | 10947.054op/s | 1 | 200 |
| normalization/normalize_name/normalize_name/good | execution_time | 10.212µs | 10.354µs ± 0.067µs | 10.360µs ± 0.052µs | 10.406µs | 10.453µs | 10.489µs | 10.496µs | 1.32% | -0.087 | -0.829 | 0.65% | 0.005µs | 1 | 200 |
| normalization/normalize_name/normalize_name/good | throughput | 95270883.269op/s | 96580764.645op/s ± 627850.744op/s | 96528131.821op/s ± 481400.538op/s | 97087985.620op/s | 97665343.273op/s | 97834791.620op/s | 97927352.742op/s | 1.45% | 0.110 | -0.827 | 0.65% | 44395.752op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | execution_time | [185.897µs; 185.953µs] or [-0.015%; +0.015%] | None | None | None |
| normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... | throughput | [5377703.517op/s; 5379315.899op/s] or [-0.015%; +0.015%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | execution_time | [17.970µs; 17.984µs] or [-0.039%; +0.039%] | None | None | None |
| normalization/normalize_name/normalize_name/bad-name | throughput | [55606025.882op/s; 55648937.545op/s] or [-0.039%; +0.039%] | None | None | None |
| normalization/normalize_name/normalize_name/good | execution_time | [10.345µs; 10.364µs] or [-0.090%; +0.090%] | None | None | None |
| normalization/normalize_name/normalize_name/good | throughput | [96493750.570op/s; 96667778.720op/s] or [-0.090%; +0.090%] | None | None | None |
Group 18
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| 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 | 48.084ms | 48.441ms ± 0.804ms | 48.319ms ± 0.078ms | 48.402ms | 48.628ms | 50.960ms | 56.876ms | 17.71% | 8.341 | 76.120 | 1.66% | 0.057ms | 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 | [48.330ms; 48.553ms] or [-0.230%; +0.230%] | None | None | None |
Group 19
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 30a1416 | 1773062374 | gyuheon0h/PROF-13672-libunwind |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| benching serializing traces from their internal representation to msgpack | execution_time | 13.994ms | 14.062ms ± 0.033ms | 14.059ms ± 0.016ms | 14.075ms | 14.101ms | 14.194ms | 14.280ms | 1.57% | 2.380 | 11.383 | 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.058ms; 14.067ms] or [-0.032%; +0.032%] | None | None | None |
Baseline
Omitted due to size.
# What does this PR do? Bump to 29.0.0 [feat(profiling)!: add Tracepoint sample type](#1676) [feat(obfuscation/redis): Reach feature parity on redis obfuscation [APMSP-2668]](#1632) [fix(sidecar): Handle backpressure more gracefully](#1682) [feat(trace-protobuf)!: Add two fields to ClientGroupedStats [SVLS-8627]](#1630) [chore: exclude libdatadog from ADMS auto generated PRs for dependency updates](#1688) [chore(ci): run crashtracking ffi example tests in CI](#1687) [fix(crashtracking): use libunwind to unwind frames](#1663) [feat: publish tracer metadata as OTel process ctx](#1658) [ci: run thread count test in own process](#1693) [feat(obfuscation/json): Init json obfuscation [APMSP-2665]](#1635) [chore(ci): add final_status property on junit XML [APMSP-2610]](#1681) [refactor(data-pipeline-ffi): move macro definitions for better reuse](#1699) [fix(obfuscation/memcached): fuzzing fix](#1695) [ci: replace use of cargo cross for centos7 tests](#1675) #1702 (comment) [feat(stats_exporter)!: add process tags to CSS payloads](#1709) # Motivation I mainly am creating this to use the new unwinding from ucontext for crashtracking # Additional Notes Anything else we should know when reviewing? # How to test the change? Describe here in detail how the change can be validated. [APMSP-2668]: https://datadoghq.atlassian.net/browse/APMSP-2668?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [SVLS-8627]: https://datadoghq.atlassian.net/browse/SVLS-8627?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ [APMSP-2665]: https://datadoghq.atlassian.net/browse/APMSP-2665?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: gyuheon.oh <gyuheon.oh@datadoghq.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) [APMSP-2590]: https://datadoghq.atlassian.net/browse/APMSP-2590?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) [APMSP-2590]: https://datadoghq.atlassian.net/browse/APMSP-2590?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(ci): give libdd-libunwind-sys its own version (#1743) - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) [APMSP-2590]: https://datadoghq.atlassian.net/browse/APMSP-2590?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): rename target triple to runtime platform (#1747) - chore(ci): give libdd-libunwind-sys its own version (#1743) - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): rename target triple to runtime platform (#1747) - chore(ci): give libdd-libunwind-sys its own version (#1743) - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker and its dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-common **Next version:** `3.0.0` **Semver bump:** `major` **Tag:** `libdd-common-v3.0.0` ### Commits - refactor(trace-utils)!: change header name type to accept dynamic values (#1722) ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ### Commits - chore(crashtracking): rename target triple to runtime platform (#1747) - chore(ci): give libdd-libunwind-sys its own version (#1743) - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) [APMSP-2590]: https://datadoghq.atlassian.net/browse/APMSP-2590?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
# Release proposal for libdd-crashtracker, libdd-gotter and their dependencies This PR contains version bumps based on public API changes and commits since last release. ## libdd-gotter **Next version:** `1.0.0` **Semver bump:** `major` **Tag:** `libdd-gotter-v1.0.0` **Warning:** this is an initial release. Please verify that the version and commits included are correct. ## libdd-crashtracker **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v2.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^1.0.0 → ^5.2.0 - `libdd-telemetry`: ^1.0.0 → ^7.0.0 ### Commits - feat(crashtracking)!: retrieve c assert message for linux when `__assert_fail` is dynamically loaded (#2268) - test: skip/shorten slow miri jobs (#2331) - feat(crashtracking): send debug log when no data is received at all (#2321) - fix(crashtracking): check fields and exclude uuid for `has_data` (#2322) - refactor: migrate to workspace dependencies, phase 4 (#2296) - refactor: migrate to workspace dependencies, phase 3 (#2283) - chore: moving to workspace-level dependencies, phase 2 (#2270) - refactor: consolidate core dependencies at workspace level (phase 1) (#2253) - test: stabilize flaky tests (#2256) - feat(telemetry)!: make telemetry worker wasm-compatible for the TraceExporter (#2172) - chore(crashtracking): harden multi thread ptrace collection (#2216) - fix(sidecar): don't double-encode file:// telemetry endpoints (#2230) - fix: new clippy lints (#2219) - refactor(sidecar)!: Avoid a dedicated socket for crashtracker (#2179) - refactor(clippy): prefer core and alloc imports (#2196) - refactor(libdd-telemetry)!: avoid leaking libdd-common types in the public API (#2152) - feat(crashtracking): collect all native stacks for unhandled exception and also crashing thread (#2155) - fix(crashtracking): sanitize type and message for unhandled exceptions (#2148) - fix(crashtracking): multi thread collection centos flakes harden (#2113) - chore(crashtracking)!: remove frame count experimental field (#2114) - fix(crashtracking): authenticate peer granted socket ptrace access (#2098) - feat(crashtracking)!: add experimental frame count field (#2099) - fix(crashtracker): increase test_waitall_nohang timeout to 500ms (#2097) - fix(crashtracker): support socket based receiver for all thread collection (#2080) - fix(crashtracker): set failed thread stack collection as incomplete empty stack (#2079) - fix(crashtracking)!: flatten all threads object into a list of `ThreadData` (#2054) - refactor(crashtracker): update imports to linux only (#2036) - fix(crashtracker): move preload logger marking after recursive guard (#2023) - fix(libdd-telemetry): restore previous Cargo.toml version (#1993) - feat!: integrate obfuscation to the stats exporter [APMSP-2764] (#1819) - chore(crashtracking)!: create errorsintake crash ping directly from telemetry (#1963) - feat(telemetry)!: include dependencies and integrations in app-extended-heartbeat (#1962) - feat(crashtracking)!: collect all threads (#1878) - chore(crashtracking): bump libdatadog-libunwind to v1.0.2 (#1942) - chore(crashtracking): default errors intake crash report upload to be on (#1902) - chore(libdd-crashtracker): remove path reference for libdd-libunwind-sys (#1877) - fix(crashtracking): handle new lines in client submitted exception message (#1836) - fix(crashtracker): Fix bin_tests in gitlab (#1832) - feat(crashtracking)!: improve parity between errors intake payload and telemetry intake payload (#1823) - feat(crashtracking)!: emit ucontext registers as structured data (#1787) - fix(ci): use single threaded for all tests that mutate signal state and use non-fatal signal (#1812) - fix(crashtracking): fix SIGCHLD signal guarding while in CT signal handler (#1807) - fix(ci): use single threaded to avoid race conditions for sa guard tests (#1800) - fix(crashtracking): guard sigchld and sigpipe during crashtracker signal handler execution (#1771) - chore(crashtracking): preserve errno for crashtracker (#1767) - chore(crashtracker): use weaker mem ordering for OP_COUNTERS (#1744) - chore(crashtracking): rename target triple to runtime platform (#1747) - chore(ci): give libdd-libunwind-sys its own version (#1743) - chore(crashtracking): add tag for target triple (#1741) - refactor(libdd-crashtracker)!: avoid leaking Endpoint through the public API (#1705) - chore(cargo): bump to 29.0.0 (#1702) - fix(crashtracking): use libunwind to unwind frames (#1663) - chore(deps): bump blazesym to 0.2.3 and blazesym-c to 0.1.7 (#1654) - chore(ci): fix crashtracker receiver binary rpath setting (#1652) - chore(crashtracking): emit a best effort stacktrace for Mac (#1645) - chore(crashtracker): use default-features=false for aws-lc-sys (#1625) - feat(crashtracking): report unhandled exceptions (#1596) - refactor(ddcommon)!: remove direct dependency on hyper client everywhere in common (#1604) - feat(crashtracking): include `Kind` in crash ping and clarify requirements (#1595) - fix(crashtracking): add process_tags to application field (#1576) - ci: update nightly in CI to 2026-02-08 (#1539) - fix(telemetry)!: fix logs payload format [APMSP-2590] (#1498) - chore(crashtracking): bump os_info crate to 3.14 (#1507) - Don't bail (#1494) - feat(crashtracking)!: emit crashing thread name in crash report for linux crashes (#1485) - test(crashtracking): add minimal LD preload test for crashtracker collector (#1428) - chore: release libddcommon-v1.1.0 (#1456) - chore: prepare libdd-telemetry-v2.0.0 (#1457) - [crashtracker] Retrieve panic message when crashing (#1361) - fix(sidecar): AWS lambda also can return EACCESS for shm_open (#1446) - chore(crashtracking): add `is_crash_debug` tag to crashtracker receiver debug logs (#1445) - [crashtracker] Log errors in crashtracker receiver (#1395) - chore: add changelog for every published crate (#1396) - Fix CI (#1389) - [crashtracker] Set OS info in the crash info builder when receiving report (#1388) - crashtracker: support cxx bindings for crashinfo (#1379) [APMSP-2764]: https://datadoghq.atlassian.net/browse/APMSP-2764?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: hoolioh <107922352+hoolioh@users.noreply.github.com>

What does this PR do?
Use packaged libunwind to unwind crash stacktrace.
The diff is bigger than the actual change, because I moved some of the emitter functions around so that the file structure is
I also added
unsafecomments to unsafe callsMotivation
Crashtracker collects callstacks. When it comes to alpine/musl-libc (mainly on x86_64), we fail at retrieving the callstack passed the signal frame. The problem is that the musl-libc binary does not have the CFIs (unwinding information) and the unwinder does not know how to move forward and stop.
Libunwind provides a way to unwind starting from the ucontext: context (registers and state) of the crashing thread. Going that way, we can collect the callstack as much as possible (until hitting musl-libc). We previously packaged libunwind as a libdatadog crate here: feat(profiling): Wrap libunwind in a crate
Lets use this to unwind from crash ucontext
Additional Notes
Anything else we should know when reviewing?
How to test the change?
Describe here in detail how the change can be validated.