Skip to content

Commit 8cbdbb0

Browse files
fix(agents): scope Java transformer P0 and seed full-review perf facts
Auto-instrumentations still require InstrumenterModule; product transformers do not. The full-review fixture now states the J10/J12 preconditions the performance override already requires.
1 parent 84bb97a commit 8cbdbb0

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

‎.agents/dd-apm-sdk-review-overrides/reviewers/design.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ Read **docs/add_new_configurations.md** — it owns the registration steps; chec
2020

2121
## Extension points (instrumentations)
2222

23-
An instrumentation must go through `InstrumenterModule` + the `Instrumenter` type-matching interfaces (`ForSingleType`, `ForKnownTypes`, `ForTypeHierarchy`, `ForBootstrap`) and be discovered via `@AutoService(InstrumenterModule.class)` — see ARCHITECTURE.md § "agent-tooling/" and **docs/add_new_instrumentation.md** / **docs/how_instrumentations_work.md**. A bespoke `ClassFileTransformer` or advice registered outside this mechanism bypasses Muzzle's build-time version-safety checks entirely — that's a P0 shape problem, not a nit, independent of whether the bespoke code works.
23+
An **auto-instrumentation** under `dd-java-agent/instrumentation/` must go through `InstrumenterModule` + the `Instrumenter` type-matching interfaces (`ForSingleType`, `ForKnownTypes`, `ForTypeHierarchy`, `ForBootstrap`) and be discovered via `@AutoService(InstrumenterModule.class)` — see ARCHITECTURE.md § "agent-tooling/" and **docs/add_new_instrumentation.md** / **docs/how_instrumentations_work.md**. A bespoke `ClassFileTransformer` or advice registered outside this mechanism for an auto-instrumentation bypasses Muzzle's build-time version-safety checks entirely — that's a P0 shape problem, not a nit, independent of whether the bespoke code works.
24+
25+
This rule is scoped to auto-instrumentations. Product subsystems that already register purpose-built transformers outside `InstrumenterModule` (CI Visibility coverage, debugger, IAST, AppSec, telemetry) are not in scope — do not raise a P0 solely because those products use a standalone `ClassFileTransformer`.
2426

2527
## Lifecycle / bootstrap
2628

‎.llm-validation/suites/dd-apm-sdk-review.yaml‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ cases:
5757
inspect — this diff is the entire change set; do not attempt any git commands, go
5858
straight to running the reviewers on the pasted content below.
5959
60+
`byResource` is a lookup-by-key cache: callers only `get(resourceName)`. Insertion
61+
order is not part of the contract. `describe()` is invoked on the per-span write
62+
path (hot).
63+
6064
```diff
6165
diff --git a/dd-trace-core/src/main/java/datadog/trace/core/SpanCache.java b/dd-trace-core/src/main/java/datadog/trace/core/SpanCache.java
6266
index 1111111..2222222 100644

0 commit comments

Comments
 (0)