Skip to content

Commit 0cc0084

Browse files
committed
Update docs
1 parent 346a34e commit 0cc0084

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

docs/add_new_instrumentation.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,17 @@ include ':dd-java-agent:instrumentation:google-http-client'
4040
3. Choose an appropriate class name
4141
like `datadog.trace.instrumentation.googlehttpclient.GoogleHttpClientInstrumentation` (
4242
see [Naming](./how_instrumentations_work.md#naming))
43-
4. Include the required `@AutoService(Instrumenter.class) `annotation.
44-
5. Choose `Instrumenter.Tracing` as the parent class.
43+
4. Include the required `@AutoService(InstrumenterModule.class) `annotation.
44+
5. Choose `InstrumenterModule.Tracing` as the parent class.
4545
6. Since this instrumentation class will only modify one specific type, it can implement
4646
the `Instrumenter.ForSingleType `interface which provides the `instrumentedType()` method. (
4747
see [Type Matching](./how_instrumentations_work.md#type-matching))
4848
7. Pass the instrumentation name to the superclass constructor
4949

5050
```java
5151

52-
@AutoService(Instrumenter.class)
53-
public class GoogleHttpClientInstrumentation extends Instrumenter.Tracing implements Instrumenter.ForSingleType {
52+
@AutoService(InstrumenterModule.class)
53+
public class GoogleHttpClientInstrumentation extends InstrumenterModule.Tracing implements Instrumenter.ForSingleType {
5454
public GoogleHttpClientInstrumentation() {
5555
super("google-http-client");
5656
}

docs/how_instrumentations_work.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -109,31 +109,32 @@ The Instrumentation class is where the Instrumentation begins. It will:
109109

110110
Instrumentation classes:
111111

112-
1. Must be annotated with `@AutoService(Instrumenter.class)`
113-
2. Should extend one of the six abstract TargetSystem `Instrumenter` classes
112+
1. Must be annotated with `@AutoService(InstrumenterModule.class)`
113+
2. Should extend one of the six abstract TargetSystem `InstrumenterModule` classes
114114
3. Should implement one of the `Instrumenter` interfaces
115115

116116
For example:
117117

118118
```java
119119
import datadog.trace.agent.tooling.Instrumenter;
120+
import datadog.trace.agent.tooling.InstrumenterModule;
120121

121-
@AutoService(Instrumenter.class)
122-
public class RabbitChannelInstrumentation extends Instrumenter.Tracing
122+
@AutoService(InstrumenterModule.class)
123+
public class RabbitChannelInstrumentation extends InstrumenterModule.Tracing
123124
implements Instrumenter.ForTypeHierarchy {/* */
124125
}
125126
```
126127

127128
| | |
128129
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|
129130
| **TargetSystem** | **Usage** |
130-
| `Instrumenter.`[`Tracing`](https://github.com/DataDog/dd-trace-java/blob/d18bc66fd448d40b2ea1b5a461e24dbcf036cfab/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java#L300C18-L300C25) | An Instrumentation class should extend an appropriate provided TargetSystem class when possible. |
131-
| `Instrumenter.`[`Profiling`](https://github.com/DataDog/dd-trace-java/blob/d18bc66fd448d40b2ea1b5a461e24dbcf036cfab/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java#L312C22-L312C22) | |
132-
| `Instrumenter.`[`AppSec`](https://github.com/DataDog/dd-trace-java/blob/d18bc66fd448d40b2ea1b5a461e24dbcf036cfab/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java#L331C18-L331C18) | |
133-
| `Instrumenter.`[`Iast`](https://github.com/DataDog/dd-trace-java/blob/d18bc66fd448d40b2ea1b5a461e24dbcf036cfab/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java#L344) | |
134-
| `Instrumenter.`[`CiVisibility`](https://github.com/DataDog/dd-trace-java/blob/d18bc66fd448d40b2ea1b5a461e24dbcf036cfab/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java#L405C18-L405C30) | |
135-
| `Instrumenter.`[`Usm`](https://github.com/DataDog/dd-trace-java/blob/d18bc66fd448d40b2ea1b5a461e24dbcf036cfab/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java#L393) | |
136-
| `Instrumenter.`[`Default`](https://github.com/DataDog/dd-trace-java/blob/d18bc66fd448d40b2ea1b5a461e24dbcf036cfab/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java) | Avoid extending `Default`. When no other TargetGroup is applicable we generally default to `Tracing`.` ` |
131+
| `InstrumenterModule.`[`Tracing`](https://github.com/DataDog/dd-trace-java/blob/82a3400cd210f4051b92fe1a86cd1b64a17e005e/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java#L184) | An Instrumentation class should extend an appropriate provided TargetSystem class when possible. |
132+
| `InstrumenterModule.`[`Profiling`](https://github.com/DataDog/dd-trace-java/blob/82a3400cd210f4051b92fe1a86cd1b64a17e005e/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java#L196) | |
133+
| `InstrumenterModule.`[`AppSec`](https://github.com/DataDog/dd-trace-java/blob/82a3400cd210f4051b92fe1a86cd1b64a17e005e/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java#L215) | |
134+
| `InstrumenterModule.`[`Iast`](https://github.com/DataDog/dd-trace-java/blob/82a3400cd210f4051b92fe1a86cd1b64a17e005e/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java#L228) | |
135+
| `InstrumenterModule.`[`CiVisibility`](https://github.com/DataDog/dd-trace-java/blob/82a3400cd210f4051b92fe1a86cd1b64a17e005e/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java#L285) | |
136+
| `InstrumenterModule.`[`Usm`](https://github.com/DataDog/dd-trace-java/blob/82a3400cd210f4051b92fe1a86cd1b64a17e005e/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java#L273) | |
137+
| [`InstrumenterModule`](https://github.com/DataDog/dd-trace-java/blob/82a3400cd210f4051b92fe1a86cd1b64a17e005e/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java) | Avoid extending `InstrumenterModule` directly. When no other TargetGroup is applicable we generally default to `InstrumenterModule`.`Tracing` |
137138

138139
### Type Matching
139140

@@ -158,7 +159,7 @@ expensive [ForTypeHierarchy](https://github.com/DataDog/dd-trace-java/blob/5cab8
158159
matching.
159160

160161
Consider adding an
161-
appropriate [ClassLoaderMatcher](https://github.com/DataDog/dd-trace-java/blob/3e81c006b54f73aae61f88c39b52a7267267075b/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/Instrumenter.java#L253)
162+
appropriate [ClassLoaderMatcher](https://github.com/DataDog/dd-trace-java/blob/82a3400cd210f4051b92fe1a86cd1b64a17e005e/dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/InstrumenterModule.java#L137)
162163
so the Instrumentation only activates when that class is loaded. For example:
163164

164165
```java

0 commit comments

Comments
 (0)