Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Tracing] Add test and endpoints to test OTEL Drop-In Support of the OpenTelemetry Propagators API #3782

Merged
merged 22 commits into from
Jan 30, 2025

Conversation

zacharycmontoya
Copy link
Contributor

@zacharycmontoya zacharycmontoya commented Jan 8, 2025

Motivation

We learned that there was an issue with this support in the .NET tracing library, so this new test/endpoint will identify whether other tracers have the same class of issue.

In the .NET scenario, the customer can use the OpenTelemetry Propagators API (implemented in the OpenTelemetry API package) to manually propagate context. When the OpenTelemetry SDK is configured (using the OpenTelemetry SDK package) in the application, the default propagator provided by the OpenTelemetry Propagators API is provided a default implementation, so propagation works as expected. However, when the OpenTelemetry SDK is removed and the user relies on the .NET tracer's OTEL Drop-In Support, the default propagator provided by the OpenTelemetry Propagators API is a no-op, resulting in no propagation happening.

Changes

  • Adds new weblog endpoints:
    • /otel_drop_in_default_propagator_extract
    • /otel_drop_in_default_propagator_inject
  • Adds a new test class Test_Otel_Context_Propagation_Default_Propagator_Api with test cases:
    • test_propagation_extract
    • test_propagation_inject

Workflow

  1. ⚠️ Create your PR as draft ⚠️
  2. Work on you PR until the CI passes (if something not related to your task is failing, you can ignore it)
  3. Mark it as ready for review
    • Test logic is modified? -> Get a review from RFC owner. We're working on refining the codeowners file quickly.
    • Framework is modified, or non obvious usage of it -> get a review from R&P team

🚀 Once your PR is reviewed, you can merge it!

🛟 #apm-shared-testing 🛟

Reviewer checklist

  • If PR title starts with [<language>], double-check that only <language> is impacted by the change
  • No system-tests internal is modified. Otherwise, I have the approval from R&P team
  • CI is green, or failing jobs are not related to this change (and you are 100% sure about this statement)
  • A docker base image is modified?
    • the relevant build-XXX-image label is present
  • A scenario is added (or removed)?

@zacharycmontoya zacharycmontoya force-pushed the zach.montoya/otel-default-propagation branch from 739e2cc to c72e7d9 Compare January 14, 2025 16:48
@zacharycmontoya zacharycmontoya force-pushed the zach.montoya/otel-default-propagation branch from 247982b to 0498f59 Compare January 24, 2025 23:54
@zacharycmontoya zacharycmontoya marked this pull request as ready for review January 28, 2025 03:29
@zacharycmontoya zacharycmontoya requested review from a team as code owners January 28, 2025 03:29
@zacharycmontoya zacharycmontoya requested review from a team as code owners January 28, 2025 03:29
@zacharycmontoya zacharycmontoya requested review from P403n1x87, wantsui, Mariovido, sezen-datadog, mcculls and dmehala and removed request for a team January 28, 2025 03:29
Copy link
Collaborator

@cbeauchesne cbeauchesne left a comment

Choose a reason for hiding this comment

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

Just a small non blocking comment

manifests/ruby.yml Outdated Show resolved Hide resolved
…emented)" to reflect that the functionality should be there, but not all weblog applications have implemented the endpoint
@rachelyangdog
Copy link
Contributor

Just do double check: the functionality you're trying to test is that when the OpenTelemetry SDK is removed and users are relying on drop-in support, the propagator APIs work as usual without having to enable anything?

@zacharycmontoya
Copy link
Contributor Author

Just do double check: the functionality you're trying to test is that when the OpenTelemetry SDK is removed and users are relying on drop-in support, the propagator APIs work as usual without having to enable anything?

Yes exactly! And more specifically, I'm testing the case where the user gets the default propagator provided by the language's OpenTelemetry API, without the user configuring their own.

Copy link
Contributor

@mcculls mcculls left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@marcotc marcotc left a comment

Choose a reason for hiding this comment

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

Ruby changes look good!

Copy link
Contributor

@khanayan123 khanayan123 left a comment

Choose a reason for hiding this comment

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

Nodejs changes LGTM

@zacharycmontoya zacharycmontoya merged commit 81292dd into main Jan 30, 2025
434 checks passed
@zacharycmontoya zacharycmontoya deleted the zach.montoya/otel-default-propagation branch January 30, 2025 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants