Skip to content

refactor(trace-utils)!: change header name type to accept dynamic values#1722

Merged
paullegranddc merged 7 commits intomainfrom
paullgdc/trace_utils/pass_dynamic_header_names
Mar 17, 2026
Merged

refactor(trace-utils)!: change header name type to accept dynamic values#1722
paullegranddc merged 7 commits intomainfrom
paullgdc/trace_utils/pass_dynamic_header_names

Conversation

@paullegranddc
Copy link
Copy Markdown
Contributor

@paullegranddc paullegranddc commented Mar 12, 2026

What does this PR do?

  • Change the header map type passed throughout data-pipeline and trace utils from Hashmap<&'static str, String> to http::HeaderMap`

This should not cause extra allocations for fixed header names, as the header names for string values are "const constructed" and trivially copyable.

In fact it should cause less allocations as header values are now http::HeaderValue instead of String. The static ones don't require an allocation and clone becomes a shallow copy.

Motivation

OTLP supports requires the ability to defined extra headers sent with the payload in configuration

Additional Notes

The first iteration I went through created a Hashmap<http::HeaderName, String> but this does not work, as http::HeaderName implement Borrow but does not hash like the &str it represents (see hyperium/http#824)

How to test the change?

Describe here in detail how the change can be validated.

@paullegranddc paullegranddc requested review from a team as code owners March 12, 2026 16:54
@datadog-prod-us1-4
Copy link
Copy Markdown

datadog-prod-us1-4 bot commented Mar 12, 2026

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 13ba4a8 | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback!

@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Mar 12, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-03-17 18:23:21

Comparing candidate commit 13ba4a8 in PR branch paullgdc/trace_utils/pass_dynamic_header_names with baseline commit 5426a8b in branch main.

Found 14 performance improvements and 6 performance regressions! Performance is the same for 38 metrics, 2 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:concentrator/add_spans_to_concentrator

  • 🟩 execution_time [-2.279ms; -2.274ms] or [-17.554%; -17.514%]

scenario:credit_card/is_card_number/ 378282246310005

  • 🟩 execution_time [-5.680µs; -5.610µs] or [-7.721%; -7.626%]
  • 🟩 throughput [+1123089.912op/s; +1136102.299op/s] or [+8.262%; +8.358%]

scenario:credit_card/is_card_number/378282246310005

  • 🟩 execution_time [-5.934µs; -5.858µs] or [-8.405%; -8.297%]
  • 🟩 throughput [+1282791.908op/s; +1298099.579op/s] or [+9.056%; +9.165%]

scenario:credit_card/is_card_number/37828224631000521389798

  • 🟩 execution_time [-7.129µs; -7.094µs] or [-13.492%; -13.425%]
  • 🟩 throughput [+2935263.413op/s; +2950949.801op/s] or [+15.511%; +15.593%]

scenario:credit_card/is_card_number_no_luhn/ 378282246310005

  • 🟩 execution_time [-4.987µs; -4.942µs] or [-8.540%; -8.464%]
  • 🟩 throughput [+1584681.063op/s; +1597798.758op/s] or [+9.253%; +9.329%]

scenario:credit_card/is_card_number_no_luhn/378282246310005

  • 🟩 execution_time [-5.319µs; -5.272µs] or [-9.581%; -9.498%]
  • 🟩 throughput [+1891894.919op/s; +1907099.300op/s] or [+10.502%; +10.587%]

scenario:credit_card/is_card_number_no_luhn/37828224631000521389798

  • 🟩 execution_time [-7.225µs; -7.179µs] or [-13.645%; -13.558%]
  • 🟩 throughput [+2963592.987op/s; +2982173.627op/s] or [+15.693%; +15.792%]

scenario:normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo...

  • 🟥 execution_time [+19.286µs; +19.450µs] or [+10.337%; +10.426%]
  • 🟥 throughput [-506057.161op/s; -502105.550op/s] or [-9.441%; -9.368%]

scenario:normalization/normalize_name/normalize_name/bad-name

  • 🟥 execution_time [+784.727ns; +823.625ns] or [+4.372%; +4.589%]
  • 🟥 throughput [-2441791.007op/s; -2331885.876op/s] or [-4.382%; -4.185%]

scenario:normalization/normalize_name/normalize_name/good

  • 🟥 execution_time [+429.080ns; +454.401ns] or [+4.163%; +4.409%]

scenario:profile_add_sample_frames_x1000

  • 🟩 execution_time [-195.918µs; -194.127µs] or [-4.513%; -4.472%]

scenario:sql/obfuscate_sql_string

  • 🟥 execution_time [+3.489µs; +3.555µs] or [+4.035%; +4.111%]

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 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.914µs ± 0.002µs 3.914µs ± 0.001µs 3.915µs 3.917µs 3.919µs 3.921µs 0.18% -1.831 15.996 0.05% 0.000µs 1 200
credit_card/is_card_number/ throughput 255026008.660op/s 255471833.349op/s ± 137397.668op/s 255475065.642op/s ± 80671.483op/s 255556401.298op/s 255641069.133op/s 255701042.389op/s 256523657.656op/s 0.41% 1.855 16.193 0.05% 9715.482op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 79.983µs 80.141µs ± 0.057µs 80.138µs ± 0.030µs 80.168µs 80.218µs 80.289µs 80.570µs 0.54% 2.100 14.827 0.07% 0.004µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12411620.573op/s 12478019.580op/s ± 8891.845op/s 12478455.323op/s ± 4711.217op/s 12483190.136op/s 12490748.914op/s 12494550.907op/s 12502640.558op/s 0.19% -2.074 14.600 0.07% 628.748op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 67.827µs 67.923µs ± 0.069µs 67.910µs ± 0.032µs 67.950µs 68.025µs 68.059µs 68.582µs 0.99% 4.737 41.175 0.10% 0.005µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 14581035.137op/s 14722640.408op/s ± 14795.579op/s 14725407.714op/s ± 6964.447op/s 14731108.865op/s 14737298.175op/s 14742317.014op/s 14743423.586op/s 0.12% -4.675 40.362 0.10% 1046.205op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.895µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.919µs 3.921µs 3.927µs 0.29% -1.379 13.642 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254653328.613op/s 255400354.117op/s ± 181081.215op/s 255397113.277op/s ± 106980.782op/s 255509830.769op/s 255630214.201op/s 255689696.101op/s 256716038.201op/s 0.52% 1.408 13.838 0.07% 12804.375op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 64.611µs 64.705µs ± 0.061µs 64.685µs ± 0.034µs 64.740µs 64.819µs 64.867µs 64.929µs 0.38% 1.031 0.783 0.09% 0.004µs 1 200
credit_card/is_card_number/378282246310005 throughput 15401528.786op/s 15454859.960op/s ± 14660.288op/s 15459507.691op/s ± 8025.654op/s 15465449.027op/s 15472439.099op/s 15475571.935op/s 15477288.627op/s 0.12% -1.026 0.767 0.09% 1036.639op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 45.467µs 45.730µs ± 0.105µs 45.733µs ± 0.083µs 45.811µs 45.901µs 45.938µs 45.985µs 0.55% -0.093 -0.531 0.23% 0.007µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21746083.396op/s 21867451.582op/s ± 50209.142op/s 21865814.987op/s ± 39843.245op/s 21906311.208op/s 21957375.282op/s 21978183.611op/s 21994156.986op/s 0.59% 0.103 -0.527 0.23% 3550.323op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.535µs 6.631µs ± 0.013µs 6.635µs ± 0.003µs 6.638µs 6.644µs 6.649µs 6.651µs 0.24% -2.807 14.312 0.20% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 150354542.180op/s 150812117.414op/s ± 299654.712op/s 150719140.273op/s ± 79478.844op/s 150896282.654op/s 151335192.093op/s 151800711.618op/s 153026465.477op/s 1.53% 2.858 14.814 0.20% 21188.788op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.898µs 3.915µs ± 0.003µs 3.915µs ± 0.001µs 3.917µs 3.921µs 3.923µs 3.923µs 0.21% -0.150 5.183 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254919141.245op/s 255424101.160op/s ± 194101.686op/s 255460352.574op/s ± 97211.768op/s 255531155.641op/s 255653842.268op/s 255698427.637op/s 256544314.943op/s 0.42% 0.166 5.260 0.08% 13725.062op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.384µs 65.703µs ± 0.058µs 65.695µs ± 0.030µs 65.729µs 65.811µs 65.861µs 65.888µs 0.29% -0.059 4.618 0.09% 0.004µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15177351.820op/s 15219967.129op/s ± 13368.684op/s 15221826.786op/s ± 6922.226op/s 15227751.931op/s 15235972.502op/s 15240369.435op/s 15294281.468op/s 0.48% 0.077 4.689 0.09% 945.309op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.358µs 53.425µs ± 0.028µs 53.423µs ± 0.018µs 53.441µs 53.474µs 53.507µs 53.526µs 0.19% 0.791 0.991 0.05% 0.002µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18682537.283op/s 18717727.513op/s ± 9916.225op/s 18718669.255op/s ± 6160.709op/s 18724376.923op/s 18730712.473op/s 18736101.764op/s 18741386.314op/s 0.12% -0.787 0.983 0.05% 701.183op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.896µs 3.915µs ± 0.002µs 3.915µs ± 0.001µs 3.916µs 3.918µs 3.920µs 3.921µs 0.15% -2.536 22.340 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255041639.166op/s 255429569.501op/s ± 147737.379op/s 255427969.314op/s ± 73861.739op/s 255505103.716op/s 255599544.522op/s 255689819.776op/s 256658866.112op/s 0.48% 2.567 22.642 0.06% 10446.610op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.157µs 50.218µs ± 0.032µs 50.213µs ± 0.023µs 50.239µs 50.275µs 50.302µs 50.336µs 0.25% 0.680 0.321 0.06% 0.002µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19866335.323op/s 19913308.947op/s ± 12825.171op/s 19915107.870op/s ± 9160.981op/s 19923714.588op/s 19930274.533op/s 19935552.546op/s 19937503.900op/s 0.11% -0.676 0.312 0.06% 906.877op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 45.461µs 45.751µs ± 0.099µs 45.755µs ± 0.073µs 45.830µs 45.894µs 45.944µs 45.973µs 0.48% -0.246 -0.326 0.22% 0.007µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21751893.532op/s 21857537.680op/s ± 47267.151op/s 21855571.994op/s ± 34762.629op/s 21889029.768op/s 21930972.945op/s 21964173.828op/s 21997084.131op/s 0.65% 0.256 -0.314 0.22% 3342.292op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.596µs 6.630µs ± 0.011µs 6.635µs ± 0.006µs 6.639µs 6.643µs 6.645µs 6.648µs 0.20% -0.827 -0.208 0.17% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 150417313.411op/s 150823290.596op/s ± 252852.270op/s 150722203.907op/s ± 137373.762op/s 151029809.537op/s 151289997.211op/s 151467158.478op/s 151599287.142op/s 0.58% 0.833 -0.194 0.17% 17879.355op/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.914µs; 3.915µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/ throughput [255452791.354op/s; 255490875.344op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [80.133µs; 80.149µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12476787.256op/s; 12479251.905op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [67.913µs; 67.932µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/ 378282246310005 throughput [14720589.883op/s; 14724690.933op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number/37828224631 execution_time [3.915µs; 3.916µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/37828224631 throughput [255375258.002op/s; 255425450.232op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/378282246310005 execution_time [64.696µs; 64.713µs] or [-0.013%; +0.013%] None None None
credit_card/is_card_number/378282246310005 throughput [15452828.185op/s; 15456891.735op/s] or [-0.013%; +0.013%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.716µs; 45.745µs] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [21860493.078op/s; 21874410.086op/s] or [-0.032%; +0.032%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.629µs; 6.633µs] or [-0.027%; +0.027%] None None None
credit_card/is_card_number/x371413321323331 throughput [150770588.153op/s; 150853646.675op/s] or [-0.028%; +0.028%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.915µs; 3.915µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255397200.533op/s; 255451001.787op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.695µs; 65.711µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15218114.358op/s; 15221819.900op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.421µs; 53.429µs] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18716353.219op/s; 18719101.806op/s] or [-0.007%; +0.007%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.915µs; 3.915µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255409094.521op/s; 255450044.481op/s] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.213µs; 50.222µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19911531.502op/s; 19915086.392op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.737µs; 45.765µs] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [21850986.908op/s; 21864088.453op/s] or [-0.030%; +0.030%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.629µs; 6.632µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [150788247.703op/s; 150858333.489op/s] or [-0.023%; +0.023%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.143ms 4.146ms ± 0.006ms 4.146ms ± 0.001ms 4.147ms 4.149ms 4.152ms 4.229ms 2.02% 12.271 161.887 0.15% 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.146ms; 4.147ms] or [-0.021%; +0.021%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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 89.716µs 89.995µs ± 0.192µs 89.973µs ± 0.080µs 90.052µs 90.228µs 90.589µs 91.731µs 1.95% 4.800 36.207 0.21% 0.014µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [89.968µs; 90.021µs] or [-0.030%; +0.030%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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 735.879µs 737.146µs ± 0.719µs 737.083µs ± 0.413µs 737.480µs 738.184µs 738.697µs 743.136µs 0.82% 3.118 22.659 0.10% 0.051µ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 [737.046µs; 737.246µs] or [-0.014%; +0.014%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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 493.106µs 494.044µs ± 0.468µs 494.031µs ± 0.241µs 494.269µs 494.558µs 494.961µs 498.503µs 0.91% 4.323 39.347 0.09% 0.033µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 2006004.193op/s 2024112.511op/s ± 1911.466op/s 2024164.476op/s ± 988.373op/s 2025170.507op/s 2026399.140op/s 2027037.781op/s 2027960.391op/s 0.19% -4.259 38.566 0.09% 135.161op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 370.059µs 370.769µs ± 0.448µs 370.711µs ± 0.200µs 370.941µs 371.209µs 371.632µs 375.656µs 1.33% 6.622 69.300 0.12% 0.032µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2662008.692op/s 2697097.553op/s ± 3230.354op/s 2697516.244op/s ± 1452.942op/s 2698757.237op/s 2700181.032op/s 2701067.011op/s 2702268.942op/s 0.18% -6.523 67.866 0.12% 228.421op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 167.279µs 167.597µs ± 0.159µs 167.582µs ± 0.103µs 167.686µs 167.862µs 168.077µs 168.213µs 0.38% 0.837 1.097 0.09% 0.011µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5944855.246op/s 5966686.649op/s ± 5643.180op/s 5967223.016op/s ± 3664.465op/s 5970836.283op/s 5974252.680op/s 5976502.319op/s 5978042.511op/s 0.18% -0.830 1.078 0.09% 399.033op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.200µs 37.287µs ± 0.036µs 37.285µs ± 0.023µs 37.309µs 37.351µs 37.374µs 37.379µs 0.25% 0.345 -0.046 0.10% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26753191.734op/s 26819064.007op/s ± 25701.235op/s 26820377.934op/s ± 16853.713op/s 26835231.914op/s 26856722.954op/s 26872212.970op/s 26881486.641op/s 0.23% -0.340 -0.051 0.10% 1817.352op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.423µs 45.673µs ± 0.127µs 45.677µs ± 0.055µs 45.724µs 45.773µs 45.820µs 47.114µs 3.15% 7.315 82.453 0.28% 0.009µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21225013.443op/s 21895106.744op/s ± 59472.848op/s 21893090.687op/s ± 26342.954op/s 21923027.036op/s 21960075.047op/s 21974168.798op/s 22015477.859op/s 0.56% -7.062 78.764 0.27% 4205.365op/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 [493.979µs; 494.109µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2023847.600op/s; 2024377.422op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [370.707µs; 370.832µs] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2696649.857op/s; 2697545.249op/s] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [167.575µs; 167.619µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5965904.558op/s; 5967468.739op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.282µs; 37.292µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26815502.063op/s; 26822625.951op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.655µs; 45.690µs] or [-0.038%; +0.038%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21886864.379op/s; 21903349.108op/s] or [-0.038%; +0.038%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.652ms 49.006ms ± 1.126ms 48.835ms ± 0.057ms 48.922ms 49.089ms 57.548ms 58.807ms 20.42% 7.757 59.756 2.29% 0.080ms 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.850ms; 49.162ms] or [-0.319%; +0.319%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.682ms 10.707ms ± 0.013ms 10.706ms ± 0.008ms 10.715ms 10.728ms 10.746ms 10.760ms 0.50% 0.900 1.615 0.12% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [10.706ms; 10.709ms] or [-0.016%; +0.016%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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 190.804ns 193.056ns ± 1.905ns 192.912ns ± 1.326ns 193.868ns 196.840ns 198.696ns 201.423ns 4.41% 1.332 2.482 0.98% 0.135ns 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 [192.792ns; 193.320ns] or [-0.137%; +0.137%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.411ms 3.455ms ± 0.030ms 3.446ms ± 0.009ms 3.459ms 3.531ms 3.557ms 3.565ms 3.47% 1.984 3.600 0.85% 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.451ms; 3.460ms] or [-0.119%; +0.119%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.259µs 3.219µs ± 1.420µs 3.001µs ± 0.027µs 3.027µs 3.660µs 13.983µs 14.736µs 391.01% 7.323 54.857 44.00% 0.100µ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.022µs; 3.416µs] or [-6.113%; +6.113%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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 246.384ns 256.676ns ± 13.337ns 250.634ns ± 3.164ns 258.958ns 285.064ns 300.701ns 302.327ns 20.62% 1.813 2.584 5.18% 0.943ns 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 [254.828ns; 258.524ns] or [-0.720%; +0.720%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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 144.725µs 146.598µs ± 1.666µs 146.359µs ± 0.468µs 146.824µs 148.312µs 152.343µs 162.228µs 10.84% 5.631 44.167 1.13% 0.118µ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.367µs; 146.829µs] or [-0.157%; +0.157%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.898ms 13.969ms ± 0.034ms 13.963ms ± 0.017ms 13.985ms 14.034ms 14.092ms 14.123ms 1.15% 1.348 3.184 0.25% 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 [13.964ms; 13.974ms] or [-0.034%; +0.034%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.987µs 5.047µs ± 0.038µs 5.026µs ± 0.022µs 5.086µs 5.105µs 5.109µs 5.111µs 1.69% 0.309 -1.532 0.75% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.042µs; 5.052µs] or [-0.104%; +0.104%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 32.146µs 33.112µs ± 1.422µs 32.235µs ± 0.048µs 34.185µs 35.793µs 35.841µs 36.584µs 13.49% 1.080 -0.639 4.28% 0.101µ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 [32.915µs; 33.310µs] or [-0.595%; +0.595%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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 204.776µs 205.934µs ± 0.567µs 205.884µs ± 0.319µs 206.208µs 206.841µs 207.131µs 209.521µs 1.77% 1.435 6.961 0.27% 0.040µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4772782.652op/s 4855959.957op/s ± 13309.247op/s 4857114.203op/s ± 7510.569op/s 4864150.680op/s 4874950.156op/s 4879870.045op/s 4883390.572op/s 0.54% -1.379 6.567 0.27% 941.106op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.590µs 18.752µs ± 0.137µs 18.697µs ± 0.052µs 18.819µs 19.022µs 19.219µs 19.329µs 3.38% 1.680 2.903 0.73% 0.010µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 51736799.991op/s 53330884.368op/s ± 384310.487op/s 53484819.308op/s ± 150214.825op/s 53603446.256op/s 53666987.994op/s 53770883.233op/s 53793514.052op/s 0.58% -1.636 2.695 0.72% 27174.855op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.674µs 10.749µs ± 0.045µs 10.739µs ± 0.025µs 10.766µs 10.827µs 10.927µs 10.944µs 1.91% 1.439 3.280 0.42% 0.003µs 1 200
normalization/normalize_name/normalize_name/good throughput 91375734.929op/s 93037798.372op/s ± 384954.320op/s 93116587.299op/s ± 216658.273op/s 93294760.180op/s 93509592.023op/s 93655738.857op/s 93686596.166op/s 0.61% -1.400 3.108 0.41% 27220.381op/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 [205.856µs; 206.013µs] or [-0.038%; +0.038%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4854115.423op/s; 4857804.491op/s] or [-0.038%; +0.038%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.733µs; 18.771µs] or [-0.101%; +0.101%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53277622.631op/s; 53384146.106op/s] or [-0.100%; +0.100%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.742µs; 10.755µs] or [-0.058%; +0.058%] None None None
normalization/normalize_name/normalize_name/good throughput [92984447.405op/s; 93091149.338op/s] or [-0.057%; +0.057%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.311µs 2.397µs ± 0.021µs 2.396µs ± 0.006µs 2.407µs 2.424µs 2.431µs 2.437µs 1.73% -1.852 4.790 0.85% 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.394µs; 2.399µs] or [-0.119%; +0.119%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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 164.823µs 165.557µs ± 0.320µs 165.494µs ± 0.156µs 165.694µs 166.060µs 166.687µs 167.843µs 1.42% 2.621 13.747 0.19% 0.023µ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 [165.513µs; 165.601µs] or [-0.027%; +0.027%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 13ba4a8 1773770760 paullgdc/trace_utils/pass_dynamic_header_names
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.900µs 26.251µs ± 9.925µs 18.504µs ± 0.377µs 34.842µs 43.903µs 46.897µs 63.676µs 244.13% 0.806 -0.380 37.71% 0.702µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.875µs; 27.626µs] or [-5.240%; +5.240%] None None None

Baseline

Omitted due to size.

@paullegranddc paullegranddc force-pushed the paullgdc/trace_utils/pass_dynamic_header_names branch from 55a18b2 to bac2182 Compare March 12, 2026 17:10
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 12, 2026

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/paullgdc/trace_utils/pass_dynamic_header_names

Summary by Rule

Rule Base Branch PR Branch Change
unwrap_used 11 11 No change (0%)
Total 11 11 No change (0%)

Annotation Counts by File

File Base Branch PR Branch Change
libdd-common/src/lib.rs 3 3 No change (0%)
libdd-data-pipeline/src/stats_exporter.rs 1 1 No change (0%)
libdd-data-pipeline/src/trace_exporter/mod.rs 2 2 No change (0%)
libdd-trace-utils/src/send_data/mod.rs 5 5 No change (0%)

Annotation Stats by Crate

Crate Base Branch PR Branch Change
clippy-annotation-reporter 5 5 No change (0%)
datadog-ffe-ffi 1 1 No change (0%)
datadog-ipc 28 28 No change (0%)
datadog-live-debugger 6 6 No change (0%)
datadog-live-debugger-ffi 10 10 No change (0%)
datadog-profiling-replayer 4 4 No change (0%)
datadog-remote-config 3 3 No change (0%)
datadog-sidecar 59 59 No change (0%)
libdd-common 10 10 No change (0%)
libdd-common-ffi 12 12 No change (0%)
libdd-data-pipeline 5 5 No change (0%)
libdd-ddsketch 2 2 No change (0%)
libdd-dogstatsd-client 1 1 No change (0%)
libdd-profiling 13 13 No change (0%)
libdd-telemetry 19 19 No change (0%)
libdd-tinybytes 4 4 No change (0%)
libdd-trace-normalization 2 2 No change (0%)
libdd-trace-obfuscation 9 9 No change (0%)
libdd-trace-utils 15 15 No change (0%)
Total 208 208 No change (0%)

About This Report

This 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.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 12, 2026

📚 Documentation Check Results

⚠️ 1447 documentation warning(s) found

📦 libdd-common - 166 warning(s)

📦 libdd-data-pipeline - 796 warning(s)

📦 libdd-trace-utils - 485 warning(s)


Updated: 2026-03-17 19:19:20 UTC | Commit: 473eb47 | missing-docs job results

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 12, 2026

🔒 Cargo Deny Results

⚠️ 1 issue(s) found, showing only errors (advisories, bans, sources)

📦 libdd-common - ✅ No issues

📦 libdd-data-pipeline - 1 error(s)

Show output
error[vulnerability]: Denial of Service via Stack Exhaustion
    ┌─ /home/runner/work/libdatadog/libdatadog/Cargo.lock:293:1
    │
293 │ time 0.3.41 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
    │
    ├ ID: RUSTSEC-2026-0009
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0009
    ├ ## Impact
      
      When user-provided input is provided to any type that parses with the RFC 2822 format, a denial of
      service attack via stack exhaustion is possible. The attack relies on formally deprecated and
      rarely-used features that are part of the RFC 2822 format used in a malicious manner. Ordinary,
      non-malicious input will never encounter this scenario.
      
      ## Patches
      
      A limit to the depth of recursion was added in v0.3.47. From this version, an error will be returned
      rather than exhausting the stack.
      
      ## Workarounds
      
      Limiting the length of user input is the simplest way to avoid stack exhaustion, as the amount of
      the stack consumed would be at most a factor of the length of the input.
    ├ Announcement: https://github.com/time-rs/time/blob/main/CHANGELOG.md#0347-2026-02-05
    ├ Solution: Upgrade to >=0.3.47 (try `cargo update -p time`)
    ├ time v0.3.41
      └── tracing-appender v0.2.3
          └── libdd-log v1.0.0
              └── (dev) libdd-data-pipeline v2.0.1

advisories FAILED, bans ok, sources ok

📦 libdd-trace-utils - ✅ No issues


Updated: 2026-03-17 19:21:15 UTC | Commit: 473eb47 | dependency-check job results

@paullegranddc paullegranddc force-pushed the paullgdc/trace_utils/pass_dynamic_header_names branch from bac2182 to 8745975 Compare March 12, 2026 17:30
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Mar 17, 2026

Codecov Report

❌ Patch coverage is 91.94631% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.51%. Comparing base (fc16a5e) to head (13ba4a8).
⚠️ Report is 35 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1722      +/-   ##
==========================================
+ Coverage   71.25%   71.51%   +0.26%     
==========================================
  Files         429      430       +1     
  Lines       63547    64075     +528     
==========================================
+ Hits        45279    45824     +545     
+ Misses      18268    18251      -17     
Components Coverage Δ
libdd-crashtracker 63.97% <ø> (+1.54%) ⬆️
libdd-crashtracker-ffi 18.19% <ø> (+1.01%) ⬆️
libdd-alloc 98.77% <ø> (ø)
libdd-data-pipeline 87.92% <100.00%> (-0.41%) ⬇️
libdd-data-pipeline-ffi 74.85% <ø> (-2.10%) ⬇️
libdd-common 79.73% <ø> (ø)
libdd-common-ffi 73.40% <ø> (ø)
libdd-telemetry 62.48% <ø> (ø)
libdd-telemetry-ffi 16.75% <ø> (ø)
libdd-dogstatsd-client 82.64% <ø> (ø)
datadog-ipc 80.35% <ø> (ø)
libdd-profiling 81.60% <ø> (+<0.01%) ⬆️
libdd-profiling-ffi 63.65% <ø> (ø)
datadog-sidecar 33.10% <ø> (+0.49%) ⬆️
datdog-sidecar-ffi 10.79% <ø> (+2.44%) ⬆️
spawn-worker 54.69% <ø> (ø)
libdd-tinybytes 93.16% <ø> (ø)
libdd-trace-normalization 81.71% <ø> (ø)
libdd-trace-obfuscation 91.80% <ø> (ø)
libdd-trace-protobuf 68.25% <ø> (ø)
libdd-trace-utils 88.95% <90.47%> (-0.13%) ⬇️
datadog-tracer-flare 90.46% <ø> (+1.50%) ⬆️
libdd-log 74.69% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts bot commented Mar 17, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.63 MB 8.63 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 100.29 MB 100.23 MB --.06% (-61.77 KB) 💪
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.21 MB 11.22 MB +0% (+808 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 116.96 MB 116.86 MB --.08% (-100.28 KB) 💪
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 27.17 MB 27.16 MB --.03% (-10.00 KB) 💪
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 76.61 KB 76.61 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 186.07 MB 185.99 MB --.04% (-80.00 KB) 💪
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 917.15 MB 917.09 MB -0% (-62.48 KB) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.94 MB 9.93 MB --.02% (-2.50 KB) 💪
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 76.61 KB 76.61 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 24.77 MB 24.76 MB --.06% (-16.00 KB) 💪
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 51.44 MB 51.42 MB --.03% (-18.55 KB) 💪
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 22.97 MB 22.96 MB --.04% (-10.00 KB) 💪
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 77.80 KB 77.80 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 190.23 MB 190.14 MB --.04% (-88.00 KB) 💪
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 900.81 MB 900.75 MB -0% (-57.97 KB) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.53 MB 7.53 MB --.01% (-1.50 KB) 💪
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 77.80 KB 77.80 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 26.52 MB 26.50 MB --.08% (-24.00 KB) 💪
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 47.06 MB 47.04 MB --.03% (-16.60 KB) 💪
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 87.50 MB 87.45 MB --.06% (-56.67 KB) 💪
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.21 MB 10.20 MB --.03% (-4.00 KB) 💪
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 109.83 MB 109.74 MB --.07% (-88.28 KB) 💪
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.95 MB 11.95 MB --.02% (-3.49 KB) 💪

Copy link
Copy Markdown
Contributor

@VianneyRuhlmann VianneyRuhlmann left a comment

Choose a reason for hiding this comment

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

LGTM

#[allow(clippy::unwrap_used)]
headers.insert(
DATADOG_TRACE_COUNT,
HeaderValue::try_from(chunks.to_string()).unwrap(),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can't you use .into()

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yes I should

let mut headers = self.headers.clone();
headers.insert(DATADOG_TRACE_COUNT_STR, chunks.to_string());
headers.insert(CONTENT_TYPE.as_str(), APPLICATION_MSGPACK_STR.to_string());
headers.insert(DATADOG_TRACE_COUNT, chunks.into());
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

should you also reserve here ?

@paullegranddc paullegranddc merged commit 4dd532f into main Mar 17, 2026
54 of 55 checks passed
@paullegranddc paullegranddc deleted the paullgdc/trace_utils/pass_dynamic_header_names branch March 17, 2026 22:39
hoolioh pushed a commit that referenced this pull request Mar 18, 2026
# 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>
hoolioh pushed a commit that referenced this pull request Mar 18, 2026
# Release proposal for libdd-common 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)

Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
hoolioh pushed a commit that referenced this pull request Mar 19, 2026
# Release proposal for libdd-common 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)

Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
bwoebi added a commit that referenced this pull request Mar 20, 2026
…-unprocessed

* 'main' of github.com:DataDog/libdatadog:
  feat(sidecar): add thread mode as fallback connection for restricted environments (#1447)
  feat(profiling-ffi): ProfilesDictionary_insert_strs (#1764)
  chore(release): merge release branch to main (#1760)
  fix(libdd-crashtracker-ffi)!: add missing fields for endpoint configuration (#1758)
  ci: prevent running macos tests on release branches (#1765)
  chore(datadog-tracer-flare): remove unnecessary features/deps (#1761)
  fix(profiling-ffi): Windows extern statics need __declspec(dllimport) (#1468)
  feat(profiling): thread id/name as well-known strs (#1757)
  ci: switch to ephemeral branches (#1731)
  chore(crashtracker): use weaker mem ordering for OP_COUNTERS (#1744)
  refactor(trace-utils)!: change header name type to accept dynamic values (#1722)
paullegranddc pushed a commit that referenced this pull request Mar 23, 2026
# Release proposal for libdd-data-pipeline and its dependencies

This PR contains version bumps based on public API changes and commits
since last release.

## libdd-common
**Next version:** `3.0.1`

**Semver bump:** `patch`
**Tag:** `libdd-common-v3.0.1`

### Commits

- chore(build): update reqwest and quinn-proto dependency for dependabot
alert (#1774)
- chore(build): ekump/APMSP-2718 update aws-lc dependencies (#1751)
## libdd-trace-protobuf
**Next version:** `3.0.0`

**Semver bump:** `major`
**Tag:** `libdd-trace-protobuf-v3.0.0`

### Commits

- fix(trace-stats): rename wrongly cased stats fields (#1780)
- feat(rc)!: add process_tags to remote config Target (#1586)
## libdd-telemetry
**Next version:** `3.1.0`

**Semver bump:** `minor`
**Tag:** `libdd-telemetry-v3.1.0`

### Commits

- refactor(sidecar)!: Refactor tarpc away (#1742)
## libdd-trace-utils
**Next version:** `3.0.0`

**Semver bump:** `major`
**Tag:** `libdd-trace-utils-v3.0.0`

### Commits

- fix(trace-stats): rename wrongly cased stats fields (#1780)
- refactor(trace-utils)!: change header name type to accept dynamic
values (#1722)
## libdd-data-pipeline
**Next version:** `3.0.0`

**Semver bump:** `major`
**Tag:** `libdd-data-pipeline-v3.0.0`

### Commits

- feat(agents)!: retrieve container tags hash from /info endpoint
(#1700)
- refactor(trace-utils)!: change header name type to accept dynamic
values (#1722)

---------

Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
iunanua pushed a commit that referenced this pull request Mar 24, 2026
# Release proposal for libdd-data-pipeline and its dependencies

This PR contains version bumps based on public API changes and commits
since last release.

## libdd-common
**Next version:** `3.0.1`

**Semver bump:** `patch`
**Tag:** `libdd-common-v3.0.1`

### Commits

- chore(build): update reqwest and quinn-proto dependency for dependabot
alert (#1774)
- chore(build): ekump/APMSP-2718 update aws-lc dependencies (#1751)
## libdd-trace-protobuf
**Next version:** `3.0.0`

**Semver bump:** `major`
**Tag:** `libdd-trace-protobuf-v3.0.0`

### Commits

- fix(trace-stats): rename wrongly cased stats fields (#1780)
- feat(rc)!: add process_tags to remote config Target (#1586)
## libdd-telemetry
**Next version:** `3.1.0`

**Semver bump:** `minor`
**Tag:** `libdd-telemetry-v3.1.0`

### Commits

- refactor(sidecar)!: Refactor tarpc away (#1742)
## libdd-trace-utils
**Next version:** `3.0.0`

**Semver bump:** `major`
**Tag:** `libdd-trace-utils-v3.0.0`

### Commits

- fix(trace-stats): rename wrongly cased stats fields (#1780)
- refactor(trace-utils)!: change header name type to accept dynamic
values (#1722)
## libdd-data-pipeline
**Next version:** `3.0.0`

**Semver bump:** `major`
**Tag:** `libdd-data-pipeline-v3.0.0`

### Commits

- feat(agents)!: retrieve container tags hash from /info endpoint
(#1700)
- refactor(trace-utils)!: change header name type to accept dynamic
values (#1722)

---------

Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
iunanua pushed a commit that referenced this pull request Mar 24, 2026
# Release proposal for libdd-data-pipeline and its dependencies

This PR contains version bumps based on public API changes and commits
since last release.

## libdd-common
**Next version:** `3.0.1`

**Semver bump:** `patch`
**Tag:** `libdd-common-v3.0.1`

### Commits

- chore(build): update reqwest and quinn-proto dependency for dependabot
alert (#1774)
- chore(build): ekump/APMSP-2718 update aws-lc dependencies (#1751)
## libdd-trace-protobuf
**Next version:** `3.0.0`

**Semver bump:** `major`
**Tag:** `libdd-trace-protobuf-v3.0.0`

### Commits

- fix(trace-stats): rename wrongly cased stats fields (#1780)
- feat(rc)!: add process_tags to remote config Target (#1586)
## libdd-telemetry
**Next version:** `3.1.0`

**Semver bump:** `minor`
**Tag:** `libdd-telemetry-v3.1.0`

### Commits

- refactor(sidecar)!: Refactor tarpc away (#1742)
## libdd-trace-utils
**Next version:** `3.0.0`

**Semver bump:** `major`
**Tag:** `libdd-trace-utils-v3.0.0`

### Commits

- fix(trace-stats): rename wrongly cased stats fields (#1780)
- refactor(trace-utils)!: change header name type to accept dynamic
values (#1722)
## libdd-data-pipeline
**Next version:** `3.0.0`

**Semver bump:** `major`
**Tag:** `libdd-data-pipeline-v3.0.0`

### Commits

- feat(agents)!: retrieve container tags hash from /info endpoint
(#1700)
- refactor(trace-utils)!: change header name type to accept dynamic
values (#1722)

---------

Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants