Skip to content

[WIP] OTLP trace metrics export#6834

Draft
ida613 wants to merge 1 commit intomainfrom
ida613/otlp-span-stats
Draft

[WIP] OTLP trace metrics export#6834
ida613 wants to merge 1 commit intomainfrom
ida613/otlp-span-stats

Conversation

@ida613
Copy link
Copy Markdown
Contributor

@ida613 ida613 commented May 1, 2026

OTLP trace metrics export:
tests/otel/test_otlp_trace_metrics.py validates that all four
dd.trace.span.* metrics appear on /v1/metrics when
DD_TRACE_OTEL_METRICS_ENABLED=true (new APM_TRACING_OTLP_METRICS scenario).

W3C TraceState ot.th injection:
tests/parametric/test_tracestate_ot_th.py validates that an ot=th:
vendor entry is present in the outgoing tracestate for sampled spans.

Supporting changes:

  • Add apm_tracing_otlp_metrics scenario (scenarios/init.py)
  • Add get_otel_metrics() to OpenTelemetryInterfaceValidator (interfaces)
  • Add otlp_trace_metrics and w3c_tracestate_ot_probability_threshold features
  • Mark both tests as missing_feature in manifests/nodejs.yml

Motivation

Changes

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?

…te injection

Phase 2 — OTLP trace metrics export:
  tests/otel/test_otlp_trace_metrics.py validates that all four
  dd.trace.span.* metrics appear on /v1/metrics when
  DD_TRACE_OTEL_METRICS_ENABLED=true (new APM_TRACING_OTLP_METRICS scenario).

Phase 3 — W3C TraceState ot.th injection:
  tests/parametric/test_tracestate_ot_th.py validates that an ot=th:<hex>
  vendor entry is present in the outgoing tracestate for sampled spans.

Supporting changes:
  - Add apm_tracing_otlp_metrics scenario (scenarios/__init__.py)
  - Add get_otel_metrics() to OpenTelemetryInterfaceValidator (interfaces)
  - Add otlp_trace_metrics and w3c_tracestate_ot_probability_threshold features
  - Mark both tests as missing_feature in manifests/nodejs.yml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 1, 2026

CODEOWNERS have been resolved as:

tests/otel/test_otlp_trace_metrics.py                                   @DataDog/system-tests-core
tests/parametric/test_tracestate_ot_th.py                               @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
manifests/nodejs.yml                                                    @DataDog/dd-trace-js
utils/_context/_scenarios/__init__.py                                   @DataDog/system-tests-core
utils/_features.py                                                      @DataDog/system-tests-core
utils/interfaces/_open_telemetry.py                                     @DataDog/system-tests-core

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.

1 participant