Skip to content

feat(ruby) : enable DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT#7076

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 11 commits into
mainfrom
milan.garnier/rb-propagation-behavior-extract
Jun 19, 2026
Merged

feat(ruby) : enable DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT#7076
gh-worker-dd-mergequeue-cf854d[bot] merged 11 commits into
mainfrom
milan.garnier/rb-propagation-behavior-extract

Conversation

@MilanGarnier

@MilanGarnier MilanGarnier commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Motivation

This PR enables the test on mentioned in APMAPI-1941 RFC
related PR on dd-trace-rb

Changes

  • This PR enables tests related to DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT key.
  • Adds a new tests for DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT=restart for the OTel path (enabled on dotnet, Java and the newly implementer ruby feature)

Workflow

  1. ⚠️ Create your PR as draft ⚠️
  2. Work on you PR until the CI passes
  3. Mark it as ready for review
    • Test logic is modified? -> Get a review from RFC owner.
    • Framework is modified, or non obvious usage of it -> get a review from R&P team

🚀 Once your PR is reviewed and the CI green, you can merge it!

🛟 #apm-shared-testing 🛟

Reviewer checklist

  • Anything but tests/ or manifests/ is modified ? I have the approval from R&P team
  • A docker base image is modified?
    • the relevant build-XXX-image label is present
  • A scenario is added, removed or renamed?

@MilanGarnier
MilanGarnier requested review from a team as code owners June 3, 2026 13:31
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

CODEOWNERS have been resolved as:

manifests/cpp.yml                                                       @DataDog/dd-trace-cpp
manifests/dotnet.yml                                                    @DataDog/apm-dotnet @DataDog/asm-dotnet
manifests/golang.yml                                                    @DataDog/dd-trace-go-guild
manifests/java.yml                                                      @DataDog/asm-java @DataDog/apm-java
manifests/nodejs.yml                                                    @DataDog/dd-trace-js
manifests/php.yml                                                       @DataDog/apm-php @DataDog/asm-php
manifests/python.yml                                                    @DataDog/apm-python @DataDog/asm-python
manifests/ruby.yml                                                      @DataDog/ruby-guild @DataDog/asm-ruby
tests/test_library_conf.py                                              @DataDog/system-tests-core
utils/build/docker/dotnet/weblog/Endpoints/OtelDropInEndpoint.cs        @DataDog/apm-dotnet @DataDog/asm-dotnet @DataDog/system-tests-core
utils/build/docker/java/spring-boot/src/main/java/com/datadoghq/system_tests/springboot/App.java  @DataDog/apm-java @DataDog/asm-java @DataDog/system-tests-core
utils/build/docker/ruby/rails72/app/controllers/system_test_controller.rb  @DataDog/ruby-guild @DataDog/asm-ruby @DataDog/system-tests-core
utils/build/docker/ruby/rails72/config/routes.rb                        @DataDog/ruby-guild @DataDog/asm-ruby @DataDog/system-tests-core

@datadog-datadog-prod-us1-2

This comment has been minimized.

@MilanGarnier MilanGarnier changed the title feat(ruby) : enable DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT [ruby@milangarnier-feature_DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT] feat(ruby) : enable DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT Jun 3, 2026
@MilanGarnier MilanGarnier changed the title feat(ruby) : enable DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT feat(ruby) : enable DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT [ruby@milangarnier-feature_DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT] Jun 3, 2026
Comment thread manifests/ruby.yml Outdated
@MilanGarnier
MilanGarnier force-pushed the milan.garnier/rb-propagation-behavior-extract branch from 9f4bcd1 to 47c40dd Compare June 4, 2026 16:07
…arity on tracers already supporting PROPAGATION_BEHAVIOR_EXTRACT
@MilanGarnier
MilanGarnier requested review from a team as code owners June 16, 2026 10:18
@MilanGarnier
MilanGarnier requested review from christophe-papazian, duncanista and jandro996 and removed request for a team June 16, 2026 10:18
@MilanGarnier
MilanGarnier requested a review from Anilm3 June 16, 2026 10:18
@MilanGarnier

Copy link
Copy Markdown
Contributor Author

@Strech Discussion in DataDog/dd-trace-rb#5844 brought the addition of a new system test which applies to the ruby tracer. It might be worth another review

@MilanGarnier
MilanGarnier marked this pull request as draft June 16, 2026 11:14
MilanGarnier and others added 3 commits June 16, 2026 13:27
… OTel endpoint

Only spring-boot variants (sharing App.java) and rails72 (only Ruby weblog with
the opentelemetry gem) have the /otel_drop_in_extract_and_make_distant_call endpoint.
Mark vertx4 and play (Java) and all non-rails72 weblogs (Ruby) as incomplete_test_app.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
…vior_Restart_Otel

vertx3 does not implement the /otel_drop_in_extract_and_make_distant_call endpoint,
same as vertx4 and play which were already marked incomplete_test_app.
@MilanGarnier
MilanGarnier marked this pull request as ready for review June 16, 2026 14:06

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7a3d8e6eaa

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +735 to +739
# Fallback: return whichever span has span links
for span in spans:
if retrieve_span_links(span) is not None:
return span
return spans[0]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Require the actual OTel span

When the OTel span is missing or named differently, this fallback can select the auto-instrumented HTTP server span because that span also has restart span links in TRACING_CONFIG_NONDEFAULT. In that scenario the assertions below still validate the HTTP entry span and outbound propagation, so the new tests can pass without ever proving that otel_extract_distant_call was created through the OTel API. Please fail if the span named/resource otel_extract_distant_call is not present, or otherwise identify it unambiguously.

Useful? React with 👍 / 👎.

@MilanGarnier MilanGarnier changed the title feat(ruby) : enable DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT [ruby@milangarnier-feature_DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT] feat(ruby) : enable DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT Jun 19, 2026
@datadog-system-tests-org

datadog-system-tests-org Bot commented Jun 19, 2026

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

🚦 2 Pipeline jobs failed

Testing the test | System Tests (ruby, dev) / End-to-end #2 / rails72 2   View in Datadog   GitHub Actions

Testing the test | all-jobs-are-green   View in Datadog   GitHub Actions

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: bbca30d | Docs | Give us feedback!

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.

5 participants