Skip to content

test(otlp-trace-metrics): align cross-tracer attributes - #7466

Merged
mabdinur merged 17 commits into
mainfrom
codex/otlp-trace-metrics-follow-up-tests
Aug 7, 2026
Merged

test(otlp-trace-metrics): align cross-tracer attributes#7466
mabdinur merged 17 commits into
mainfrom
codex/otlp-trace-metrics-follow-up-tests

Conversation

@mabdinur

@mabdinur mabdinur commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Removes Test_FR07_Otel_Semantics_Mode, its fixture, and related documentation because OTLP trace metrics always emit supported datadog.* attributes.
  • Preserves the retired FR07 node IDs as irrelevant manifest tombstones.
  • Adds coverage for datadog.svc_src, Boolean datadog.is_trace_root, and datadog.span.top_level values.
  • Uses OTLP traces in the service-source test so _dd.svc_src is derived by each tracer rather than injected by the test.
  • Enables DD_TRACE_STATS_ADDITIONAL_TAGS using each tracer's experimental-feature configuration and narrows manifest gates to individual unsupported tests.

Implementation PRs:

.NET process-tag and peer-tag support remains separate in #9002.

Validation

  • Ruff formatting, mypy, yamllint, yamlfmt, and manifest validation
  • Collection of all 52 OTLP trace-metrics tests
  • Local runs against the Go, Java, .NET, and Node.js implementation branches

@github-actions

github-actions Bot commented Aug 5, 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
manifests/rust.yml                                                      @DataDog/apm-rust
tests/parametric/test_otlp_trace_metrics.py                             @DataDog/system-tests-core @DataDog/apm-sdk-capabilities

@mabdinur mabdinur changed the title test(otlp-trace-metrics): fix Java compatibility checks test(otlp-trace-metrics): align cross-tracer attributes Aug 6, 2026
Comment thread tests/parametric/test_otlp_trace_metrics.py Outdated
@mabdinur
mabdinur marked this pull request as ready for review August 6, 2026 19:47
@mabdinur
mabdinur requested review from a team as code owners August 6, 2026 19:47
@mabdinur
mabdinur removed the request for review from a team August 6, 2026 19:47

@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: d1f2911d52

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tests/parametric/test_otlp_trace_metrics.py
Comment thread tests/parametric/test_otlp_trace_metrics.py
Comment thread tests/parametric/test_otlp_trace_metrics.py Outdated
@mabdinur
mabdinur marked this pull request as draft August 6, 2026 20:03
Comment thread manifests/ruby.yml Outdated
@mabdinur
mabdinur marked this pull request as ready for review August 6, 2026 20:48
Comment thread tests/parametric/test_otlp_trace_metrics.py Outdated

@zacharycmontoya zacharycmontoya left a comment

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.

LGTM feature-wise with a couple of comments

@mabdinur
mabdinur enabled auto-merge (squash) August 6, 2026 21:18
@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Aug 7, 2026

Copy link
Copy Markdown

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

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

@mabdinur
mabdinur merged commit 147620e into main Aug 7, 2026
431 checks passed
@mabdinur
mabdinur deleted the codex/otlp-trace-metrics-follow-up-tests branch August 7, 2026 04:30
gh-worker-dd-mergequeue-cf854d Bot pushed a commit to DataDog/dd-trace-go that referenced this pull request Aug 7, 2026
### What does this PR do?

- Makes OTLP trace metrics ignore `DD_TRACE_OTEL_SEMANTICS_ENABLED`; available OTel and `datadog.*` resource/data-point attributes are always emitted together.
- Exports a non-empty `ClientGroupedStats.ServiceSource` as the OTLP string attribute `datadog.svc_src` and omits it when absent.
- Removes trace-metrics-only mode plumbing while preserving OTel-semantics behavior for trace export.
- Emits known trace-root values as native Booleans and omits unset or unrecognized values. Adds focused coverage for unconditional attributes and service-source presence, absence, and typing.

### Motivation

Follow-up to merged #5130 for the revised cross-SDK OTLP trace-metrics contract. Shared coverage is tracked in DataDog/system-tests#7466.

### Validation

- `go test ./ddtrace/tracer -count=1`
- `go vet ./ddtrace/tracer`
- `make format/go`
- `./bin/golangci-lint run --new-from-rev=origin/main ./ddtrace/tracer`

### Reviewer's Checklist

- [x] Changed code has focused unit coverage.
- [x] Shared system-test coverage is added in DataDog/system-tests#7466.
- [x] No generated files, dependencies, or public APIs changed.


Co-authored-by: munir.abdinur <munir.abdinur@datadoghq.com>
gh-worker-dd-mergequeue-cf854d Bot pushed a commit to DataDog/libdatadog that referenced this pull request Aug 12, 2026
…#2316)

# What does this PR do?

Adds the libdatadog OTLP trace-metrics support used by ddtrace-py.

- Exports canonical SMC dimensions plus available HTTP, RPC, and Datadog data-point attributes.
- Emits trace-root and top-level values as booleans and peer tags as an array.
- Adds runtime ID, process tags, and tracer tags to resource attributes.
- Adds builder configuration for tracer tags and additional metric tag keys.
- Omits optional method, route, span type, and service-source attributes when unset.
- Keeps trace-metrics output independent of OTel-semantics mode without changing configuration parsing.

# Motivation

ddtrace-py needs the shared exporter to implement the contract defined in [system-tests#7363](DataDog/system-tests#7363) and refined in [system-tests#7466](DataDog/system-tests#7466).

# Additional Notes

Includes a release note announcing ddtrace-py support.

# How to test the change?

Rust formatting, `cargo check`, Clippy, data-pipeline tests, trace-utils tests, and ddtrace-py OTLP system tests passed.

Co-authored-by: munir.abdinur <munir.abdinur@datadoghq.com>
mabdinur added a commit to DataDog/dd-trace-dotnet that referenced this pull request Aug 13, 2026
## Summary

Aligns .NET OTLP trace metrics with the cross-tracer contract in
DataDog/system-tests#7466.

- Emits OTLP metric attributes independently of
`DD_TRACE_OTEL_SEMANTICS_ENABLED` while retaining that setting for its
other consumers.
- Emits core SMC attributes first in the order `service.name`,
`status.code`, `span.kind`, and `span.name`; unknown span kinds default
to `SPAN_KIND_INTERNAL`.
- Always emits `datadog.operation.name`, emits known trace-root and
top-level values as booleans, and emits `datadog.svc_src` when present.

Process and peer-tag arrays remain intentionally deferred to
#9002.

## Validation

- Focused `OtlpSpanStatsSerializerTests`: 59 passed
- Production and test `dotnet format --verify-no-changes`: passed
- `Datadog.Trace.csproj -f netstandard2.0 --no-restore`: passed with no
warnings or errors
- `git diff --check`: passed
gh-worker-dd-mergequeue-cf854d Bot pushed a commit to DataDog/dd-trace-py that referenced this pull request Aug 18, 2026
## Description

Wires ddtrace-py configuration into the libdatadog v41 OTLP trace-metrics exporter:

- Passes supported `DD_TAGS` entries to the metrics resource as `datadog.tracer_tags`, excluding reserved service, environment, version, and runtime ID keys.
- Adds `DD_TRACE_STATS_ADDITIONAL_TAGS` and forwards the selected span-tag keys to native stats aggregation.
- Exposes both settings through the PyO3 builder and Python type stubs.
- Adds writer and OTLP payload coverage plus a customer-facing feature release note.

This follows the contract introduced in [system-tests#7363](DataDog/system-tests#7363) and refined in [system-tests#7466](DataDog/system-tests#7466).

## Testing

- `cargo check --locked --manifest-path src/native/Cargo.toml`
- `scripts/lint checks`
- Coverage in `tests/tracer/test_writer.py` and `tests/opentelemetry/test_otlp_trace.py`

## Risks

The new export path is disabled unless `OTEL_TRACES_SPAN_METRICS_ENABLED=true`.

## Additional Notes

Stacked on [#19580](#19580), which updates libdatadog to v41.0.0 and must merge first.


Co-authored-by: munir.abdinur <munir.abdinur@datadoghq.com>
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.

2 participants