fix(trace-obfuscation): scan all span meta for credit-card obfuscation - #2472
Conversation
# Motivation Credit-card obfuscation only checked the single `card.number` tag, but the trace-agent scans all span meta attributes (with an explicit skip-list) # Changes * Replace the single `TAG_CARD_NUMBER` fast-path in `obfuscate_pb_span` and `obfuscate_v04_span` with a full scan of all `span.meta` entries * * Skip keys in the built-in skip-list (`should_obfuscate_cc_key`) and the user-configured `keep_values` set
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
📚 Documentation Check Results📦
|
🔒 Cargo Deny Results📦
|
BenchmarksComparisonBenchmark execution time: 2026-09-07 13:55:53 Comparing candidate commit 056104d in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 25 metrics, 0 unstable metrics.
|
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 056104d | 1788788563 | paullgdc/obfuscation/cc_all_attrs |
| 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 | 9.716ms | 9.746ms ± 0.017ms | 9.743ms ± 0.011ms | 9.755ms | 9.776ms | 9.799ms | 9.804ms | 0.63% | 0.781 | 0.531 | 0.18% | 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 | [9.743ms; 9.748ms] or [-0.025%; +0.025%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 056104d | 1788788563 | paullgdc/obfuscation/cc_all_attrs |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| trace_buffer/1_senders/10us_delay | execution_time | 56.347ms | 56.751ms ± 0.278ms | 56.693ms ± 0.155ms | 56.856ms | 57.460ms | 57.642ms | 57.676ms | 1.73% | 1.396 | 1.991 | 0.49% | 0.020ms | 1 | 200 |
| trace_buffer/1_senders/10us_delay | throughput | 15604.392op/s | 15859.071op/s ± 77.035op/s | 15875.045op/s ± 43.194op/s | 15916.384op/s | 15949.256op/s | 15970.431op/s | 15972.533op/s | 0.61% | -1.366 | 1.901 | 0.48% | 5.447op/s | 1 | 200 |
| trace_buffer/1_senders/1us_delay | execution_time | 50.023ms | 50.088ms ± 0.031ms | 50.082ms ± 0.010ms | 50.092ms | 50.148ms | 50.198ms | 50.208ms | 0.25% | 1.435 | 2.869 | 0.06% | 0.002ms | 1 | 200 |
| trace_buffer/1_senders/1us_delay | throughput | 17925.392op/s | 17968.468op/s ± 11.108op/s | 17970.513op/s ± 3.540op/s | 17974.042op/s | 17982.487op/s | 17988.900op/s | 17991.679op/s | 0.12% | -1.430 | 2.852 | 0.06% | 0.785op/s | 1 | 200 |
| trace_buffer/1_senders/no_delay | execution_time | 328.456µs | 335.998µs ± 4.544µs | 336.164µs ± 2.241µs | 337.971µs | 340.425µs | 342.249µs | 382.925µs | 13.91% | 5.525 | 55.223 | 1.35% | 0.321µs | 1 | 200 |
| trace_buffer/1_senders/no_delay | throughput | 2350332.606op/s | 2679044.977op/s ± 33933.178op/s | 2677265.614op/s ± 17970.662op/s | 2698714.194op/s | 2721541.052op/s | 2730520.619op/s | 2740092.602op/s | 2.35% | -4.534 | 42.416 | 1.26% | 2399.438op/s | 1 | 200 |
| trace_buffer/2_senders/10us_delay | execution_time | 56.828ms | 57.232ms ± 0.171ms | 57.233ms ± 0.125ms | 57.348ms | 57.517ms | 57.603ms | 57.710ms | 0.83% | 0.025 | -0.427 | 0.30% | 0.012ms | 1 | 200 |
| trace_buffer/2_senders/10us_delay | throughput | 31190.246op/s | 31450.953op/s ± 94.170op/s | 31450.593op/s ± 68.671op/s | 31524.390op/s | 31604.545op/s | 31641.632op/s | 31674.356op/s | 0.71% | -0.011 | -0.433 | 0.30% | 6.659op/s | 1 | 200 |
| trace_buffer/2_senders/1us_delay | execution_time | 50.058ms | 50.111ms ± 0.032ms | 50.106ms ± 0.017ms | 50.123ms | 50.176ms | 50.219ms | 50.258ms | 0.30% | 1.560 | 3.229 | 0.06% | 0.002ms | 1 | 200 |
| trace_buffer/2_senders/1us_delay | throughput | 35814.939op/s | 35920.096op/s ± 22.894op/s | 35923.866op/s ± 12.244op/s | 35936.082op/s | 35945.432op/s | 35952.707op/s | 35958.080op/s | 0.10% | -1.554 | 3.205 | 0.06% | 1.619op/s | 1 | 200 |
| trace_buffer/2_senders/no_delay | execution_time | 850.556µs | 898.417µs ± 19.256µs | 900.186µs ± 11.685µs | 909.017µs | 928.854µs | 945.091µs | 976.119µs | 8.44% | 0.275 | 0.689 | 2.14% | 1.362µs | 1 | 200 |
| trace_buffer/2_senders/no_delay | throughput | 1844037.160op/s | 2004436.817op/s ± 42784.936op/s | 1999585.959op/s ± 25670.497op/s | 2038153.652op/s | 2071616.567op/s | 2095718.052op/s | 2116263.560op/s | 5.84% | -0.116 | 0.383 | 2.13% | 3025.352op/s | 1 | 200 |
| trace_buffer/4_senders/10us_delay | execution_time | 57.174ms | 57.486ms ± 0.162ms | 57.470ms ± 0.099ms | 57.570ms | 57.763ms | 57.977ms | 58.120ms | 1.13% | 0.791 | 1.142 | 0.28% | 0.011ms | 1 | 200 |
| trace_buffer/4_senders/10us_delay | throughput | 61940.398op/s | 62624.675op/s ± 175.885op/s | 62641.922op/s ± 108.282op/s | 62748.438op/s | 62874.369op/s | 62949.819op/s | 62965.256op/s | 0.52% | -0.770 | 1.084 | 0.28% | 12.437op/s | 1 | 200 |
| trace_buffer/4_senders/1us_delay | execution_time | 50.081ms | 50.174ms ± 0.046ms | 50.165ms ± 0.027ms | 50.199ms | 50.261ms | 50.301ms | 50.339ms | 0.35% | 1.007 | 0.883 | 0.09% | 0.003ms | 1 | 200 |
| trace_buffer/4_senders/1us_delay | throughput | 71514.642op/s | 71750.022op/s ± 65.038op/s | 71763.895op/s ± 38.436op/s | 71798.467op/s | 71829.666op/s | 71843.854op/s | 71882.871op/s | 0.17% | -1.002 | 0.869 | 0.09% | 4.599op/s | 1 | 200 |
| trace_buffer/4_senders/no_delay | execution_time | 2.136ms | 2.355ms ± 0.074ms | 2.352ms ± 0.055ms | 2.413ms | 2.473ms | 2.521ms | 2.565ms | 9.06% | 0.022 | -0.199 | 3.15% | 0.005ms | 1 | 200 |
| trace_buffer/4_senders/no_delay | throughput | 1403240.003op/s | 1530416.400op/s ± 48391.967op/s | 1530384.747op/s ± 36354.592op/s | 1561325.803op/s | 1613464.997op/s | 1627255.488op/s | 1685132.013op/s | 10.11% | 0.149 | -0.161 | 3.15% | 3421.829op/s | 1 | 200 |
| trace_buffer/8_senders/10us_delay | execution_time | 57.596ms | 57.892ms ± 0.223ms | 57.809ms ± 0.096ms | 57.974ms | 58.383ms | 58.483ms | 58.603ms | 1.37% | 1.236 | 0.624 | 0.38% | 0.016ms | 1 | 200 |
| trace_buffer/8_senders/10us_delay | throughput | 122859.634op/s | 124372.138op/s ± 476.787op/s | 124547.570op/s ± 208.107op/s | 124692.614op/s | 124869.111op/s | 124930.960op/s | 125009.682op/s | 0.37% | -1.223 | 0.590 | 0.38% | 33.714op/s | 1 | 200 |
| trace_buffer/8_senders/1us_delay | execution_time | 50.162ms | 50.299ms ± 0.062ms | 50.282ms ± 0.034ms | 50.328ms | 50.411ms | 50.513ms | 50.549ms | 0.53% | 1.242 | 1.885 | 0.12% | 0.004ms | 1 | 200 |
| trace_buffer/8_senders/1us_delay | throughput | 142435.134op/s | 143143.853op/s ± 176.935op/s | 143191.854op/s ± 97.566op/s | 143269.048op/s | 143336.309op/s | 143377.630op/s | 143535.508op/s | 0.24% | -1.234 | 1.851 | 0.12% | 12.511op/s | 1 | 200 |
| trace_buffer/8_senders/no_delay | execution_time | 6.214ms | 6.437ms ± 0.070ms | 6.440ms ± 0.047ms | 6.485ms | 6.540ms | 6.593ms | 6.621ms | 2.81% | -0.226 | -0.067 | 1.08% | 0.005ms | 1 | 200 |
| trace_buffer/8_senders/no_delay | throughput | 1087492.771op/s | 1118730.608op/s ± 12127.274op/s | 1118055.335op/s ± 8061.610op/s | 1126256.615op/s | 1140291.388op/s | 1146071.526op/s | 1158643.694op/s | 3.63% | 0.287 | -0.027 | 1.08% | 857.528op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| trace_buffer/1_senders/10us_delay | execution_time | [56.713ms; 56.790ms] or [-0.068%; +0.068%] | None | None | None |
| trace_buffer/1_senders/10us_delay | throughput | [15848.394op/s; 15869.747op/s] or [-0.067%; +0.067%] | None | None | None |
| trace_buffer/1_senders/1us_delay | execution_time | [50.083ms; 50.092ms] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/1_senders/1us_delay | throughput | [17966.929op/s; 17970.008op/s] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/1_senders/no_delay | execution_time | [335.368µs; 336.627µs] or [-0.187%; +0.187%] | None | None | None |
| trace_buffer/1_senders/no_delay | throughput | [2674342.164op/s; 2683747.789op/s] or [-0.176%; +0.176%] | None | None | None |
| trace_buffer/2_senders/10us_delay | execution_time | [57.209ms; 57.256ms] or [-0.041%; +0.041%] | None | None | None |
| trace_buffer/2_senders/10us_delay | throughput | [31437.902op/s; 31464.004op/s] or [-0.041%; +0.041%] | None | None | None |
| trace_buffer/2_senders/1us_delay | execution_time | [50.107ms; 50.116ms] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/2_senders/1us_delay | throughput | [35916.923op/s; 35923.269op/s] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/2_senders/no_delay | execution_time | [895.748µs; 901.085µs] or [-0.297%; +0.297%] | None | None | None |
| trace_buffer/2_senders/no_delay | throughput | [1998507.236op/s; 2010366.397op/s] or [-0.296%; +0.296%] | None | None | None |
| trace_buffer/4_senders/10us_delay | execution_time | [57.463ms; 57.508ms] or [-0.039%; +0.039%] | None | None | None |
| trace_buffer/4_senders/10us_delay | throughput | [62600.299op/s; 62649.051op/s] or [-0.039%; +0.039%] | None | None | None |
| trace_buffer/4_senders/1us_delay | execution_time | [50.168ms; 50.181ms] or [-0.013%; +0.013%] | None | None | None |
| trace_buffer/4_senders/1us_delay | throughput | [71741.008op/s; 71759.035op/s] or [-0.013%; +0.013%] | None | None | None |
| trace_buffer/4_senders/no_delay | execution_time | [2.344ms; 2.365ms] or [-0.437%; +0.437%] | None | None | None |
| trace_buffer/4_senders/no_delay | throughput | [1523709.738op/s; 1537123.061op/s] or [-0.438%; +0.438%] | None | None | None |
| trace_buffer/8_senders/10us_delay | execution_time | [57.861ms; 57.923ms] or [-0.053%; +0.053%] | None | None | None |
| trace_buffer/8_senders/10us_delay | throughput | [124306.060op/s; 124438.216op/s] or [-0.053%; +0.053%] | None | None | None |
| trace_buffer/8_senders/1us_delay | execution_time | [50.290ms; 50.308ms] or [-0.017%; +0.017%] | None | None | None |
| trace_buffer/8_senders/1us_delay | throughput | [143119.332op/s; 143168.375op/s] or [-0.017%; +0.017%] | None | None | None |
| trace_buffer/8_senders/no_delay | execution_time | [6.427ms; 6.446ms] or [-0.150%; +0.150%] | None | None | None |
| trace_buffer/8_senders/no_delay | throughput | [1117049.884op/s; 1120411.331op/s] or [-0.150%; +0.150%] | None | None | None |
Baseline
Baseline benchmark details
Group 1
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | b15bd22 | 1788785989 |
| 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 | 9.699ms | 9.733ms ± 0.018ms | 9.730ms ± 0.011ms | 9.742ms | 9.762ms | 9.786ms | 9.800ms | 0.72% | 0.983 | 1.130 | 0.18% | 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 | [9.730ms; 9.735ms] or [-0.025%; +0.025%] | None | None | None |
Group 2
| cpu_model | git_commit_sha | git_commit_date | git_branch |
|---|---|---|---|
| Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | b15bd22 | 1788785989 |
| scenario | metric | min | mean ± sd | median ± mad | p75 | p95 | p99 | max | peak_to_median_ratio | skewness | kurtosis | cv | sem | runs | sample_size |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| trace_buffer/1_senders/10us_delay | execution_time | 56.286ms | 56.639ms ± 0.193ms | 56.600ms ± 0.121ms | 56.771ms | 56.951ms | 57.241ms | 57.322ms | 1.28% | 0.868 | 0.794 | 0.34% | 0.014ms | 1 | 200 |
| trace_buffer/1_senders/10us_delay | throughput | 15700.908op/s | 15890.315op/s ± 54.056op/s | 15901.122op/s ± 34.048op/s | 15928.609op/s | 15962.195op/s | 15977.038op/s | 15989.868op/s | 0.56% | -0.848 | 0.737 | 0.34% | 3.822op/s | 1 | 200 |
| trace_buffer/1_senders/1us_delay | execution_time | 49.993ms | 50.079ms ± 0.032ms | 50.079ms ± 0.010ms | 50.086ms | 50.141ms | 50.192ms | 50.203ms | 0.25% | 1.215 | 3.185 | 0.06% | 0.002ms | 1 | 200 |
| trace_buffer/1_senders/1us_delay | throughput | 17927.335op/s | 17971.652op/s ± 11.459op/s | 17971.658op/s ± 3.764op/s | 17976.637op/s | 17988.525op/s | 17990.337op/s | 18002.692op/s | 0.17% | -1.208 | 3.167 | 0.06% | 0.810op/s | 1 | 200 |
| trace_buffer/1_senders/no_delay | execution_time | 329.815µs | 335.955µs ± 4.747µs | 335.521µs ± 1.340µs | 336.958µs | 339.901µs | 344.133µs | 392.936µs | 17.11% | 8.782 | 102.275 | 1.41% | 0.336µs | 1 | 200 |
| trace_buffer/1_senders/no_delay | throughput | 2290450.680op/s | 2679409.603op/s ± 33930.421op/s | 2682396.264op/s ± 10729.669op/s | 2692558.857op/s | 2710549.490op/s | 2726136.941op/s | 2728804.208op/s | 1.73% | -7.676 | 84.872 | 1.26% | 2399.243op/s | 1 | 200 |
| trace_buffer/2_senders/10us_delay | execution_time | 56.683ms | 57.093ms ± 0.202ms | 57.084ms ± 0.147ms | 57.240ms | 57.435ms | 57.510ms | 57.569ms | 0.85% | 0.208 | -0.765 | 0.35% | 0.014ms | 1 | 200 |
| trace_buffer/2_senders/10us_delay | throughput | 31266.936op/s | 31528.109op/s ± 111.257op/s | 31532.667op/s ± 81.272op/s | 31610.566op/s | 31695.427op/s | 31739.178op/s | 31755.421op/s | 0.71% | -0.195 | -0.770 | 0.35% | 7.867op/s | 1 | 200 |
| trace_buffer/2_senders/1us_delay | execution_time | 50.049ms | 50.112ms ± 0.037ms | 50.106ms ± 0.019ms | 50.122ms | 50.192ms | 50.225ms | 50.269ms | 0.33% | 1.367 | 2.127 | 0.07% | 0.003ms | 1 | 200 |
| trace_buffer/2_senders/1us_delay | throughput | 35807.393op/s | 35919.861op/s ± 26.161op/s | 35924.025op/s ± 13.550op/s | 35938.688op/s | 35950.019op/s | 35956.617op/s | 35964.677op/s | 0.11% | -1.362 | 2.108 | 0.07% | 1.850op/s | 1 | 200 |
| trace_buffer/2_senders/no_delay | execution_time | 831.633µs | 875.613µs ± 18.940µs | 871.913µs ± 10.174µs | 886.961µs | 908.293µs | 922.820µs | 972.753µs | 11.57% | 1.078 | 3.195 | 2.16% | 1.339µs | 1 | 200 |
| trace_buffer/2_senders/no_delay | throughput | 1850417.848op/s | 2056640.523op/s ± 43587.320op/s | 2064425.094op/s ± 24276.516op/s | 2083452.039op/s | 2120510.189op/s | 2143964.575op/s | 2164415.316op/s | 4.84% | -0.838 | 2.210 | 2.11% | 3082.089op/s | 1 | 200 |
| trace_buffer/4_senders/10us_delay | execution_time | 57.048ms | 57.397ms ± 0.180ms | 57.375ms ± 0.130ms | 57.505ms | 57.738ms | 57.834ms | 57.927ms | 0.96% | 0.426 | -0.146 | 0.31% | 0.013ms | 1 | 200 |
| trace_buffer/4_senders/10us_delay | throughput | 62147.460op/s | 62721.677op/s ± 196.072op/s | 62745.371op/s ± 142.406op/s | 62883.368op/s | 63030.418op/s | 63075.745op/s | 63104.695op/s | 0.57% | -0.410 | -0.167 | 0.31% | 13.864op/s | 1 | 200 |
| trace_buffer/4_senders/1us_delay | execution_time | 50.069ms | 50.169ms ± 0.037ms | 50.163ms ± 0.020ms | 50.186ms | 50.235ms | 50.290ms | 50.329ms | 0.33% | 1.129 | 2.716 | 0.07% | 0.003ms | 1 | 200 |
| trace_buffer/4_senders/1us_delay | throughput | 71529.239op/s | 71757.060op/s ± 53.158op/s | 71765.491op/s ± 28.378op/s | 71791.657op/s | 71821.583op/s | 71847.585op/s | 71900.892op/s | 0.19% | -1.122 | 2.693 | 0.07% | 3.759op/s | 1 | 200 |
| trace_buffer/4_senders/no_delay | execution_time | 2.041ms | 2.333ms ± 0.083ms | 2.338ms ± 0.054ms | 2.388ms | 2.463ms | 2.493ms | 2.511ms | 7.42% | -0.404 | 0.376 | 3.53% | 0.006ms | 1 | 200 |
| trace_buffer/4_senders/no_delay | throughput | 1433484.455op/s | 1544744.081op/s ± 55670.515op/s | 1539858.002op/s ± 35107.375op/s | 1578480.337op/s | 1634543.600op/s | 1711937.314op/s | 1763874.203op/s | 14.55% | 0.656 | 0.957 | 3.59% | 3936.500op/s | 1 | 200 |
| trace_buffer/8_senders/10us_delay | execution_time | 57.583ms | 57.932ms ± 0.232ms | 57.872ms ± 0.123ms | 58.055ms | 58.400ms | 58.674ms | 58.807ms | 1.62% | 1.204 | 1.227 | 0.40% | 0.016ms | 1 | 200 |
| trace_buffer/8_senders/10us_delay | throughput | 122434.077op/s | 124285.718op/s ± 494.480op/s | 124412.034op/s ± 263.930op/s | 124640.426op/s | 124867.243op/s | 124951.524op/s | 125036.573op/s | 0.50% | -1.183 | 1.155 | 0.40% | 34.965op/s | 1 | 200 |
| trace_buffer/8_senders/1us_delay | execution_time | 50.197ms | 50.292ms ± 0.061ms | 50.275ms ± 0.031ms | 50.324ms | 50.400ms | 50.535ms | 50.573ms | 0.59% | 1.651 | 3.857 | 0.12% | 0.004ms | 1 | 200 |
| trace_buffer/8_senders/1us_delay | throughput | 142368.739op/s | 143165.103op/s ± 174.348op/s | 143211.134op/s ± 89.325op/s | 143276.160op/s | 143367.450op/s | 143385.894op/s | 143433.944op/s | 0.16% | -1.639 | 3.801 | 0.12% | 12.328op/s | 1 | 200 |
| trace_buffer/8_senders/no_delay | execution_time | 5.851ms | 6.506ms ± 0.160ms | 6.552ms ± 0.084ms | 6.621ms | 6.682ms | 6.739ms | 6.757ms | 3.13% | -1.376 | 2.378 | 2.45% | 0.011ms | 1 | 200 |
| trace_buffer/8_senders/no_delay | throughput | 1065530.942op/s | 1107411.032op/s ± 28225.895op/s | 1098836.816op/s ± 13931.689op/s | 1121609.006op/s | 1154837.739op/s | 1198979.988op/s | 1230629.830op/s | 11.99% | 1.573 | 3.272 | 2.54% | 1995.872op/s | 1 | 200 |
| scenario | metric | 95% CI mean | Shapiro-Wilk pvalue | Ljung-Box pvalue (lag=1) | Dip test pvalue |
|---|---|---|---|---|---|
| trace_buffer/1_senders/10us_delay | execution_time | [56.612ms; 56.666ms] or [-0.047%; +0.047%] | None | None | None |
| trace_buffer/1_senders/10us_delay | throughput | [15882.824op/s; 15897.807op/s] or [-0.047%; +0.047%] | None | None | None |
| trace_buffer/1_senders/1us_delay | execution_time | [50.074ms; 50.083ms] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/1_senders/1us_delay | throughput | [17970.064op/s; 17973.240op/s] or [-0.009%; +0.009%] | None | None | None |
| trace_buffer/1_senders/no_delay | execution_time | [335.297µs; 336.613µs] or [-0.196%; +0.196%] | None | None | None |
| trace_buffer/1_senders/no_delay | throughput | [2674707.173op/s; 2684112.033op/s] or [-0.176%; +0.176%] | None | None | None |
| trace_buffer/2_senders/10us_delay | execution_time | [57.065ms; 57.121ms] or [-0.049%; +0.049%] | None | None | None |
| trace_buffer/2_senders/10us_delay | throughput | [31512.690op/s; 31543.528op/s] or [-0.049%; +0.049%] | None | None | None |
| trace_buffer/2_senders/1us_delay | execution_time | [50.107ms; 50.117ms] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/2_senders/1us_delay | throughput | [35916.235op/s; 35923.487op/s] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/2_senders/no_delay | execution_time | [872.988µs; 878.238µs] or [-0.300%; +0.300%] | None | None | None |
| trace_buffer/2_senders/no_delay | throughput | [2050599.739op/s; 2062681.306op/s] or [-0.294%; +0.294%] | None | None | None |
| trace_buffer/4_senders/10us_delay | execution_time | [57.372ms; 57.422ms] or [-0.043%; +0.043%] | None | None | None |
| trace_buffer/4_senders/10us_delay | throughput | [62694.503op/s; 62748.850op/s] or [-0.043%; +0.043%] | None | None | None |
| trace_buffer/4_senders/1us_delay | execution_time | [50.164ms; 50.174ms] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/4_senders/1us_delay | throughput | [71749.693op/s; 71764.427op/s] or [-0.010%; +0.010%] | None | None | None |
| trace_buffer/4_senders/no_delay | execution_time | [2.322ms; 2.345ms] or [-0.490%; +0.490%] | None | None | None |
| trace_buffer/4_senders/no_delay | throughput | [1537028.683op/s; 1552459.479op/s] or [-0.499%; +0.499%] | None | None | None |
| trace_buffer/8_senders/10us_delay | execution_time | [57.900ms; 57.964ms] or [-0.055%; +0.055%] | None | None | None |
| trace_buffer/8_senders/10us_delay | throughput | [124217.188op/s; 124354.248op/s] or [-0.055%; +0.055%] | None | None | None |
| trace_buffer/8_senders/1us_delay | execution_time | [50.283ms; 50.300ms] or [-0.017%; +0.017%] | None | None | None |
| trace_buffer/8_senders/1us_delay | throughput | [143140.940op/s; 143189.266op/s] or [-0.017%; +0.017%] | None | None | None |
| trace_buffer/8_senders/no_delay | execution_time | [6.484ms; 6.528ms] or [-0.340%; +0.340%] | None | None | None |
| trace_buffer/8_senders/no_delay | throughput | [1103499.194op/s; 1111322.869op/s] or [-0.353%; +0.353%] | None | None | None |
|
✅ All CI checks and tests passed. 🎉 All green!🧪 All tests passed 🎯 Code Coverage (details) 🔗 Commit SHA: 056104d | Docs | View more details | Give us feedback! |
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
|
Eldolfin
left a comment
There was a problem hiding this comment.
LGTM
note to myself: this needs to be wired up in client side stats and the config exposed in agent's /info
…ker, libdd-data-pipeline, li... (#2482) # Release proposal for libdd-capabilities-impl, libdd-crashtracker, libdd-data-pipeline, libdd-ddsketch, libdd-ffe, libdd-http-client, libdd-ipc, libdd-library-config, libdd-live-debugger, libdd-otel-thread-ctx, libdd-remote-config, libdd-shared-runtime, libdd-telemetry, libdd-trace-utils, libdd-tracer-flare and their dependencies This PR contains version bumps based on public API changes and commits since last release. ###⚠️ Crates left out of this proposal affected by its major bumps These publishable workspace crates are not part of this release but their dependency requirement was rewritten on this branch while their published version still requires the old major. If they are a dependency on your deployment not including them in the release could result in duplicate packages or symbol incompatibility. - `libdd-common` `5.2.0` → `6.0.0` affects: `libdd-profiling`, `libdd-sampling` - `libdd-trace-utils` `11.0.0` → `12.0.0` affects: `libdd-sampling` ## libdd-capabilities **Next version:** `3.0.1` **Semver bump:** `patch` **Tag:** `libdd-capabilities-v3.0.1` ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - feat: do not entirely disable connection pooling for periodic connections (#2440) ## libdd-common **Next version:** `6.0.0` **Semver bump:** `major` **Tag:** `libdd-common-v6.0.0` ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - feat: do not entirely disable connection pooling for periodic connections (#2440) - feat(data-pipeline)!: add agentless stats export (#2309) - feat(data-pipeline): add runtime-independent agentless sending (#2389) - feat(common)!: add HTTPS_PROXY support for hyper_backend (#2421) ## libdd-ipc-macros **Next version:** `1.0.1` **Semver bump:** `patch` **Tag:** `libdd-ipc-macros-v1.0.1` ### Commits - feat(sidecar)!: support appsec helper-rust integration with sidecar (#2310) ## libdd-otel-thread-ctx **Next version:** `1.1.0` **Semver bump:** `minor` **Tag:** `libdd-otel-thread-ctx-v1.1.0` ### Commits - feat(otel-thread-ctx): add update-and-attach operation (#2443) ## libdd-tinybytes **Next version:** `1.1.3` **Semver bump:** `patch` **Tag:** `libdd-tinybytes-v1.1.3` ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) ## libdd-capabilities-impl **Next version:** `5.0.0` **Semver bump:** `major` **Tag:** `libdd-capabilities-impl-v5.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.1.1 → ^6.0.0 ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - feat: do not entirely disable connection pooling for periodic connections (#2440) - feat(data-pipeline): add runtime-independent agentless sending (#2389) ## libdd-http-client **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-http-client-v2.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.1.1 → ^6.0.0 ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - feat(data-pipeline): add runtime-independent agentless sending (#2389) - feat(common)!: add HTTPS_PROXY support for hyper_backend (#2421) ## libdd-remote-config **Next version:** `5.0.0` **Semver bump:** `major` **Tag:** `libdd-remote-config-v5.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 ### Commits - fix(remote-config): refresh fetcher identity (#2469) - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - fix(remote-config): reuse injected sleep capability (#2429) ## libdd-shared-runtime **Next version:** `4.0.0` **Semver bump:** `major` **Tag:** `libdd-shared-runtime-v4.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 ### Commits - fix(shared-runtime): allow disabling worker fork restart (#2464) ## libdd-trace-utils **Next version:** `12.0.0` **Semver bump:** `major` **Tag:** `libdd-trace-utils-v12.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 ### Commits - feat(trace-utils): add v1-native JSON log encoder brick (#2371) - feat(trace-utils): add v1-native agentless JSON encoder brick (#2370) - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - fix(trace-stats): read OTel HTTP names for the status and method dimensions (#2323) - feat(data-pipeline): emit native trace export telemetry (#2338) - feat(data-pipeline)!: add agentless stats export (#2309) - fix(trace-utils): use vec map dedup when serializing (#2422) - feat(data-pipeline): add runtime-independent agentless sending (#2389) - fix(compression): align zstd behavior across targets (#2400) - feat(trace-utils)!: add from owned to SpanText (#2403) ## libdd-ffe **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-ffe-v2.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.1.1 → ^6.0.0 - `libdd-remote-config`: ^3.0.0 → ^4.1.0 - `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0 ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - feat(ffe): support arbitrary semver core parts (#2413) - feat(ffe)!: send the split serial id on exposure events [EX-3425] (#2402) - feat(ffe): expose observeFullEvaluationData config-level FFI getter (#2373) - fix(ffe): report rejected flags as parse errors (#2339) - test: skip/shorten slow miri jobs (#2331) ## libdd-dogstatsd-client **Next version:** `6.0.0` **Semver bump:** `major` **Tag:** `libdd-dogstatsd-client-v6.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) ## libdd-telemetry **Next version:** `8.0.0` **Semver bump:** `major` **Tag:** `libdd-telemetry-v8.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - refactor(telemetry): avoid doing two separate http requests in stop telemetry (#2435) ## libdd-trace-obfuscation **Next version:** `8.0.0` **Semver bump:** `major` **Tag:** `libdd-trace-obfuscation-v8.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 - `libdd-trace-utils`: ^11.0.0 → ^12.0.0 ### Commits - fix(trace-obfuscation): scan all span meta for credit-card obfuscation (#2472) - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - feat(data-pipeline)!: Obfuscate v04 spans in agentless context (#2418) ## libdd-tracer-flare **Next version:** `3.0.0` **Semver bump:** `major` **Tag:** `libdd-tracer-flare-v3.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 - `libdd-trace-utils`: ^11.0.0 → ^12.0.0 ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) ## libdd-crashtracker **Next version:** `3.0.0` **Semver bump:** `major` **Tag:** `libdd-crashtracker-v3.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - fix(crashtracking): filter out frames above faulting frame (#2428) - feat(sidecar)!: support appsec helper-rust integration with sidecar (#2310) - chore(crashtracking): use RAII remote ptrace API (#2416) - chore(crashtracking): bump libdd-libunwind-sys to v1.0.3 (#2414) ## libdd-data-pipeline-core **Next version:** `1.0.0` **Semver bump:** `major` **Tag:** `libdd-data-pipeline-core-v1.0.0` **Warning:** this is an initial release. Please verify that the version and commits included are correct. ## libdd-trace-stats **Next version:** `9.0.0` **Semver bump:** `major` **Tag:** `libdd-trace-stats-v9.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 - `libdd-trace-obfuscation`: ^7.0.0 → ^8.0.0 - `libdd-trace-utils`: ^11.0.0 → ^12.0.0 ### Commits - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - fix(trace-stats): read OTel HTTP names for the status and method dimensions (#2323) - feat(data-pipeline)!: add agentless stats export (#2309) - feat(trace-utils)!: add from owned to SpanText (#2403) ## libdd-data-pipeline **Next version:** `10.0.0` **Semver bump:** `major` **Tag:** `libdd-data-pipeline-v10.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 - `libdd-trace-obfuscation`: ^7.0.0 → ^8.0.0 - `libdd-trace-stats`: ^8.0.0 → ^9.0.0 - `libdd-trace-utils`: ^11.0.0 → ^12.0.0 ### Commits - feat(trace-utils): add v1-native JSON log encoder brick (#2371) - chore: prepare crate for publishing (#2466) - refactor: migrate HTTP & networking deps to workspace level (phase 4bis) (#2350) - fix(trace-stats): read OTel HTTP names for the status and method dimensions (#2323) - fix(data-pipeline): pass obfuscation config to OTLP stats (#2444) - feat(data-pipeline): emit native trace export telemetry (#2338) - feat(data-pipeline): add fork-safe OTLP gRPC trace transport (#2273) - feat(data-pipeline)!: add agentless stats export (#2309) - feat(data-pipeline)!: Obfuscate v04 spans in agentless context (#2418) - feat(data-pipeline): add runtime-independent agentless sending (#2389) - feat(trace-utils)!: add from owned to SpanText (#2403) ## libdd-ipc **Next version:** `2.0.0` **Semver bump:** `major` **Tag:** `libdd-ipc-v2.0.0` ###⚠️ major bump forced due to: - `libdd-common`: ^5.2.0 → ^6.0.0 - `libdd-trace-stats`: ^8.0.0 → ^9.0.0 ### Commits - fix(ipc): drop the signal feature from libdd-ipc (#2431) ## libdd-live-debugger **Next version:** `1.0.0` **Semver bump:** `major` **Tag:** `libdd-live-debugger-v1.0.0` **Warning:** this is an initial release. Please verify that the version and commits included are correct. [EX-3425]: https://datadoghq.atlassian.net/browse/EX-3425?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>
Motivation
Credit-card obfuscation only checked the single
card.numbertag, but the trace-agent scans all span meta attributes (with an explicit skip-list)Changes
TAG_CARD_NUMBERfast-path inobfuscate_pb_spanandobfuscate_v04_spanwith a full scan of allspan.metaentriesshould_obfuscate_cc_key) and the user-configuredkeep_valuessetFollowup for #2418