Skip to content

[reference] reactor-core-3.1 async blind regeneration for #11927#11940

Draft
jordan-wong wants to merge 1 commit into
masterfrom
eval/reactor-core-3.1-async-blind-regen-20260714
Draft

[reference] reactor-core-3.1 async blind regeneration for #11927#11940
jordan-wong wants to merge 1 commit into
masterfrom
eval/reactor-core-3.1-async-blind-regen-20260714

Conversation

@jordan-wong

Copy link
Copy Markdown
Contributor

Reference draft for the skill PR #11927. This diff is the output of an automated integration-authoring pass on reactor-core-3.1 (Cat B — context propagation) against the draft skill in that PR. Not intended to be merged as-is — opened so reviewers of #11927 can see concrete output the current skill draft produces.

What this is

Master's reactor-core-3.1 module was deleted, then the automated authoring flow was run against the draft skill in #11927 (the F2/S1/CI-1 rules were in-tree on the target checkout at generation time). This branch is the resulting output.

Base: origin/master
Scope: 25 files, +994/-2741 — only inside dd-java-agent/instrumentation/reactor-core-3.1/ and one entry in metadata/supported-configurations.json.

Generation metrics

  • Wall time: ~1.5h
  • Cost: ~$13
  • Test-fix iterations: 0 (tests passed first try)
  • Reviewer iterations: 1 (approved, 0 todos remaining)

Notably smoother than the rxjava-3.0 companion run (~3.5h, $43, 4 test-fix iterations). Possible reasons: fewer types to instrument (Flux + Mono vs 6 rxjava types); or the current skill draft happens to guide reactor-shaped code more directly. Reviewers may find this an interesting data point.

What to look at

  • ReactorCoreModule.java: does it extend InstrumenterModule.ContextTracking (correct for Cat B)?
  • super(...): single-name pattern per the F2 rule in skill(apm-integrations): additional rules from recent HTTP-category PR reviews #11927
  • FluxInstrumentation.java, MonoInstrumentation.java: should contain NO span-lifecycle symbols (startSpan, activateSpan, AgentSpan, AgentScope, Decorator)
  • TracingCoreSubscriber.java: the wrapper class that attaches Context.current() at the async boundary
  • contextStore() map on the Module
  • Sibling AsyncPropagatingDisableInstrumentation in java-concurrent-1.8/ for Reactor's Schedulers.parallel() thread pool

Not for merging

This branch is a reference artifact for the skill PR discussion. The shipping reactor-core-3.1 on master is the authoritative implementation.

🤖 Generated with APM Instrumentation Toolkit

@datadog-datadog-us1-prod

datadog-datadog-us1-prod Bot commented Jul 14, 2026

Copy link
Copy Markdown

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 69.73% (+12.57%)

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

@dd-octo-sts

dd-octo-sts Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 13.95 s 13.88 s [-0.3%; +1.2%] (no difference)
startup:insecure-bank:tracing:Agent 12.94 s 13.00 s [-1.2%; +0.4%] (no difference)
startup:petclinic:appsec:Agent 16.89 s 16.75 s [-0.1%; +1.7%] (no difference)
startup:petclinic:iast:Agent 16.83 s 17.03 s [-1.9%; -0.4%] (maybe better)
startup:petclinic:profiling:Agent 16.79 s 16.23 s [-1.1%; +8.0%] (no difference)
startup:petclinic:sca:Agent 16.98 s 16.85 s [-0.3%; +1.9%] (no difference)
startup:petclinic:tracing:Agent 16.10 s 16.16 s [-1.2%; +0.4%] (no difference)

Commit: dbf3d6b2 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

…skill

Automated integration-authoring pass on reactor-core-3.1, produced against
the draft skill in #11927. Reference for #11927 reviewers to see concrete
output the current skill draft produces.

Not intended to be merged as-is.

Base: master @ 05671ce (rebased from original 2e1d2b9; the original
branch inherited a stash-merge revert of #11852 during eval branch setup
that dropped DD_TRACE_ROBOLECTRIC_ENABLED from metadata plus 172 unrelated
files. This rebased version cherry-picks ONLY the reactor-core-3.1 module
output onto current master, preserving all unrelated upstream changes.)

Cost: \$13, reviewer approved with 0 todos remaining.
Diff scope: dd-java-agent/instrumentation/reactor-core-3.1/ only.
Metadata: no change (all reactor entries already present on master).

Note: the toolkit reorganized the package layout from
'datadog.trace.instrumentation.reactor.core' (master) to
'datadog.trace.instrumentation.reactorcore' (eval). This is a
regen-preservation Rule #2 concern; documented for reviewer consideration.
@jordan-wong jordan-wong force-pushed the eval/reactor-core-3.1-async-blind-regen-20260714 branch from 2e1d2b9 to dbf3d6b Compare July 14, 2026 12:04
@jordan-wong

Copy link
Copy Markdown
Contributor Author

Rebased 2026-07-14 — branch force-pushed onto current master to fix the shared config-inversion-linter failure (same root cause as PR #11939).

Root cause (not a toolkit bug): the original eval branch inherited a stash-merge revert of #11852 during branch setup. See #11939 comment for the full diagnostic.

Fix: cherry-picked only the in-scope dd-java-agent/instrumentation/reactor-core-3.1/ paths from the original terminal SHA (2e1d2b98d7) onto fresh master (05671ce3b0). All reactor metadata entries were already present on master, so no metadata change is needed.

Result: 24 files changed (all under reactor-core-3.1/), no sibling contamination.

Note for reviewers: the eval reorganized the package layout from datadog.trace.instrumentation.reactor.core (master) to datadog.trace.instrumentation.reactorcore (eval output). This is a Rule #2 (regen-preservation) concern worth flagging — the master module's package layout should typically be preserved verbatim on regen.

Original commit: 2e1d2b98d7 → rebased: dbf3d6b2c7

The 10 CI failures beyond the shared metadata bug are being triaged separately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: reactor Reactor instrumentation type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant