Repository navigation
Conversation
ConfigSnapshot reused the previous mergedTracerTags whenever the tracing tags were unchanged, but withTracerTags also depends on whether Data Streams Monitoring is enabled. Enabling or disabling DSM through remote config, without a tag change, left _dd.dsm.enabled stale on new spans. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🟢 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. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
More details
The cache-reuse guard now accounts for DSM enablement, allowing remote-config updates to add or remove _dd.dsm.enabled even when tracing tags remain unchanged. The completed static review identified no reportable defects.
🤖 Bits Code Review · Commit 3b8dd31
What Does This Do
Rebuilds the tracer-wide span tags (
mergedTracerTags) when remote config enables or disables Data Streams Monitoring, not only when the tracing tags change.Motivation
ConfigSnapshotreuses the previous snapshot'smergedTracerTagswhenever the tracing tags are unchanged. ButwithTracerTagsalso readsisDataStreamsEnabled()to set or remove_dd.dsm.enabled. So an RC update that changes onlydata_streams_enabled(TracingConfigPoller) left_dd.dsm.enabledstale on every new span:The tag only corrected itself once some later RC update also changed the tracing tags.
Fix: also compare
isDataStreamsEnabled()in the reuse check. It only runs when a snapshot is built (on RC updates), never per span.Additional Notes
CoreTracerTest.remoteConfigDataStreamsToggleUpdatesTracerTagsfails on master (expected: <1> but was: <null>after RC enables DSM) and passes with the fix.dd-trace-corelocally: the only failures were two Docker-based tests (no Docker locally) and two timing tests (DDAgentWriterCombinedTest,PendingTraceBufferTest). Both timing tests pass when rerun on their own./perf-reviewon Keep DD_SPAN_TAGS when remote config overrides tracing tags (OTLP trace/resource-level split) #12937. It touches the sameConfigSnapshotblock, so whichever lands second needs a small rebase.Jira ticket: [PROJ-IDENT]
🤖 Generated with Claude Code