Skip to content

feat(trace-export): map DD span resource to OTLP resource.name attribute#1811

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
rachel.yang/otlp-trace-resource
Mar 27, 2026
Merged

feat(trace-export): map DD span resource to OTLP resource.name attribute#1811
gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits into
mainfrom
rachel.yang/otlp-trace-resource

Conversation

@rachelyangdog
Copy link
Copy Markdown
Contributor

What does this PR do?

Adds resource.name as a per-span OTLP attribute when mapping Datadog spans to OTLP. The Datadog span resource field now maps to two places:

  • OtlpSpan.name (existing — the OTLP span name)
  • span.attributes["resource.name"] (new)
    This follows the same conditional pattern as operation.name and span.type: the attribute is only emitted when the field is non-empty.

Motivation

Spec update to the OTLP trace export RFC: the Datadog resource field should be preserved as a resource.name attribute so downstream consumers can reconstruct the original Datadog resource name independently of the OTLP span name.

Additional Notes

This builds on top of feat(otel): add support for OTLP trace export (#1641). The dropped_attributes_count accounting in map_attributes is updated to include the new resource.name slot.

How to test the change?

Describe here in detail how the change can be validated.

@rachelyangdog rachelyangdog requested a review from a team as a code owner March 27, 2026 15:28
@rachelyangdog rachelyangdog requested review from genesor and removed request for a team March 27, 2026 15:28
@github-actions
Copy link
Copy Markdown
Contributor

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/rachel.yang/otlp-trace-resource

Summary by Rule

Rule Base Branch PR Branch Change

Annotation Counts by File

File Base Branch PR Branch Change

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 20 20 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 55 55 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 8 8 No change (0%)
libdd-trace-utils 15 15 No change (0%)
Total 195 195 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.

Copy link
Copy Markdown

@zacharycmontoya zacharycmontoya left a comment

Choose a reason for hiding this comment

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

LGTM from the spec side. Thanks for the implementing the new mapping!

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Mar 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.24%. Comparing base (a29b90b) to head (9845517).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1811      +/-   ##
==========================================
+ Coverage   71.16%   71.24%   +0.07%     
==========================================
  Files         414      414              
  Lines       65739    65963     +224     
==========================================
+ Hits        46786    46995     +209     
- Misses      18953    18968      +15     
Components Coverage Δ
libdd-crashtracker 65.24% <ø> (-0.03%) ⬇️
libdd-crashtracker-ffi 34.47% <ø> (-0.77%) ⬇️
libdd-alloc 98.77% <ø> (ø)
libdd-data-pipeline 86.53% <ø> (-1.03%) ⬇️
libdd-data-pipeline-ffi 69.94% <ø> (-5.83%) ⬇️
libdd-common 79.79% <ø> (ø)
libdd-common-ffi 73.87% <ø> (ø)
libdd-telemetry 62.48% <ø> (ø)
libdd-telemetry-ffi 16.75% <ø> (ø)
libdd-dogstatsd-client 82.64% <ø> (ø)
datadog-ipc 72.48% <ø> (-0.08%) ⬇️
libdd-profiling 81.61% <ø> (-0.02%) ⬇️
libdd-profiling-ffi 64.94% <ø> (ø)
datadog-sidecar 31.62% <ø> (+0.83%) ⬆️
datdog-sidecar-ffi 13.26% <ø> (+3.89%) ⬆️
spawn-worker 54.69% <ø> (ø)
libdd-tinybytes 93.16% <ø> (ø)
libdd-trace-normalization 81.71% <ø> (ø)
libdd-trace-obfuscation 87.24% <ø> (-0.13%) ⬇️
libdd-trace-protobuf 68.25% <ø> (ø)
libdd-trace-utils 88.72% <100.00%> (+0.08%) ⬆️
datadog-tracer-flare 86.88% <ø> (ø)
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.

@datadog-datadog-prod-us1
Copy link
Copy Markdown
Contributor

datadog-datadog-prod-us1 Bot commented Mar 27, 2026

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 71.24% (+0.08%)

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

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Mar 27, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-03-27 19:11:29

Comparing candidate commit 9845517 in PR branch rachel.yang/otlp-trace-resource with baseline commit 7824b52 in branch main.

Found 1 performance improvements and 0 performance regressions! Performance is the same for 61 metrics, 0 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:profile_serialize_compressed_pprof_timestamped_x1000

  • 🟩 execution_time [-39.484µs; -38.854µs] or [-4.242%; -4.174%]

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 9845517 1774637605 rachel.yang/otlp-trace-resource
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.417ms 3.448ms ± 0.023ms 3.443ms ± 0.009ms 3.456ms 3.485ms 3.507ms 3.656ms 6.19% 4.318 32.973 0.66% 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.445ms; 3.451ms] or [-0.092%; +0.092%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 243.030ns 253.610ns ± 12.208ns 248.895ns ± 4.359ns 255.370ns 283.911ns 288.750ns 290.168ns 16.58% 1.701 1.745 4.80% 0.863ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [251.918ns; 255.302ns] or [-0.667%; +0.667%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 726.877µs 727.640µs ± 0.430µs 727.599µs ± 0.292µs 727.905µs 728.391µs 728.761µs 730.018µs 0.33% 1.232 3.979 0.06% 0.030µ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 [727.581µs; 727.700µs] or [-0.008%; +0.008%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 289.155µs 289.803µs ± 0.707µs 289.697µs ± 0.159µs 289.896µs 290.355µs 291.438µs 298.468µs 3.03% 9.489 111.564 0.24% 0.050µ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 [289.705µs; 289.901µs] or [-0.034%; +0.034%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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.721ns 192.939ns ± 1.850ns 192.798ns ± 1.275ns 193.759ns 196.519ns 197.875ns 199.323ns 3.38% 1.023 0.770 0.96% 0.131ns 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.683ns; 193.196ns] or [-0.133%; +0.133%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 14.035µs 14.696µs ± 0.858µs 14.118µs ± 0.044µs 15.434µs 16.298µs 16.640µs 16.759µs 18.70% 0.925 -0.807 5.82% 0.061µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [14.577µs; 14.815µs] or [-0.809%; +0.809%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 495.560µs 496.522µs ± 0.901µs 496.309µs ± 0.310µs 496.665µs 498.316µs 500.637µs 501.355µs 1.02% 3.039 10.741 0.18% 0.064µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1994594.870op/s 2014014.024op/s ± 3633.323op/s 2014874.926op/s ± 1259.300op/s 2015997.839op/s 2016895.365op/s 2017832.505op/s 2017920.253op/s 0.15% -3.020 10.616 0.18% 256.915op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 370.628µs 371.466µs ± 0.336µs 371.455µs ± 0.224µs 371.671µs 372.085µs 372.395µs 372.579µs 0.30% 0.478 0.429 0.09% 0.024µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2683993.596op/s 2692035.495op/s ± 2432.810op/s 2692115.665op/s ± 1622.301op/s 2693839.228op/s 2695578.331op/s 2696723.067op/s 2698122.236op/s 0.22% -0.472 0.420 0.09% 172.026op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 167.933µs 168.168µs ± 0.123µs 168.151µs ± 0.070µs 168.230µs 168.366µs 168.613µs 168.829µs 0.40% 1.314 4.419 0.07% 0.009µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5923162.804op/s 5946429.444op/s ± 4359.044op/s 5947048.038op/s ± 2460.909op/s 5948986.473op/s 5952832.690op/s 5954494.641op/s 5954755.766op/s 0.13% -1.304 4.366 0.07% 308.231op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.909µs 37.106µs ± 0.124µs 37.127µs ± 0.115µs 37.216µs 37.281µs 37.327µs 37.345µs 0.59% 0.023 -1.444 0.33% 0.009µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26777475.173op/s 26949901.773op/s ± 89707.814op/s 26934834.394op/s ± 83342.530op/s 27040679.751op/s 27073153.477op/s 27079694.089op/s 27093632.023op/s 0.59% -0.017 -1.447 0.33% 6343.300op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 46.304µs 46.443µs ± 0.053µs 46.443µs ± 0.036µs 46.477µs 46.536µs 46.572µs 46.591µs 0.32% 0.180 -0.056 0.11% 0.004µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21463536.221op/s 21531791.507op/s ± 24628.533op/s 21531588.171op/s ± 16874.294op/s 21549601.739op/s 21573333.467op/s 21584559.361op/s 21596306.056op/s 0.30% -0.173 -0.058 0.11% 1741.500op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [496.398µs; 496.647µs] or [-0.025%; +0.025%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [2013510.481op/s; 2014517.568op/s] or [-0.025%; +0.025%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [371.420µs; 371.513µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2691698.331op/s; 2692372.659op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [168.151µs; 168.185µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5945825.323op/s; 5947033.566op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.089µs; 37.123µs] or [-0.046%; +0.046%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26937469.133op/s; 26962334.413op/s] or [-0.046%; +0.046%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [46.436µs; 46.450µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21528378.229op/s; 21535204.785op/s] 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 9845517 1774637605 rachel.yang/otlp-trace-resource
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.286µs 34.981µs ± 1.297µs 34.390µs ± 0.047µs 34.450µs 37.762µs 37.779µs 39.018µs 13.46% 1.723 1.045 3.70% 0.092µ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.801µs; 35.161µs] or [-0.514%; +0.514%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 5.269µs 5.472µs ± 0.046µs 5.473µs ± 0.042µs 5.513µs 5.530µs 5.536µs 5.578µs 1.93% -0.404 0.124 0.84% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [5.465µs; 5.478µs] or [-0.117%; +0.117%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 14.800ms 14.831ms ± 0.016ms 14.830ms ± 0.010ms 14.840ms 14.857ms 14.881ms 14.898ms 0.46% 1.129 2.677 0.11% 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 [14.829ms; 14.833ms] or [-0.015%; +0.015%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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.303µs 2.380µs ± 0.019µs 2.381µs ± 0.006µs 2.391µs 2.400µs 2.408µs 2.410µs 1.21% -2.196 5.882 0.79% 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.378µs; 2.383µs] or [-0.109%; +0.109%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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_timestamped_x1000 execution_time 4.191ms 4.195ms ± 0.008ms 4.195ms ± 0.001ms 4.196ms 4.198ms 4.202ms 4.304ms 2.60% 12.385 163.349 0.19% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_timestamped_x1000 execution_time [4.194ms; 4.197ms] or [-0.027%; +0.027%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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.893µs 3.912µs ± 0.002µs 3.911µs ± 0.001µs 3.913µs 3.915µs 3.917µs 3.919µs 0.20% -1.640 14.181 0.06% 0.000µs 1 200
credit_card/is_card_number/ throughput 255161736.317op/s 255652613.004op/s ± 160333.363op/s 255663031.132op/s ± 93690.949op/s 255747780.087op/s 255837448.715op/s 255933017.834op/s 256847156.455op/s 0.46% 1.666 14.386 0.06% 11337.281op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 78.814µs 79.577µs ± 0.329µs 79.555µs ± 0.206µs 79.751µs 80.239µs 80.390µs 80.673µs 1.41% 0.664 0.509 0.41% 0.023µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12395724.656op/s 12566591.023op/s ± 51886.719op/s 12569963.448op/s ± 32588.575op/s 12603086.192op/s 12636086.987op/s 12663742.551op/s 12688033.382op/s 0.94% -0.638 0.468 0.41% 3668.945op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 72.285µs 72.894µs ± 0.340µs 72.870µs ± 0.223µs 73.104µs 73.541µs 73.753µs 74.081µs 1.66% 0.596 0.309 0.47% 0.024µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13498776.439op/s 13718794.258op/s ± 63809.579op/s 13723089.785op/s ± 42089.955op/s 13763478.885op/s 13810116.834op/s 13825400.347op/s 13834098.063op/s 0.81% -0.569 0.249 0.46% 4512.019op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.894µs 3.912µs ± 0.003µs 3.912µs ± 0.001µs 3.914µs 3.916µs 3.919µs 3.921µs 0.23% -0.972 9.538 0.07% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255053566.735op/s 255616100.806op/s ± 172230.446op/s 255639196.218op/s ± 93656.645op/s 255713917.230op/s 255815107.990op/s 255917789.379op/s 256776561.411op/s 0.44% 0.993 9.679 0.07% 12178.532op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 69.163µs 69.599µs ± 0.261µs 69.517µs ± 0.136µs 69.713µs 70.155µs 70.364µs 70.424µs 1.30% 1.182 1.056 0.37% 0.018µs 1 200
credit_card/is_card_number/378282246310005 throughput 14199781.659op/s 14368162.614op/s ± 53723.549op/s 14384924.690op/s ± 28004.048op/s 14405556.584op/s 14429978.265op/s 14443602.028op/s 14458557.156op/s 0.51% -1.164 1.005 0.37% 3798.829op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.147µs 52.287µs ± 0.047µs 52.294µs ± 0.023µs 52.314µs 52.355µs 52.384µs 52.401µs 0.21% -0.564 0.358 0.09% 0.003µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19083665.972op/s 19125201.177op/s ± 17168.895op/s 19122804.108op/s ± 8570.681op/s 19131793.244op/s 19157899.083op/s 19166405.201op/s 19176547.083op/s 0.28% 0.569 0.362 0.09% 1214.024op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.701µs 5.824µs ± 0.065µs 5.823µs ± 0.044µs 5.867µs 5.935µs 5.970µs 5.987µs 2.82% 0.145 -0.469 1.12% 0.005µs 1 200
credit_card/is_card_number/x371413321323331 throughput 167031553.390op/s 171721750.030op/s ± 1922209.930op/s 171735486.023op/s ± 1291638.001op/s 173022696.536op/s 175197067.271op/s 175365927.024op/s 175393838.893op/s 2.13% -0.094 -0.490 1.12% 135920.768op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.896µs 3.913µs ± 0.003µs 3.912µs ± 0.002µs 3.915µs 3.918µs 3.920µs 3.921µs 0.23% -0.356 4.770 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255024893.363op/s 255562217.566op/s ± 197231.002op/s 255601980.916op/s ± 120132.988op/s 255690552.816op/s 255808864.101op/s 255837354.294op/s 256706095.223op/s 0.43% 0.372 4.851 0.08% 13946.338op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 64.066µs 64.460µs ± 0.165µs 64.437µs ± 0.108µs 64.567µs 64.772µs 64.932µs 64.998µs 0.87% 0.647 0.526 0.26% 0.012µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15385072.082op/s 15513575.657op/s ± 39612.904op/s 15519153.748op/s ± 26114.324op/s 15542625.176op/s 15564531.235op/s 15593830.863op/s 15608981.408op/s 0.58% -0.630 0.499 0.25% 2801.055op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.779µs 58.056µs ± 0.187µs 58.020µs ± 0.110µs 58.141µs 58.412µs 58.656µs 58.810µs 1.36% 1.322 2.106 0.32% 0.013µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17003803.316op/s 17224916.765op/s ± 55263.005op/s 17235459.373op/s ± 32527.133op/s 17265335.504op/s 17287490.695op/s 17297784.323op/s 17307460.290op/s 0.42% -1.299 2.018 0.32% 3907.685op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.892µs 3.912µs ± 0.003µs 3.912µs ± 0.001µs 3.913µs 3.916µs 3.918µs 3.918µs 0.17% -1.834 15.940 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255223854.377op/s 255648113.638op/s ± 167443.553op/s 255648461.276op/s ± 82812.136op/s 255733245.322op/s 255855734.269op/s 255905828.641op/s 256932840.850op/s 0.50% 1.862 16.186 0.07% 11840.047op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.592µs 54.968µs ± 0.160µs 54.968µs ± 0.087µs 55.049µs 55.255µs 55.366µs 55.472µs 0.92% 0.266 0.694 0.29% 0.011µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 18027146.518op/s 18192451.308op/s ± 52855.625op/s 18192350.407op/s ± 28921.410op/s 18221951.297op/s 18286907.785op/s 18309944.572op/s 18317623.385op/s 0.69% -0.243 0.676 0.29% 3737.457op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.196µs 52.318µs ± 0.039µs 52.316µs ± 0.026µs 52.345µs 52.376µs 52.417µs 52.431µs 0.22% 0.077 0.349 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19072523.070op/s 19113899.021op/s ± 14112.182op/s 19114687.328op/s ± 9569.143op/s 19123311.220op/s 19135518.947op/s 19146293.078op/s 19158672.827op/s 0.23% -0.071 0.349 0.07% 997.882op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.709µs 5.832µs ± 0.056µs 5.834µs ± 0.036µs 5.870µs 5.936µs 5.965µs 5.969µs 2.30% 0.159 -0.359 0.97% 0.004µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 167545923.927op/s 171478021.729op/s ± 1658124.498op/s 171406459.222op/s ± 1065886.907op/s 172487750.581op/s 174242699.222op/s 174779005.845op/s 175162186.167op/s 2.19% -0.113 -0.386 0.96% 117247.108op/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.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ throughput [255630392.342op/s; 255674833.666op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [79.532µs; 79.623µs] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12559400.023op/s; 12573782.024op/s] or [-0.057%; +0.057%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [72.847µs; 72.941µs] or [-0.065%; +0.065%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13709950.864op/s; 13727637.652op/s] or [-0.064%; +0.064%] None None None
credit_card/is_card_number/37828224631 execution_time [3.912µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255592231.322op/s; 255639970.289op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [69.563µs; 69.636µs] or [-0.052%; +0.052%] None None None
credit_card/is_card_number/378282246310005 throughput [14360717.047op/s; 14375608.181op/s] or [-0.052%; +0.052%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.281µs; 52.294µs] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19122821.734op/s; 19127580.621op/s] or [-0.012%; +0.012%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.815µs; 5.833µs] or [-0.155%; +0.155%] None None None
credit_card/is_card_number/x371413321323331 throughput [171455350.220op/s; 171988149.839op/s] or [-0.155%; +0.155%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.913µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255534883.246op/s; 255589551.886op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.437µs; 64.483µs] or [-0.035%; +0.035%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15508085.690op/s; 15519065.625op/s] or [-0.035%; +0.035%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [58.030µs; 58.082µs] or [-0.045%; +0.045%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17217257.844op/s; 17232575.686op/s] or [-0.044%; +0.044%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255624907.572op/s; 255671319.704op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.946µs; 54.990µs] or [-0.040%; +0.040%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18185126.027op/s; 18199776.590op/s] or [-0.040%; +0.040%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.313µs; 52.323µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19111943.209op/s; 19115854.834op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.824µs; 5.840µs] or [-0.134%; +0.134%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [171248221.621op/s; 171707821.837op/s] or [-0.134%; +0.134%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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.230ms 4.235ms ± 0.006ms 4.234ms ± 0.001ms 4.235ms 4.240ms 4.275ms 4.277ms 1.02% 5.226 28.995 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.234ms; 4.236ms] or [-0.021%; +0.021%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 5.059µs 5.121µs ± 0.036µs 5.133µs ± 0.021µs 5.149µs 5.173µs 5.179µs 5.179µs 0.90% -0.235 -1.336 0.70% 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.116µs; 5.126µs] or [-0.097%; +0.097%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 50.808ms 51.083ms ± 0.973ms 50.950ms ± 0.068ms 51.022ms 51.181ms 53.819ms 62.911ms 23.48% 10.097 112.595 1.90% 0.069ms 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 [50.948ms; 51.218ms] or [-0.264%; +0.264%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_serialize_compressed_pprof_timestamped_x1000 execution_time 889.218µs 891.700µs ± 1.180µs 891.606µs ± 0.804µs 892.490µs 893.623µs 894.867µs 895.293µs 0.41% 0.225 -0.054 0.13% 0.083µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_serialize_compressed_pprof_timestamped_x1000 execution_time [891.536µs; 891.863µs] or [-0.018%; +0.018%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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.734ms 13.785ms ± 0.029ms 13.781ms ± 0.014ms 13.796ms 13.831ms 13.906ms 13.978ms 1.43% 2.674 12.197 0.21% 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.781ms; 13.789ms] or [-0.030%; +0.030%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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 145.392µs 147.120µs ± 1.640µs 146.896µs ± 0.484µs 147.402µs 148.607µs 154.062µs 163.423µs 11.25% 6.218 52.319 1.11% 0.116µ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.892µs; 147.347µs] or [-0.155%; +0.155%] None None None

Group 20

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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.680µs 186.081µs ± 0.201µs 186.034µs ± 0.140µs 186.236µs 186.385µs 186.549µs 187.074µs 0.56% 0.974 2.220 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 5345476.117op/s 5374020.079op/s ± 5796.638op/s 5375375.218op/s ± 4046.490op/s 5378482.829op/s 5381493.973op/s 5383056.961op/s 5385604.575op/s 0.19% -0.963 2.168 0.11% 409.884op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.801µs 17.864µs ± 0.027µs 17.865µs ± 0.017µs 17.883µs 17.901µs 17.921µs 17.961µs 0.54% -0.042 0.181 0.15% 0.002µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 55674676.490op/s 55979174.891op/s ± 85009.770op/s 55976318.728op/s ± 51827.177op/s 56021182.598op/s 56128615.090op/s 56154448.836op/s 56177043.605op/s 0.36% 0.052 0.168 0.15% 6011.099op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.549µs 10.603µs ± 0.028µs 10.603µs ± 0.021µs 10.625µs 10.648µs 10.653µs 10.657µs 0.51% -0.092 -0.982 0.26% 0.002µs 1 200
normalization/normalize_name/normalize_name/good throughput 93838197.160op/s 94317423.782op/s ± 249063.586op/s 94316698.916op/s ± 187351.474op/s 94483992.355op/s 94717102.994op/s 94772953.304op/s 94791805.357op/s 0.50% 0.100 -0.981 0.26% 17611.455op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [186.053µs; 186.108µ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 [5373216.721op/s; 5374823.438op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [17.860µs; 17.868µs] or [-0.021%; +0.021%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55967393.354op/s; 55990956.427op/s] or [-0.021%; +0.021%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.599µs; 10.606µs] or [-0.037%; +0.037%] None None None
normalization/normalize_name/normalize_name/good throughput [94282905.964op/s; 94351941.600op/s] or [-0.037%; +0.037%] None None None

Group 21

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 9845517 1774637605 rachel.yang/otlp-trace-resource
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.685µs 162.182µs ± 0.539µs 162.096µs ± 0.141µs 162.276µs 162.593µs 163.329µs 168.786µs 4.13% 9.441 111.371 0.33% 0.038µ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.107µs; 162.257µs] or [-0.046%; +0.046%] None None None

Baseline

Omitted due to size.

@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts Bot commented Mar 27, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.76 MB 8.76 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 101.90 MB 101.91 MB +0% (+7.32 KB) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.36 MB 11.36 MB +0% (+48 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 118.84 MB 118.85 MB +0% (+7.21 KB) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 27.39 MB 27.39 MB +0% (+512 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 80.69 KB 80.69 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 187.21 MB 187.19 MB -0% (-16.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 924.91 MB 924.91 MB +0% (+1.20 KB) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.06 MB 9.06 MB +0% (+512 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 80.69 KB 80.69 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 26.98 MB 26.98 MB +.02% (+8.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 61.28 MB 61.28 MB +0% (+3.61 KB) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 23.20 MB 23.20 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 81.94 KB 81.94 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 191.48 MB 191.47 MB -0% (-8.00 KB) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 908.20 MB 908.20 MB +0% (+1.15 KB) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 6.90 MB 6.90 MB +0% (+512 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 81.94 KB 81.94 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 29.11 MB 29.11 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 57.68 MB 57.68 MB +0% (+3.07 KB) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 88.72 MB 88.72 MB +0% (+2.59 KB) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.32 MB 10.32 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 111.54 MB 111.55 MB +0% (+10.33 KB) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 12.07 MB 12.07 MB 0% (0 B) 👌

});
}
let resource_name = span.resource.borrow();
let has_resource_name = !resource_name.is_empty();
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.

is it possible that span.resource would ever actually be empty? If so, should the test cover this scenario too?

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.

I think span.resource could theoretically be empty for a malformed span decoded off the wire, though in practice the datadog sdk always sets it. The guard is consistent with how operation.name and span.type are currently handled. I added a new test that covers the empty case.

Copy link
Copy Markdown
Contributor

@ekump ekump left a comment

Choose a reason for hiding this comment

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

one question with a conditional request for test coverage. LGTM when/if addressed.

@rachelyangdog
Copy link
Copy Markdown
Contributor Author

/merge

@gh-worker-devflow-routing-ef8351
Copy link
Copy Markdown

gh-worker-devflow-routing-ef8351 Bot commented Mar 27, 2026

View all feedbacks in Devflow UI.

2026-03-27 19:02:07 UTC ℹ️ Start processing command /merge


2026-03-27 19:02:13 UTC ℹ️ MergeQueue: waiting for PR to be ready

This pull request is not mergeable according to GitHub. Common reasons include pending required checks, missing approvals, or merge conflicts — but it could also be blocked by other repository rules or settings.
It will be added to the queue as soon as checks pass and/or get approvals. View in MergeQueue UI.
Note: if you pushed new commits since the last approval, you may need additional approval.
You can remove it from the waiting list with /remove command.


2026-03-27 19:34:07 UTC ℹ️ MergeQueue: merge request added to the queue

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


2026-03-27 20:08:18 UTC ℹ️ MergeQueue: This merge request was merged

@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot merged commit 9b42048 into main Mar 27, 2026
106 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot deleted the rachel.yang/otlp-trace-resource branch March 27, 2026 20:08
iunanua added a commit that referenced this pull request May 18, 2026
# Release proposal for libdd-sampling and its dependencies

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

## libdd-tinybytes
**Next version:** `1.1.1`
**Semver bump:** `patch`
**Tag:** `libdd-tinybytes-v1.1.1`

### Commits

- perf: pre-compute string messagepack encoding (#1948)

## libdd-trace-protobuf
**Next version:** `3.0.2`
**Semver bump:** `patch`
**Tag:** `libdd-trace-protobuf-v3.0.2`

### Commits

- feat(obfuscation)!: feature parity on span obfuscation [APMSP-2671]
(#1788)

## libdd-trace-utils
**Next version:** `4.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-utils-v4.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^3.0.2 → ^4.1.0

### Commits

- feat(trace-utils)!: search all spans to populate tracer payload fields
(#1954)
- perf: pre-compute string messagepack encoding (#1948)
- feat(capablities)!: sleep & spawn capabilities (#1873)
- feat(libdd-trace-utils): check for empty value in header
datadog-client-computed-stats (#1900)
- chore(benchmarks): add allocation size tracking allocator (#1905)
- fix(crypto): gate libdd-common TLS features in obfuscation and
capabilities-impl (#1872)
- fix(libdd-traceutils): Update cloud environment detection logic for
Serverless [SVLS-8799] (#1857)
- fix(spawn_worker): defer trampoline self-deletion to avoid Valgrind
false positive (#1844)
- feat(runtime)!: add shared runtime (#1602)
- ci: compilation of libdd-data-pipeline to wasm32 (#1830)
- feat(capabilities)!: trait architecture http (#1555)
- feat(trace-export): map DD span resource to OTLP resource.name
attribute (#1811)
- feat(otel): add support for OTLP trace export (#1641)

## libdd-sampling
**Next version:** `1.0.0`
**Semver bump:** `major`
**Tag:** `libdd-sampling-v1.0.0`

**Warning:** this is an initial release. Please verify that the version
and commits included are correct.


[APMSP-2671]:
https://datadoghq.atlassian.net/browse/APMSP-2671?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[SVLS-8799]:
https://datadoghq.atlassian.net/browse/SVLS-8799?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: iunanua <18325288+iunanua@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