Repository navigation
Propagate Oracle dynamic service hash without SQL comments - #12234
gh-worker-dd-mergequeue-cf854d[bot] merged 4 commits into
Conversation
|
🎯 Code Coverage (details) 🔗 Commit SHA: 35692f7 | Docs | View more details | Give us feedback! |
🟢 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. |
|
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.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ab2505d811
ℹ️ 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".
There was a problem hiding this comment.
The new Oracle ACTION path ignores the process-tag propagation opt-out. It can send a hash without the matching span tag, so DBM-to-APM correlation fails.
🤖 Datadog Autotest · Commit ab2505d · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
dougqh
left a comment
There was a problem hiding this comment.
I think the mutable parts of DbInfo need to live elsewhere.
Please see inline comments for more details.
There was a problem hiding this comment.
A BaseHash update can put one hash in Oracle ACTION and a different hash on the JDBC span. This mismatch prevents DBM correlation for that query.
🤖 Datadog Autotest · Commit c8283cb · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
There was a problem hiding this comment.
More details
The opt-in path keeps Oracle statement text unchanged. It updates ACTION when BaseHash changes and keeps mutable ACTION state per connection. No concrete failure mode clears the reporting threshold.
🤖 Datadog Autotest · Commit 35692f7 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
dougqh
left a comment
There was a problem hiding this comment.
Looks good to me now -- thanks for doing the rework to split up DbInfo
ygree
left a comment
There was a problem hiding this comment.
IDM approved with a note about tests in Groovy
What changed
DD_DBM_PROPAGATION_ORACLE_ACTION_ONLY_ENABLEDconfiguration. It defaults tofalse.DD_DBM_PROPAGATION_MODE=dynamic_service, write_DD_DDSH:<BaseHash>throughsetClientInfo("OCSID.ACTION", ...)for Oracle connections.Why
SDBM-2904 requires Oracle DBM/APM correlation without changing statement text. Oracle SQL Plan Management matches exact SQL text, so injected comments can prevent stored baselines from matching.
The ACTION payload uses the same signed
BaseHashalready emitted asddsh, so the backend can reuse the existing dynamic-service linker.Enablement
Verification
./gradlew :dd-trace-api:spotlessApply :internal-api:spotlessApply :dd-java-agent:agent-bootstrap:spotlessApply :dd-java-agent:instrumentation:jdbc:spotlessApply./gradlew :internal-api:test --tests 'datadog.trace.api.ConfigTest.Oracle DBM action propagation enabled*'./gradlew :dd-java-agent:instrumentation:jdbc:forkedTest --tests 'OracleInjectionForkedTest' --tests 'OracleDynamicServiceActionInjectionForkedTest' --tests 'DBMDynamicServiceInjectionForkedTest'Links