Skip to content

feat: publish tracer metadata as OTel process ctx#1658

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits intomainfrom
yannham/tracer-metadata-set-otel-ctxt
Mar 9, 2026
Merged

feat: publish tracer metadata as OTel process ctx#1658
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits intomainfrom
yannham/tracer-metadata-set-otel-ctxt

Conversation

@yannham
Copy link
Copy Markdown
Contributor

@yannham yannham commented Mar 5, 2026

Depends #1653

What does this PR do?

This is the final follow-up of #1585 (and sequels) for OTel process context publication. This hooks the OTel process context sharing in the existing store_tracer_metadata, which now publishes using both "protocols".

Motivation

This makes the OTel process context publication happen automatically for existing users of libdatadog that would publish tracer metadata already, in a transparent way.

Additional Notes

N/A

How to test the change?

Expected to be tested thereafter for Ruby.

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Mar 5, 2026

Codecov Report

❌ Patch coverage is 0% with 43 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.30%. Comparing base (04394ec) to head (e2fc6d9).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1658      +/-   ##
==========================================
- Coverage   71.33%   71.30%   -0.03%     
==========================================
  Files         427      427              
  Lines       62960    63003      +43     
==========================================
+ Hits        44914    44926      +12     
- Misses      18046    18077      +31     
Components Coverage Δ
libdd-crashtracker 63.00% <ø> (+0.04%) ⬆️
libdd-crashtracker-ffi 16.56% <ø> (ø)
libdd-alloc 98.77% <ø> (ø)
libdd-data-pipeline 88.02% <ø> (ø)
libdd-data-pipeline-ffi 75.72% <ø> (ø)
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 34.48% <ø> (ø)
datdog-sidecar-ffi 16.55% <ø> (ø)
spawn-worker 54.69% <ø> (ø)
libdd-tinybytes 93.16% <ø> (ø)
libdd-trace-normalization 81.71% <ø> (ø)
libdd-trace-obfuscation 94.69% <ø> (ø)
libdd-trace-protobuf 68.25% <ø> (ø)
libdd-trace-utils 89.21% <ø> (+0.13%) ⬆️
datadog-tracer-flare 88.95% <ø> (ø)
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.

@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Mar 5, 2026

Benchmarks

Comparison

Benchmark execution time: 2026-03-09 10:34:46

Comparing candidate commit 68ed2a3 in PR branch yannham/tracer-metadata-set-otel-ctxt with baseline commit f8900a6 in branch main.

Found 0 performance improvements and 1 performance regressions! Performance is the same for 56 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:sql/obfuscate_sql_string

  • 🟥 execution_time [+4.986µs; +5.050µs] or [+5.827%; +5.901%]

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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 240.648ns 248.517ns ± 11.130ns 243.563ns ± 2.005ns 249.305ns 276.582ns 288.457ns 290.655ns 19.33% 2.296 4.638 4.47% 0.787ns 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 [246.974ns; 250.059ns] or [-0.621%; +0.621%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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.357µs 146.520µs ± 1.652µs 146.304µs ± 0.605µs 146.927µs 148.040µs 152.889µs 162.167µs 10.84% 5.279 42.188 1.12% 0.117µ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.291µs; 146.749µs] or [-0.156%; +0.156%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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.214ms 4.220ms ± 0.003ms 4.219ms ± 0.001ms 4.221ms 4.224ms 4.226ms 4.243ms 0.55% 3.178 22.884 0.06% 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.220ms; 4.220ms] or [-0.009%; +0.009%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 33.759µs 34.320µs ± 0.907µs 33.926µs ± 0.104µs 34.054µs 36.233µs 36.267µs 37.689µs 11.09% 1.739 1.309 2.64% 0.064µ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.194µs; 34.445µs] or [-0.366%; +0.366%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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.623ms 10.659ms ± 0.015ms 10.659ms ± 0.009ms 10.667ms 10.679ms 10.702ms 10.729ms 0.66% 0.709 2.767 0.14% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [10.657ms; 10.661ms] or [-0.020%; +0.020%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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.103µs 185.644µs ± 0.269µs 185.621µs ± 0.183µs 185.823µs 186.077µs 186.203µs 186.994µs 0.74% 0.766 2.003 0.14% 0.019µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 5347761.594op/s 5386672.258op/s ± 7796.108op/s 5387312.772op/s ± 5312.477op/s 5392498.569op/s 5397562.237op/s 5400674.159op/s 5402395.395op/s 0.28% -0.751 1.933 0.14% 551.268op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 17.878µs 18.015µs ± 0.061µs 18.014µs ± 0.034µs 18.048µs 18.094µs 18.151µs 18.458µs 2.47% 1.827 12.535 0.34% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 54176507.974op/s 55509814.797op/s ± 187860.311op/s 55513065.516op/s ± 104907.624op/s 55616462.350op/s 55804046.413op/s 55928636.376op/s 55935719.987op/s 0.76% -1.716 11.629 0.34% 13283.730op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.283µs 10.385µs ± 0.051µs 10.377µs ± 0.033µs 10.417µs 10.484µs 10.531µs 10.567µs 1.83% 0.839 0.742 0.49% 0.004µs 1 200
normalization/normalize_name/normalize_name/good throughput 94635742.692op/s 96299253.898op/s ± 471510.255op/s 96365547.648op/s ± 307093.673op/s 96645622.288op/s 96909948.613op/s 97013237.536op/s 97250772.624op/s 0.92% -0.809 0.666 0.49% 33340.810op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [185.606µs; 185.681µs] or [-0.020%; +0.020%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [5385591.792op/s; 5387752.724op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.007µs; 18.024µs] or [-0.047%; +0.047%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [55483779.164op/s; 55535850.429op/s] or [-0.047%; +0.047%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.377µs; 10.392µs] or [-0.068%; +0.068%] None None None
normalization/normalize_name/normalize_name/good throughput [96233907.111op/s; 96364600.684op/s] or [-0.068%; +0.068%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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 173.344µs 173.925µs ± 0.471µs 173.804µs ± 0.193µs 174.077µs 174.647µs 175.381µs 178.005µs 2.42% 3.974 27.913 0.27% 0.033µ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 [173.859µs; 173.990µs] or [-0.037%; +0.037%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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 2.111µs 3.882µs ± 1.751µs 3.679µs ± 0.027µs 3.706µs 4.418µs 6.070µs 21.218µs 476.75% 9.061 85.105 45.00% 0.124µ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.640µs; 4.125µs] or [-6.252%; +6.252%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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 49.128ms 49.546ms ± 1.610ms 49.322ms ± 0.055ms 49.380ms 49.573ms 54.205ms 65.179ms 32.15% 8.825 80.014 3.24% 0.114ms 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 [49.323ms; 49.769ms] or [-0.450%; +0.450%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2597 execution_time 4.398ms 4.428ms ± 0.016ms 4.425ms ± 0.007ms 4.433ms 4.461ms 4.485ms 4.494ms 1.56% 1.485 2.904 0.36% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [4.426ms; 4.430ms] or [-0.050%; +0.050%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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 25.055µs 28.659µs ± 7.293µs 25.989µs ± 0.354µs 26.333µs 43.221µs 44.276µs 89.078µs 242.76% 3.838 22.806 25.38% 0.516µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [27.648µs; 29.669µs] or [-3.527%; +3.527%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time 534.431µs 536.518µs ± 1.593µs 535.933µs ± 0.723µs 537.380µs 539.331µs 543.191µs 543.585µs 1.43% 1.746 3.927 0.30% 0.113µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1839638.098op/s 1863885.408op/s ± 5504.675op/s 1865906.212op/s ± 2518.038op/s 1867764.883op/s 1869241.910op/s 1870090.254op/s 1871150.589op/s 0.28% -1.721 3.792 0.29% 389.239op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 385.231µs 386.154µs ± 0.489µs 386.116µs ± 0.371µs 386.499µs 386.898µs 387.570µs 387.860µs 0.45% 0.636 0.432 0.13% 0.035µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2578251.697op/s 2589643.419op/s ± 3276.326op/s 2589893.435op/s ± 2492.421op/s 2592226.332op/s 2594267.072op/s 2594955.622op/s 2595842.334op/s 0.23% -0.629 0.412 0.13% 231.671op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 189.692µs 190.165µs ± 0.229µs 190.148µs ± 0.112µs 190.250µs 190.538µs 190.901µs 191.577µs 0.75% 1.881 8.441 0.12% 0.016µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5219844.457op/s 5258590.029op/s ± 6331.214op/s 5259060.299op/s ± 3095.939op/s 5262309.605op/s 5267065.795op/s 5270568.143op/s 5271696.478op/s 0.24% -1.856 8.280 0.12% 447.684op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.427µs 37.587µs ± 0.061µs 37.589µs ± 0.040µs 37.630µs 37.683µs 37.705µs 37.746µs 0.42% -0.169 -0.296 0.16% 0.004µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26493211.824op/s 26604997.136op/s ± 42899.906op/s 26603660.342op/s ± 28572.272op/s 26631769.537op/s 26673211.558op/s 26712104.470op/s 26718356.083op/s 0.43% 0.177 -0.292 0.16% 3033.481op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.846µs 45.949µs ± 0.051µs 45.936µs ± 0.027µs 45.976µs 46.046µs 46.103µs 46.183µs 0.54% 1.172 2.089 0.11% 0.004µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21652879.797op/s 21763283.304op/s ± 24065.475op/s 21769436.751op/s ± 12621.724op/s 21779648.999op/s 21793353.246op/s 21799238.488op/s 21812238.314op/s 0.20% -1.163 2.052 0.11% 1701.686op/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 [536.298µs; 536.739µs] or [-0.041%; +0.041%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1863122.513op/s; 1864648.303op/s] or [-0.041%; +0.041%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [386.086µs; 386.222µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2589189.352op/s; 2590097.486op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [190.134µs; 190.197µs] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5257712.584op/s; 5259467.475op/s] or [-0.017%; +0.017%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.579µs; 37.595µs] or [-0.022%; +0.022%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26599051.621op/s; 26610942.650op/s] or [-0.022%; +0.022%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.942µs; 45.956µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21759948.061op/s; 21766618.548op/s] or [-0.015%; +0.015%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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.319µs 2.384µs ± 0.018µs 2.382µs ± 0.006µs 2.394µs 2.418µs 2.425µs 2.444µs 2.58% -0.582 2.986 0.76% 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.381µs; 2.386µs] or [-0.105%; +0.105%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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.877µs 3.916µs ± 0.004µs 3.916µs ± 0.002µs 3.917µs 3.920µs 3.922µs 3.922µs 0.16% -6.363 69.288 0.09% 0.000µs 1 200
credit_card/is_card_number/ throughput 254968796.771op/s 255378093.636op/s ± 232624.388op/s 255378918.475op/s ± 99627.776op/s 255475390.792op/s 255576071.468op/s 255627783.789op/s 257928655.157op/s 1.00% 6.447 70.450 0.09% 16449.028op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 78.567µs 79.300µs ± 0.273µs 79.234µs ± 0.077µs 79.372µs 79.937µs 80.303µs 80.458µs 1.54% 1.651 4.940 0.34% 0.019µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12428876.488op/s 12610415.305op/s ± 43242.210op/s 12620850.861op/s ± 12292.021op/s 12630177.229op/s 12656601.211op/s 12709159.425op/s 12728032.218op/s 0.85% -1.608 4.836 0.34% 3057.686op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 72.256µs 73.053µs ± 0.364µs 72.973µs ± 0.186µs 73.228µs 73.686µs 74.391µs 74.660µs 2.31% 1.287 3.390 0.50% 0.026µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13393969.233op/s 13689102.049op/s ± 67748.271op/s 13703730.853op/s ± 34943.631op/s 13729724.513op/s 13788139.267op/s 13819074.546op/s 13839730.067op/s 0.99% -1.232 3.193 0.49% 4790.526op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.890µs 3.916µs ± 0.003µs 3.916µs ± 0.002µs 3.917µs 3.921µs 3.922µs 3.924µs 0.20% -2.929 27.319 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254861833.752op/s 255366647.408op/s ± 195060.755op/s 255371692.053op/s ± 102928.679op/s 255474751.914op/s 255578705.757op/s 255616760.969op/s 257072177.392op/s 0.67% 2.977 27.809 0.08% 13792.878op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 69.115µs 69.584µs ± 0.364µs 69.540µs ± 0.279µs 69.824µs 70.299µs 70.628µs 70.808µs 1.82% 0.888 0.351 0.52% 0.026µs 1 200
credit_card/is_card_number/378282246310005 throughput 14122634.287op/s 14371459.441op/s ± 74902.467op/s 14380305.460op/s ± 57619.976op/s 14437093.238op/s 14458409.597op/s 14466033.494op/s 14468543.277op/s 0.61% -0.864 0.279 0.52% 5296.404op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 52.215µs 52.273µs ± 0.034µs 52.267µs ± 0.018µs 52.289µs 52.339µs 52.372µs 52.380µs 0.22% 0.943 0.768 0.07% 0.002µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 19091294.171op/s 19130209.120op/s ± 12604.877op/s 19132450.016op/s ± 6696.585op/s 19138897.157op/s 19147241.500op/s 19150758.918op/s 19151431.969op/s 0.10% -0.940 0.759 0.07% 891.299op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.035µs 6.044µs ± 0.004µs 6.044µs ± 0.003µs 6.047µs 6.051µs 6.053µs 6.054µs 0.17% -0.009 -0.738 0.07% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 165166915.830op/s 165456195.975op/s ± 117175.587op/s 165449738.555op/s ± 86431.324op/s 165552999.505op/s 165634857.867op/s 165691054.195op/s 165699452.812op/s 0.15% 0.012 -0.739 0.07% 8285.565op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.876µs 3.918µs ± 0.004µs 3.918µs ± 0.002µs 3.920µs 3.923µs 3.924µs 3.925µs 0.18% -5.598 57.069 0.10% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254747413.551op/s 255240268.707op/s ± 260852.471op/s 255214408.084op/s ± 129580.010op/s 255367530.021op/s 255513766.229op/s 255582731.006op/s 257971641.907op/s 1.08% 5.683 58.214 0.10% 18445.055op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 63.740µs 64.403µs ± 0.233µs 64.371µs ± 0.132µs 64.541µs 64.836µs 65.000µs 65.145µs 1.20% 0.318 1.015 0.36% 0.016µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15350349.589op/s 15527420.850op/s ± 56059.728op/s 15534892.492op/s ± 31842.973op/s 15562920.175op/s 15600785.233op/s 15675014.198op/s 15688681.843op/s 0.99% -0.287 1.012 0.36% 3964.021op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 57.837µs 58.111µs ± 0.203µs 58.114µs ± 0.168µs 58.212µs 58.460µs 58.766µs 58.770µs 1.13% 0.781 0.317 0.35% 0.014µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 17015404.976op/s 17208567.282op/s ± 59999.780op/s 17207480.953op/s ± 50023.641op/s 17262628.831op/s 17281440.343op/s 17286480.254op/s 17289923.161op/s 0.48% -0.763 0.266 0.35% 4242.625op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.898µs 3.917µs ± 0.003µs 3.917µs ± 0.002µs 3.919µs 3.922µs 3.924µs 3.926µs 0.23% -0.641 5.813 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254740694.412op/s 255317150.756op/s ± 198879.311op/s 255322665.650op/s ± 127368.829op/s 255445270.852op/s 255574456.512op/s 255650215.063op/s 256522112.357op/s 0.47% 0.659 5.911 0.08% 14062.891op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 54.618µs 54.820µs ± 0.209µs 54.716µs ± 0.062µs 54.917µs 55.230µs 55.411µs 55.853µs 2.08% 1.615 2.880 0.38% 0.015µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 17904286.619op/s 18241925.729op/s ± 69187.189op/s 18276027.344op/s ± 20747.856op/s 18291916.345op/s 18300595.685op/s 18303913.434op/s 18309026.350op/s 0.18% -1.589 2.728 0.38% 4892.273op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 52.203µs 52.280µs ± 0.038µs 52.275µs ± 0.027µs 52.307µs 52.331µs 52.358µs 52.549µs 0.52% 1.837 10.816 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 19029987.990op/s 19127835.322op/s ± 13909.522op/s 19129683.111op/s ± 9805.912op/s 19137919.460op/s 19145933.989op/s 19148113.603op/s 19156088.498op/s 0.14% -1.816 10.637 0.07% 983.552op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.034µs 6.042µs ± 0.004µs 6.041µs ± 0.003µs 6.044µs 6.048µs 6.054µs 6.065µs 0.40% 1.540 4.880 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 164887488.186op/s 165519063.227op/s ± 119662.884op/s 165540571.043op/s ± 74954.926op/s 165605092.357op/s 165666492.732op/s 165685756.489op/s 165729053.214op/s 0.11% -1.530 4.823 0.07% 8461.444op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
credit_card/is_card_number/ execution_time [3.915µs; 3.916µs] or [-0.013%; +0.013%] None None None
credit_card/is_card_number/ throughput [255345854.133op/s; 255410333.139op/s] or [-0.013%; +0.013%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [79.263µs; 79.338µs] or [-0.048%; +0.048%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12604422.351op/s; 12616408.259op/s] or [-0.048%; +0.048%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [73.002µs; 73.103µs] or [-0.069%; +0.069%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13679712.790op/s; 13698491.307op/s] or [-0.069%; +0.069%] None None None
credit_card/is_card_number/37828224631 execution_time [3.916µs; 3.916µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/37828224631 throughput [255339613.863op/s; 255393680.953op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/378282246310005 execution_time [69.534µs; 69.635µs] or [-0.073%; +0.073%] None None None
credit_card/is_card_number/378282246310005 throughput [14361078.680op/s; 14381840.203op/s] or [-0.072%; +0.072%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [52.269µs; 52.278µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [19128462.205op/s; 19131956.035op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.043µs; 6.044µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/x371413321323331 throughput [165439956.566op/s; 165472435.385op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.917µs; 3.918µs] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/ throughput [255204117.064op/s; 255276420.351op/s] or [-0.014%; +0.014%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [64.371µs; 64.435µs] or [-0.050%; +0.050%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15519651.511op/s; 15535190.189op/s] or [-0.050%; +0.050%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [58.083µs; 58.139µs] or [-0.048%; +0.048%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [17200251.889op/s; 17216882.674op/s] or [-0.048%; +0.048%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.916µs; 3.917µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255289587.996op/s; 255344713.516op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [54.791µs; 54.849µs] or [-0.053%; +0.053%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [18232337.050op/s; 18251514.408op/s] or [-0.053%; +0.053%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [52.275µs; 52.285µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [19125907.596op/s; 19129763.048op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.041µs; 6.042µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [165502479.103op/s; 165535647.352op/s] or [-0.010%; +0.010%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
single_flag_killswitch/rules-based execution_time 188.556ns 190.786ns ± 1.923ns 190.653ns ± 1.304ns 191.691ns 194.352ns 196.712ns 200.157ns 4.98% 1.418 3.116 1.01% 0.136ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [190.519ns; 191.052ns] or [-0.140%; +0.140%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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.911ms 14.002ms ± 0.037ms 13.998ms ± 0.020ms 14.019ms 14.048ms 14.144ms 14.187ms 1.35% 1.814 6.466 0.26% 0.003ms 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.997ms; 14.007ms] or [-0.037%; +0.037%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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 725.749µs 726.860µs ± 2.207µs 726.646µs ± 0.311µs 726.950µs 727.689µs 728.027µs 757.104µs 4.19% 12.965 175.159 0.30% 0.156µ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 [726.554µs; 727.166µs] or [-0.042%; +0.042%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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 90.197µs 90.595µs ± 0.155µs 90.573µs ± 0.053µs 90.631µs 90.781µs 91.224µs 91.961µs 1.53% 4.791 35.552 0.17% 0.011µ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 [90.573µs; 90.616µs] or [-0.024%; +0.024%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8175M CPU @ 2.50GHz 68ed2a3 1773051448 yannham/tracer-metadata-set-otel-ctxt
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.915µs 5.000µs ± 0.041µs 5.007µs ± 0.036µs 5.028µs 5.061µs 5.069µs 5.070µs 1.27% -0.023 -1.308 0.81% 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 [4.994µs; 5.006µs] or [-0.113%; +0.113%] None None None

Baseline

Omitted due to size.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 5, 2026

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/yannham/tracer-metadata-set-otel-ctxt

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 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-crashtracker 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 220 220 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.

@dd-octo-sts
Copy link
Copy Markdown
Contributor

dd-octo-sts bot commented Mar 5, 2026

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.70 MB 8.70 MB +0% (+48 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 98.65 MB 98.88 MB +.22% (+230.68 KB) 🔍
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.29 MB 11.30 MB +.10% (+11.80 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 114.30 MB 114.53 MB +.20% (+234.88 KB) 🔍
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 27.17 MB 27.16 MB -0% (-1.50 KB) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 76.26 KB 76.26 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 186.03 MB 186.02 MB -0% (-8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 917.20 MB 917.17 MB -0% (-36.08 KB) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 9.93 MB 9.93 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 76.26 KB 76.26 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 24.76 MB 24.77 MB +.03% (+8.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 51.43 MB 51.43 MB +0% (+4.74 KB) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 22.97 MB 22.97 MB +0% (+1.00 KB) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 77.44 KB 77.44 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 190.24 MB 190.23 MB -0% (-16.00 KB) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 900.85 MB 900.82 MB -0% (-33.63 KB) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 7.53 MB 7.53 MB --.02% (-2.00 KB) 💪
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 77.44 KB 77.44 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 26.52 MB 26.51 MB --.02% (-8.00 KB) 💪
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 47.07 MB 47.05 MB --.02% (-14.18 KB) 💪
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 86.54 MB 86.76 MB +.24% (+216.83 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 10.23 MB 10.25 MB +.26% (+28.04 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 107.16 MB 107.37 MB +.19% (+217.68 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.98 MB 12.01 MB +.23% (+28.50 KB) 🔍

Copy link
Copy Markdown
Member

@ivoanjo ivoanjo left a comment

Choose a reason for hiding this comment

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

I've tried to build ruby with this branch and seems to be working fine!

sig-profiling/process-context/c-and-cpp$ sudo ./otel_process_ctx_dump.sh 113193
[sudo] password for ivo.anjo: 
Found OTEL context for PID 113193
Start address: 72bb93fa9000
00000000  4f 54 45 4c 5f 43 54 58  02 00 00 00 51 01 00 00  |OTEL_CTX....Q...|
00000010  ec 8d 0f 97 02 f2 99 18  40 68 75 78 78 63 00 00  |........@huxxc..|
00000020
Parsed struct:
  otel_process_ctx_signature       : "OTEL_CTX"
  otel_process_ctx_version         : 2
  otel_process_payload_size        : 337
  otel_process_ctx_published_at_ns : 1772714021285236204 (2026-03-05 12:33:41 GMT)
  otel_process_payload             : 0x0000637878756840
Payload dump (337 bytes):
00000000  0a ce 02 0a 20 0a 16 74  65 6c 65 6d 65 74 72 79  |.... ..telemetry|
00000010  2e 73 64 6b 2e 6c 61 6e  67 75 61 67 65 12 06 0a  |.sdk.language...|
00000020  04 72 75 62 79 0a 21 0a  15 74 65 6c 65 6d 65 74  |.ruby.!..telemet|
00000030  72 79 2e 73 64 6b 2e 76  65 72 73 69 6f 6e 12 08  |ry.sdk.version..|
00000040  0a 06 32 2e 33 30 2e 30  0a 1d 0a 09 68 6f 73 74  |..2.30.0....host|
00000050  2e 6e 61 6d 65 12 10 0a  0e 72 75 62 79 74 68 69  |.name....rubythi|
00000060  6e 6b 73 68 61 64 65 0a  37 0a 0d 64 64 2e 72 75  |nkshade.7..dd.ru|
00000070  6e 74 69 6d 65 5f 69 64  12 26 0a 24 36 37 35 37  |ntime_id.&.$6757|
00000080  30 30 33 63 2d 66 62 31  39 2d 34 65 33 62 2d 61  |003c-fb19-4e3b-a|
00000090  34 37 37 2d 65 38 37 61  61 66 30 65 62 64 32 39  |477-e87aaf0ebd29|
000000a0  0a 14 0a 0c 73 65 72 76  69 63 65 2e 6e 61 6d 65  |....service.name|
000000b0  12 04 0a 02 2d 65 0a 1c  0a 16 64 65 70 6c 6f 79  |....-e....deploy|
000000c0  6d 65 6e 74 2e 65 6e 76  69 72 6f 6e 6d 65 6e 74  |ment.environment|
000000d0  12 02 0a 00 0a 15 0a 0f  73 65 72 76 69 63 65 2e  |........service.|
000000e0  76 65 72 73 69 6f 6e 12  02 0a 00 0a 15 0a 0f 64  |version........d|
000000f0  64 2e 70 72 6f 63 65 73  73 5f 74 61 67 73 12 02  |d.process_tags..|
00000100  0a 00 0a 15 0a 0f 64 64  2e 70 72 6f 63 65 73 73  |......dd.process|
00000110  5f 74 61 67 73 12 02 0a  00 0a 36 0a 0c 63 6f 6e  |_tags.....6..con|
00000120  74 61 69 6e 65 72 2e 69  64 12 26 0a 24 32 31 34  |tainer.id.&.$214|
00000130  32 37 61 30 38 2d 34 30  35 35 2d 34 35 64 64 2d  |27a08-4055-45dd-|
00000140  39 31 66 37 2d 37 33 31  39 34 64 64 38 36 38 32  |91f7-73194dd8682|
00000150  66                                                |f|
00000151
Protobuf decode:
resource {
  attributes {
    key: "telemetry.sdk.language"
    value {
      string_value: "ruby"
    }
  }
  attributes {
    key: "telemetry.sdk.version"
    value {
      string_value: "2.30.0"
    }
  }
  attributes {
    key: "host.name"
    value {
      string_value: "rubythinkshade"
    }
  }
  attributes {
    key: "dd.runtime_id"
    value {
      string_value: "6757003c-fb19-4e3b-a477-e87aaf0ebd29"
    }
  }
  attributes {
    key: "service.name"
    value {
      string_value: "-e"
    }
  }
  attributes {
    key: "deployment.environment"
    value {
      string_value: ""
    }
  }
  attributes {
    key: "service.version"
    value {
      string_value: ""
    }
  }
  attributes {
    key: "dd.process_tags"
    value {
      string_value: ""
    }
  }
  attributes {
    key: "dd.process_tags"
    value {
      string_value: ""
    }
  }
  attributes {
    key: "container.id"
    value {
      string_value: "21427a08-4055-45dd-91f7-73194dd8682f"
    }
  }
}

So I think once we fix up some of the details we can add some integration tests on the Ruby side to parse the context + try with the fork :)

@yannham yannham force-pushed the yannham/tracer-metadata-set-otel-ctxt branch from b48734e to c90d209 Compare March 5, 2026 13:18
@yannham yannham changed the base branch from yannham/process-context-ffi to yannham/process-context-protobuf March 5, 2026 13:20
@yannham yannham force-pushed the yannham/tracer-metadata-set-otel-ctxt branch from c90d209 to 43edd33 Compare March 5, 2026 13:27
@yannham yannham force-pushed the yannham/process-context-protobuf branch 2 times, most recently from 071be97 to c3785c8 Compare March 5, 2026 15:01
@yannham yannham force-pushed the yannham/tracer-metadata-set-otel-ctxt branch from 43edd33 to 64c8d57 Compare March 5, 2026 15:02
@yannham yannham force-pushed the yannham/process-context-protobuf branch from c3785c8 to f8f7683 Compare March 5, 2026 15:27
Base automatically changed from yannham/process-context-protobuf to main March 5, 2026 17:18
@yannham yannham force-pushed the yannham/tracer-metadata-set-otel-ctxt branch from 64c8d57 to 8d0fa3f Compare March 5, 2026 17:36
@yannham yannham changed the title chore(tracer): publish tracer metadata to OTel feat: publish tracer metadata as OTel process ctx Mar 6, 2026
@yannham yannham force-pushed the yannham/tracer-metadata-set-otel-ctxt branch from 8d0fa3f to af102f3 Compare March 6, 2026 09:57
@yannham yannham marked this pull request as ready for review March 6, 2026 09:57
@yannham yannham requested a review from a team as a code owner March 6, 2026 09:57
@yannham yannham requested review from mhlidd and removed request for a team March 6, 2026 09:57
Copy link
Copy Markdown
Member

@ivoanjo ivoanjo left a comment

Choose a reason for hiding this comment

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

👍 LGTM.

Re-tested with Ruby and looks great! All fields showing up as expected:

$ sudo ./otel_process_ctx_dump.sh `pidof ruby`
Found OTEL context for PID 216948
Start address: 768d8dca2000
00000000  4f 54 45 4c 5f 43 54 58  02 00 00 00 e7 01 00 00  |OTEL_CTX........|
00000010  46 c4 72 42 89 4a 9a 18  40 1b 93 ff 41 5d 00 00  |[email protected]]..|
00000020
Parsed struct:
  otel_process_ctx_signature       : "OTEL_CTX"
  otel_process_ctx_version         : 2
  otel_process_payload_size        : 487
  otel_process_ctx_published_at_ns : 1772811356709504070 (2026-03-06 15:35:56 GMT)
  otel_process_payload             : 0x00005d41ff931b40
Payload dump (487 bytes):
00000000  0a e1 02 0a 20 0a 16 74  65 6c 65 6d 65 74 72 79  |.... ..telemetry|
00000010  2e 73 64 6b 2e 6c 61 6e  67 75 61 67 65 12 06 0a  |.sdk.language...|
00000020  04 72 75 62 79 0a 21 0a  15 74 65 6c 65 6d 65 74  |.ruby.!..telemet|
00000030  72 79 2e 73 64 6b 2e 76  65 72 73 69 6f 6e 12 08  |ry.sdk.version..|
00000040  0a 06 32 2e 33 30 2e 30  0a 22 0a 12 74 65 6c 65  |..2.30.0."..tele|
00000050  6d 65 74 72 79 2e 73 64  6b 2e 6e 61 6d 65 12 0c  |metry.sdk.name..|
00000060  0a 0a 6c 69 62 64 61 74  61 64 6f 67 0a 1d 0a 09  |..libdatadog....|
00000070  68 6f 73 74 2e 6e 61 6d  65 12 10 0a 0e 72 75 62  |host.name....rub|
00000080  79 74 68 69 6e 6b 73 68  61 64 65 0a 14 0a 0c 73  |ythinkshade....s|
00000090  65 72 76 69 63 65 2e 6e  61 6d 65 12 04 0a 02 2d  |ervice.name....-|
000000a0  65 0a 3d 0a 13 73 65 72  76 69 63 65 2e 69 6e 73  |e.=..service.ins|
000000b0  74 61 6e 63 65 2e 69 64  12 26 0a 24 35 31 38 32  |tance.id.&.$5182|
000000c0  66 30 61 38 2d 66 63 31  62 2d 34 31 65 35 2d 61  |f0a8-fc1b-41e5-a|
000000d0  31 37 66 2d 38 62 63 38  38 36 36 31 31 36 34 64  |17f-8bc88661164d|
000000e0  0a 20 0a 0f 73 65 72 76  69 63 65 2e 76 65 72 73  |. ..service.vers|
000000f0  69 6f 6e 12 0d 0a 0b 74  65 73 74 76 65 72 73 69  |ion....testversi|
00000100  6f 6e 0a 28 0a 1b 64 65  70 6c 6f 79 6d 65 6e 74  |on.(..deployment|
00000110  2e 65 6e 76 69 72 6f 6e  6d 65 6e 74 2e 6e 61 6d  |.environment.nam|
00000120  65 12 09 0a 07 74 65 73  74 65 6e 76 0a 36 0a 0c  |e....testenv.6..|
00000130  63 6f 6e 74 61 69 6e 65  72 2e 69 64 12 26 0a 24  |container.id.&.$|
00000140  34 33 32 63 61 38 33 63  2d 37 35 39 64 2d 34 39  |432ca83c-759d-49|
00000150  61 66 2d 62 35 63 32 2d  33 32 38 38 33 32 38 30  |af-b5c2-32883280|
00000160  34 66 35 36 12 80 01 0a  14 64 61 74 61 64 6f 67  |4f56.....datadog|
00000170  2e 70 72 6f 63 65 73 73  5f 74 61 67 73 12 68 0a  |.process_tags.h.|
00000180  66 65 6e 74 72 79 70 6f  69 6e 74 2e 77 6f 72 6b  |fentrypoint.work|
00000190  64 69 72 3a 64 64 2d 74  72 61 63 65 2d 72 62 2c  |dir:dd-trace-rb,|
000001a0  65 6e 74 72 79 70 6f 69  6e 74 2e 6e 61 6d 65 3a  |entrypoint.name:|
000001b0  65 2c 65 6e 74 72 79 70  6f 69 6e 74 2e 62 61 73  |e,entrypoint.bas|
000001c0  65 64 69 72 3a 64 64 2d  74 72 61 63 65 2d 72 62  |edir:dd-trace-rb|
000001d0  2c 65 6e 74 72 79 70 6f  69 6e 74 2e 74 79 70 65  |,entrypoint.type|
000001e0  3a 73 63 72 69 70 74                              |:script|
000001e7
Protobuf decode:
resource {
  attributes {
    key: "telemetry.sdk.language"
    value {
      string_value: "ruby"
    }
  }
  attributes {
    key: "telemetry.sdk.version"
    value {
      string_value: "2.30.0"
    }
  }
  attributes {
    key: "telemetry.sdk.name"
    value {
      string_value: "libdatadog"
    }
  }
  attributes {
    key: "host.name"
    value {
      string_value: "rubythinkshade"
    }
  }
  attributes {
    key: "service.name"
    value {
      string_value: "-e"
    }
  }
  attributes {
    key: "service.instance.id"
    value {
      string_value: "5182f0a8-fc1b-41e5-a17f-8bc88661164d"
    }
  }
  attributes {
    key: "service.version"
    value {
      string_value: "testversion"
    }
  }
  attributes {
    key: "deployment.environment.name"
    value {
      string_value: "testenv"
    }
  }
  attributes {
    key: "container.id"
    value {
      string_value: "432ca83c-759d-49af-b5c2-328832804f56"
    }
  }
}
extra_attributes {
  key: "datadog.process_tags"
  value {
    string_value: "entrypoint.workdir:dd-trace-rb,entrypoint.name:e,entrypoint.basedir:dd-trace-rb,entrypoint.type:script"
  }
}

Copy link
Copy Markdown
Member

@ivoanjo ivoanjo left a comment

Choose a reason for hiding this comment

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

I thought I had pressed approve on Friday (I did do the 👍 comment anyway so I totally intended to) lol but I guess I picked comment :D

yannham added 4 commits March 9, 2026 14:05
This commit hooks up the new OTel process context publication into the
existing tracer metadata publication, so that both are done
automatically at once.
@yannham yannham force-pushed the yannham/tracer-metadata-set-otel-ctxt branch from 68ed2a3 to e2fc6d9 Compare March 9, 2026 13:06
@yannham
Copy link
Copy Markdown
Contributor Author

yannham commented Mar 9, 2026

/merge

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

gh-worker-devflow-routing-ef8351 bot commented Mar 9, 2026

View all feedbacks in Devflow UI.

2026-03-09 13:34:15 UTC ℹ️ Start processing command /merge


2026-03-09 13:34:22 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-09 13:46:09 UTC ℹ️ MergeQueue: merge request added to the queue

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


2026-03-09 14:28:19 UTCMergeQueue: The checks failed on this merge request

Tests failed on this commit 2a74896:

What to do next?

  • Investigate the failures and when ready, re-add your pull request to the queue!
  • If your PR checks are green, try to rebase/merge. It might be because the CI run is a bit old.
  • Any question, go check the FAQ.

@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot merged commit 79f879e into main Mar 9, 2026
132 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot deleted the yannham/tracer-metadata-set-otel-ctxt branch March 9, 2026 15:33
gh-worker-dd-mergequeue-cf854d bot pushed a commit that referenced this pull request Mar 11, 2026
# What does this PR do?

Bump to 29.0.0

[feat(profiling)!: add Tracepoint sample type](#1676)
[feat(obfuscation/redis): Reach feature parity on redis obfuscation [APMSP-2668]](#1632)
[fix(sidecar): Handle backpressure more gracefully](#1682)
[feat(trace-protobuf)!: Add two fields to ClientGroupedStats [SVLS-8627]](#1630)
[chore: exclude libdatadog from ADMS auto generated PRs for dependency updates](#1688)
[chore(ci): run crashtracking ffi example tests in CI](#1687)
[fix(crashtracking): use libunwind to unwind frames](#1663)
[feat: publish tracer metadata as OTel process ctx](#1658)
[ci: run thread count test in own process](#1693)
[feat(obfuscation/json): Init json obfuscation [APMSP-2665]](#1635)
[chore(ci): add final_status property on junit XML [APMSP-2610]](#1681)
[refactor(data-pipeline-ffi): move macro definitions for better reuse](#1699)
[fix(obfuscation/memcached): fuzzing fix](#1695)
[ci: replace use of cargo cross for centos7 tests](#1675)
#1702 (comment)
[feat(stats_exporter)!: add process tags to CSS payloads](#1709)

# Motivation

I mainly am creating this to use the new unwinding from ucontext for crashtracking

# Additional Notes

Anything else we should know when reviewing?

# How to test the change?

Describe here in detail how the change can be validated.


[APMSP-2668]: https://datadoghq.atlassian.net/browse/APMSP-2668?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[SVLS-8627]: https://datadoghq.atlassian.net/browse/SVLS-8627?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[APMSP-2665]: https://datadoghq.atlassian.net/browse/APMSP-2665?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

Co-authored-by: gyuheon.oh <[email protected]>
iunanua pushed a commit that referenced this pull request Mar 13, 2026
# Release proposal for libdd-library-config and its dependencies

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

## libdd-trace-protobuf
**Next version:** `2.0.0`

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

### Commits

- feat(trace-protobuf)!: Add two fields to ClientGroupedStats
[SVLS-8627] (#1630)
- feat: otel process ctxt protobuf encoding (#1651)
## libdd-library-config
**Next version:** `1.1.0`

**Semver bump:** `minor`
**Tag:** `libdd-library-config-v1.1.0`

### Commits

- chore: update otel process ctx protocol (#1713)
- feat: publish tracer metadata as OTel process ctx (#1658)
- feat: otel process ctxt protobuf encoding (#1651)
- fix: handle fork in otel process ctx (#1650)
- chore: implement otel process ctx update (#1640)
- feat: process context publication (#1585)
- ci: update nightly in CI to 2026-02-08 (#1539)
- fix(stable_config): [APMAPI-1690] add >100mb check for stable config
files (#1432)
- chore: add changelog for every published crate (#1396)

[SVLS-8627]:
https://datadoghq.atlassian.net/browse/SVLS-8627?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[APMAPI-1690]:
https://datadoghq.atlassian.net/browse/APMAPI-1690?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 13, 2026
# Release proposal for libdd-library-config and its dependencies

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

## libdd-trace-protobuf
**Next version:** `2.0.0`

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

### Commits

- feat(trace-protobuf)!: Add two fields to ClientGroupedStats
[SVLS-8627] (#1630)
- feat: otel process ctxt protobuf encoding (#1651)
## libdd-library-config
**Next version:** `1.1.0`

**Semver bump:** `minor`
**Tag:** `libdd-library-config-v1.1.0`

### Commits

- chore: update otel process ctx protocol (#1713)
- feat: publish tracer metadata as OTel process ctx (#1658)
- feat: otel process ctxt protobuf encoding (#1651)
- fix: handle fork in otel process ctx (#1650)
- chore: implement otel process ctx update (#1640)
- feat: process context publication (#1585)
- ci: update nightly in CI to 2026-02-08 (#1539)
- fix(stable_config): [APMAPI-1690] add >100mb check for stable config
files (#1432)
- chore: add changelog for every published crate (#1396)

[SVLS-8627]:
https://datadoghq.atlassian.net/browse/SVLS-8627?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[APMAPI-1690]:
https://datadoghq.atlassian.net/browse/APMAPI-1690?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
hoolioh added a commit that referenced this pull request Mar 15, 2026
# Release proposal for libdd-library-config and its dependencies

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

## libdd-trace-protobuf
**Next version:** `2.0.0`

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

### Commits

- feat(trace-protobuf)!: Add two fields to ClientGroupedStats
[SVLS-8627] (#1630)
- feat: otel process ctxt protobuf encoding (#1651) ##
libdd-library-config
**Next version:** `1.1.0`

**Semver bump:** `minor`
**Tag:** `libdd-library-config-v1.1.0`

### Commits

- chore: update otel process ctx protocol (#1713)
- feat: publish tracer metadata as OTel process ctx (#1658)
- feat: otel process ctxt protobuf encoding (#1651)
- fix: handle fork in otel process ctx (#1650)
- chore: implement otel process ctx update (#1640)
- feat: process context publication (#1585)
- ci: update nightly in CI to 2026-02-08 (#1539)
- fix(stable_config): [APMAPI-1690] add >100mb check for stable config
files (#1432)
- chore: add changelog for every published crate (#1396)

[SVLS-8627]:

https://datadoghq.atlassian.net/browse/SVLS-8627?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[APMAPI-1690]:

https://datadoghq.atlassian.net/browse/APMAPI-1690?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

# What does this PR do?

A brief description of the change being made with this pull request.

# Motivation

What inspired you to submit this pull request?

# Additional Notes

Anything else we should know when reviewing?

# How to test the change?

Describe here in detail how the change can be validated.


[SVLS-8627]:
https://datadoghq.atlassian.net/browse/SVLS-8627?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[APMAPI-1690]:
https://datadoghq.atlassian.net/browse/APMAPI-1690?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[SVLS-8627]:
https://datadoghq.atlassian.net/browse/SVLS-8627?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 15, 2026
# Release proposal for libdd-library-config and its dependencies

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

## libdd-trace-protobuf
**Next version:** `2.0.0`

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

### Commits

- feat(trace-protobuf)!: Add two fields to ClientGroupedStats
[SVLS-8627] (#1630)
- feat: otel process ctxt protobuf encoding (#1651)
## libdd-library-config
**Next version:** `1.1.0`

**Semver bump:** `minor`
**Tag:** `libdd-library-config-v1.1.0`

### Commits

- chore: update otel process ctx protocol (#1713)
- feat: publish tracer metadata as OTel process ctx (#1658)
- feat: otel process ctxt protobuf encoding (#1651)
- fix: handle fork in otel process ctx (#1650)
- chore: implement otel process ctx update (#1640)
- feat: process context publication (#1585)
- ci: update nightly in CI to 2026-02-08 (#1539)
- fix(stable_config): [APMAPI-1690] add >100mb check for stable config
files (#1432)
- chore: add changelog for every published crate (#1396)

[SVLS-8627]:
https://datadoghq.atlassian.net/browse/SVLS-8627?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
[APMAPI-1690]:
https://datadoghq.atlassian.net/browse/APMAPI-1690?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
ivoanjo added a commit to DataDog/dd-trace-rb that referenced this pull request Mar 16, 2026
**What does this PR do?**

This PR adds integration tests for the
[libdatadog](DataDog/libdatadog#1658) support
for
[OTel process context](open-telemetry/opentelemetry-specification#4719).

**Motivation:**

Starting in libdatadog v29, the process context is automatically
published together with the process discovery feature, so we don't
need to do anything from the Ruby side to turn it on.

Yet, we want to make sure this is in good shape as this is a WIP
effort so having a few Ruby-level integration tests seems nice.

**Additional Notes:**

For Datadog folks -- more details on this work can be found on
 #ebpf-context-propagation on our slack.

The process context is stored as a protobuf message in a
very special memory location, hence the new test using
protobuf + the weird code to parse memory.

**How to test the change?**

Validate that new spec is passing!
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.

3 participants