🍒 12028 - Stamp _dd.apm.enabled on every exported chunk when APM tracing is disabled#12068
Conversation
…abled (#12028) Stamp _dd.apm.enabled on every exported chunk when APM tracing is disabled Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Mark the root-most span of each exported chunk with _dd.apm.enabled:0 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Cover root-less chunk fallback in ApmTracingDisabledChunkMarkerTest Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Correct getLocalRootSpanTags comment to say root-most span Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> add standalone tag on every single span Tighten smoke-test to every-span assertion and clarify apmTracingEnabled javadoc Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Merge branch 'master' into clara.poncet/apm-enabled-service-entry-span fix late outbound controller formatting Co-authored-by: devflow.devflow-routing-intake <devflow.devflow-routing-intake@kubernetes.us1.ddbuild.io> (cherry picked from commit 6821684)
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
There was a problem hiding this comment.
More details
The export-path change correctly applies _dd.apm.enabled:0 after sampling to every span in every accepted chunk, including rootless late-child and partial-flush chunks, while leaving APM-enabled traces unchanged. The targeted test could not execute in this sandbox because Java 25 is unavailable and Gradle downloads are blocked; source review found no clear behavioral regression.
🤖 Datadog Autotest · Commit d514187 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
| // The _dd.apm.enabled:0 billing marker is intentionally NOT set here. When APM tracing is | ||
| // disabled it is stamped on every span of each exported chunk (see CoreTracer.write), so that | ||
| // chunks flushed without their local root span (e.g. a late child span) still opt out of APM | ||
| // host billing. |
There was a problem hiding this comment.
🎯 suggestion: This kind of comment should go to the tag declaration instead.
| * marker. To make sure no chunk gets flushed without the correct billing tag, it gets added to | ||
| * every single span. These tests lock that in. | ||
| */ | ||
| @WithConfig(key = "apm.tracing.enabled", value = "false") |
There was a problem hiding this comment.
🔨 issue: Use the config name constant instead of string literal
|
The CI is failing with: |
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Backport #12028 to release/v1.64.x