Skip to content

Commit 9e8c9c2

Browse files
authored
Rename debugger config to dynamic instrumentation (#8332)
* Rename debugger config to dynamic instrumentation Originally the config parameter was debuggerXXX. when the product was rolled out we use the term dynamic instrumentation. Now that we will introduce the live debugger in itself, it's confusing to keep debugger everywhere. First step is to rename dynamic instrumentation config tokens to reflect the fact that they are belonging to Dynamic Instrumentation part of the product * missed one
1 parent 99d7952 commit 9e8c9c2

File tree

40 files changed

+367
-313
lines changed

40 files changed

+367
-313
lines changed

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ private enum AgentFeature {
100100
propertyNameToSystemPropertyName(CiVisibilityConfig.CIVISIBILITY_AGENTLESS_ENABLED), false),
101101
USM(propertyNameToSystemPropertyName(UsmConfig.USM_ENABLED), false),
102102
TELEMETRY(propertyNameToSystemPropertyName(GeneralConfig.TELEMETRY_ENABLED), true),
103-
DEBUGGER(propertyNameToSystemPropertyName(DebuggerConfig.DEBUGGER_ENABLED), false),
103+
DEBUGGER(
104+
propertyNameToSystemPropertyName(DebuggerConfig.DYNAMIC_INSTRUMENTATION_ENABLED), false),
104105
EXCEPTION_DEBUGGING(
105106
propertyNameToSystemPropertyName(DebuggerConfig.EXCEPTION_REPLAY_ENABLED), false),
106107
SPAN_ORIGIN(

dd-java-agent/agent-debugger/debugger-bootstrap/src/main/java/datadog/trace/bootstrap/debugger/DebuggerContext.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,8 @@ public static void evalContext(
307307
// only freeze the context when we have at lest one snapshot probe, and we should send
308308
// snapshot
309309
if (needFreeze) {
310-
Duration timeout = Duration.of(Config.get().getDebuggerCaptureTimeout(), ChronoUnit.MILLIS);
310+
Duration timeout =
311+
Duration.of(Config.get().getDynamicInstrumentationCaptureTimeout(), ChronoUnit.MILLIS);
311312
context.freeze(new TimeoutChecker(timeout));
312313
}
313314
} catch (Exception ex) {

dd-java-agent/agent-debugger/debugger-bootstrap/src/main/java/datadog/trace/bootstrap/debugger/util/Redaction.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,11 @@ static void initKeywords() {
117117
* based on sentry list: https://github.com/getsentry/sentry-python/blob/fefb454287b771ac31db4e30fa459d9be2f977b8/sentry_sdk/scrubber.py#L17-L58
118118
*/
119119
KEYWORDS.addAll(PREDEFINED_KEYWORDS);
120-
KEYWORDS.removeAll(Config.get().getDebuggerRedactionExcludedIdentifiers());
120+
KEYWORDS.removeAll(Config.get().getDynamicInstrumentationRedactionExcludedIdentifiers());
121121
}
122122

123123
public static void addUserDefinedKeywords(Config config) {
124-
String redactedIdentifiers = config.getDebuggerRedactedIdentifiers();
124+
String redactedIdentifiers = config.getDynamicInstrumentationRedactedIdentifiers();
125125
if (redactedIdentifiers == null) {
126126
return;
127127
}
@@ -132,7 +132,7 @@ public static void addUserDefinedKeywords(Config config) {
132132
}
133133

134134
public static void addUserDefinedTypes(Config config) {
135-
String redactedTypes = config.getDebuggerRedactedTypes();
135+
String redactedTypes = config.getDynamicInstrumentationRedactedTypes();
136136
if (redactedTypes == null) {
137137
return;
138138
}

dd-java-agent/agent-debugger/debugger-bootstrap/src/test/java/datadog/trace/bootstrap/debugger/util/RedactionTest.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public void basic() {
2828
@Test
2929
public void userDefinedKeywords() {
3030
Config config = Config.get();
31-
setFieldInConfig(config, "debuggerRedactedIdentifiers", "_MotDePasse,$Passwort");
31+
setFieldInConfig(config, "dynamicInstrumentationRedactedIdentifiers", "_MotDePasse,$Passwort");
3232
try {
3333
Redaction.addUserDefinedKeywords(config);
3434
assertTrue(Redaction.isRedactedKeyword("mot-de-passe"));
@@ -41,7 +41,8 @@ public void userDefinedKeywords() {
4141
@Test
4242
public void userDefinedTypes() {
4343
Config config = Config.get();
44-
setFieldInConfig(config, "debuggerRedactedTypes", "java.security.Security,javax.security.*");
44+
setFieldInConfig(
45+
config, "dynamicInstrumentationRedactedTypes", "java.security.Security,javax.security.*");
4546
try {
4647
Redaction.addUserDefinedTypes(Config.get());
4748
assertTrue(Redaction.isRedactedType("java.security.Security"));
@@ -55,12 +56,15 @@ public void userDefinedTypes() {
5556
public void exclusions() {
5657
Config config = Config.get();
5758
setFieldInConfig(
58-
config, "debuggerRedactionExcludedIdentifiers", new HashSet<>(Arrays.asList("password")));
59+
config,
60+
"dynamicInstrumentationRedactionExcludedIdentifiers",
61+
new HashSet<>(Arrays.asList("password")));
5962
Redaction.initKeywords();
6063
try {
6164
assertFalse(Redaction.isRedactedKeyword("password"));
6265
} finally {
63-
setFieldInConfig(config, "debuggerRedactionExcludedIdentifiers", Collections.emptySet());
66+
setFieldInConfig(
67+
config, "dynamicInstrumentationRedactionExcludedIdentifiers", Collections.emptySet());
6468
Redaction.initKeywords();
6569
}
6670
}

dd-java-agent/agent-debugger/debugger-el/src/test/java/com/datadog/debugger/el/expressions/GetMemberExpressionTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ void redactedType() {
8686
Config config = Config.get();
8787
setFieldInConfig(
8888
config,
89-
"debuggerRedactedTypes",
89+
"dynamicInstrumentationRedactedTypes",
9090
"com.datadog.debugger.el.expressions.GetMemberExpressionTest*");
9191
try {
9292
Redaction.addUserDefinedTypes(Config.get());

dd-java-agent/agent-debugger/debugger-el/src/test/java/com/datadog/debugger/el/expressions/IndexExpressionTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ void redactedType() {
110110
Config config = Config.get();
111111
setFieldInConfig(
112112
config,
113-
"debuggerRedactedTypes",
113+
"dynamicInstrumentationRedactedTypes",
114114
"com.datadog.debugger.el.expressions.IndexExpressionTest*");
115115
try {
116116
Redaction.addUserDefinedTypes(Config.get());

dd-java-agent/agent-debugger/debugger-el/src/test/java/com/datadog/debugger/el/expressions/ValueRefExpressionTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,8 @@ public void redacted() {
125125
@Test
126126
public void redactedType() {
127127
Config config = Config.get();
128-
setFieldInConfig(config, "debuggerRedactedTypes", "com.datadog.debugger.el.expressions.*");
128+
setFieldInConfig(
129+
config, "dynamicInstrumentationRedactedTypes", "com.datadog.debugger.el.expressions.*");
129130
try {
130131
Redaction.addUserDefinedTypes(Config.get());
131132
ValueRefExpression valueRef = new ValueRefExpression("store");

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerAgent.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@ public static synchronized void run(
103103
LOGGER.info("Starting Code Origin for spans");
104104
DebuggerContext.initCodeOrigin(new DefaultCodeOriginRecorder(config, configurationUpdater));
105105
}
106-
if (config.isDebuggerInstrumentTheWorld()) {
106+
if (config.isDynamicInstrumentationInstrumentTheWorld()) {
107107
setupInstrumentTheWorldTransformer(
108108
config, instrumentation, debuggerSink, statsdMetricForwarder);
109109
}
110110
// Dynamic Instrumentation
111-
if (config.isDebuggerEnabled()) {
111+
if (config.isDynamicInstrumentationEnabled()) {
112112
startDynamicInstrumentation(
113113
instrumentation, sco, config, configurationUpdater, debuggerSink, classNameFilter);
114114
}
@@ -137,10 +137,11 @@ private static void startDynamicInstrumentation(
137137
DebuggerSink debuggerSink,
138138
ClassNameFilter classNameFilter) {
139139
LOGGER.info("Starting Dynamic Instrumentation");
140-
String probeFileLocation = config.getDebuggerProbeFileLocation();
140+
String probeFileLocation = config.getDynamicInstrumentationProbeFile();
141141
if (probeFileLocation != null) {
142142
Path probeFilePath = Paths.get(probeFileLocation);
143-
loadFromFile(probeFilePath, configurationUpdater, config.getDebuggerMaxPayloadSize());
143+
loadFromFile(
144+
probeFilePath, configurationUpdater, config.getDynamicInstrumentationMaxPayloadSize());
144145
return;
145146
}
146147
configurationPoller = sco.configurationPoller(config);

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerTransformer.java

+12-6
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public DebuggerTransformer(
119119
this.denyListHelper = new DenyListHelper(configuration.getDenyList());
120120
this.listener = listener;
121121
this.debuggerSink = debuggerSink;
122-
this.instrumentTheWorld = config.isDebuggerInstrumentTheWorld();
122+
this.instrumentTheWorld = config.isDynamicInstrumentationInstrumentTheWorld();
123123
if (this.instrumentTheWorld) {
124124
instrumentTheWorldProbes = new ConcurrentHashMap<>();
125125
excludeTrie = new Trie();
@@ -129,9 +129,15 @@ public DebuggerTransformer(
129129
includeClasses = new HashSet<>();
130130
includeMethods = new HashSet<>();
131131
processITWFiles(
132-
config.getDebuggerExcludeFiles(), excludeTrie, excludeClasses, excludeMethods);
132+
config.getDynamicInstrumentationExcludeFiles(),
133+
excludeTrie,
134+
excludeClasses,
135+
excludeMethods);
133136
processITWFiles(
134-
config.getDebuggerIncludeFiles(), includeTrie, includeClasses, includeMethods);
137+
config.getDynamicInstrumentationIncludeFiles(),
138+
includeTrie,
139+
includeClasses,
140+
includeMethods);
135141
} else {
136142
instrumentTheWorldProbes = null;
137143
excludeTrie = null;
@@ -445,7 +451,7 @@ private byte[] writeClassFile(
445451
}
446452

447453
private void verifyByteCode(String classFilePath, byte[] classFile) {
448-
if (!config.isDebuggerVerifyByteCode()) {
454+
if (!config.isDynamicInstrumentationVerifyByteCode()) {
449455
return;
450456
}
451457
StringWriter stringWriter = new StringWriter();
@@ -831,7 +837,7 @@ private MethodNode matchSourceFile(
831837
}
832838

833839
private void dumpInstrumentedClassFile(String className, byte[] data) {
834-
if (config.isDebuggerClassFileDumpEnabled()) {
840+
if (config.isDynamicInstrumentationClassFileDumpEnabled()) {
835841
log.debug("Generated bytecode len: {}", data.length);
836842
Path classFilePath = dumpClassFile(className, data);
837843
if (classFilePath != null) {
@@ -841,7 +847,7 @@ private void dumpInstrumentedClassFile(String className, byte[] data) {
841847
}
842848

843849
private void dumpOriginalClassFile(String className, byte[] classfileBuffer) {
844-
if (config.isDebuggerClassFileDumpEnabled()) {
850+
if (config.isDynamicInstrumentationClassFileDumpEnabled()) {
845851
Path classFilePath = dumpClassFile(className + "_orig", classfileBuffer);
846852
if (classFilePath != null) {
847853
log.debug("Original class saved as: {}", classFilePath.toString());

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/codeorigin/DefaultCodeOriginRecorder.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ private CodeOriginProbe createProbe(String fingerPrint, boolean entry, Where whe
115115

116116
// i think this check is unnecessary at this point time but leaving for now to be safe
117117
if (installed == null) {
118-
if (Config.get().isDebuggerEnabled()) {
118+
if (Config.get().isDynamicInstrumentationEnabled()) {
119119
registerLogProbe(probe);
120120
}
121121
installProbes();

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/instrumentation/CapturedContextInstrumentor.java

+6-4
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,8 @@ private void instrumentMethodEnter() {
415415
throwableListVar = declareThrowableList(insnList);
416416
}
417417
unscopedLocalVars = Collections.emptyList();
418-
if (Config.get().isDebuggerHoistLocalVarsEnabled() && language == JvmLanguage.JAVA) {
418+
if (Config.get().isDynamicInstrumentationHoistLocalVarsEnabled()
419+
&& language == JvmLanguage.JAVA) {
419420
// for now, only hoist local vars for Java
420421
unscopedLocalVars = initAndHoistLocalVars(insnList);
421422
}
@@ -909,14 +910,15 @@ private void collectLocalVariables(AbstractInsnNode location, InsnList insnList)
909910
}
910911

911912
if (methodNode.localVariables == null || methodNode.localVariables.isEmpty()) {
912-
if (!Config.get().isDebuggerInstrumentTheWorld()) {
913+
if (!Config.get().isDynamicInstrumentationInstrumentTheWorld()) {
913914
reportWarning("Missing local variable debug info");
914915
}
915916
// no local variables info - bail out
916917
return;
917918
}
918919
Collection<LocalVariableNode> localVarNodes;
919-
boolean isLocalVarHoistingEnabled = Config.get().isDebuggerHoistLocalVarsEnabled();
920+
boolean isLocalVarHoistingEnabled =
921+
Config.get().isDynamicInstrumentationHoistLocalVarsEnabled();
920922
if (definition.isLineProbe() || !isLocalVarHoistingEnabled) {
921923
localVarNodes = methodNode.localVariables;
922924
} else {
@@ -1134,7 +1136,7 @@ private static List<FieldNode> extractStaticFields(
11341136
}
11351137
}
11361138
}
1137-
if (!Config.get().isDebuggerInstrumentTheWorld()) {
1139+
if (!Config.get().isDynamicInstrumentationInstrumentTheWorld()) {
11381140
// Collects inherited static fields only if the ITW mode is not enabled
11391141
// because it can lead to LinkageError: attempted duplicate class definition
11401142
// for example, when a probe is located in method overridden in enum element

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/probe/LogProbe.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,8 @@ public void commit(CapturedContext lineContext, int line) {
707707
if (shouldCommit) {
708708
if (isCaptureSnapshot()) {
709709
// freeze context just before commit because line probes have only one context
710-
Duration timeout = Duration.of(Config.get().getDebuggerCaptureTimeout(), ChronoUnit.MILLIS);
710+
Duration timeout =
711+
Duration.of(Config.get().getDynamicInstrumentationCaptureTimeout(), ChronoUnit.MILLIS);
711712
lineContext.freeze(new TimeoutChecker(timeout));
712713
snapshot.addLine(lineContext, line);
713714
}

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/DebuggerSink.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public DebuggerSink(
6262
this.probeStatusSink = probeStatusSink;
6363
this.snapshotSink = snapshotSink;
6464
this.symbolSink = symbolSink;
65-
this.uploadFlushInterval = config.getDebuggerUploadFlushInterval();
65+
this.uploadFlushInterval = config.getDynamicInstrumentationUploadFlushInterval();
6666
}
6767

6868
public void start() {

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/ProbeStatusSink.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@ public ProbeStatusSink(Config config, String diagnosticsEndpoint, boolean useMul
5555
this.diagnosticUploader = diagnosticUploader;
5656
this.useMultiPart = useMultiPart;
5757
this.messageBuilder = new Builder(config);
58-
this.interval = Duration.ofSeconds(config.getDebuggerDiagnosticsInterval());
59-
this.batchSize = config.getDebuggerUploadBatchSize();
58+
this.interval = Duration.ofSeconds(config.getDynamicInstrumentationDiagnosticsInterval());
59+
this.batchSize = config.getDynamicInstrumentationUploadBatchSize();
6060
this.queue = new ArrayBlockingQueue<>(2 * this.batchSize);
61-
this.isInstrumentTheWorld = config.isDebuggerInstrumentTheWorld();
61+
this.isInstrumentTheWorld = config.isDynamicInstrumentationInstrumentTheWorld();
6262
}
6363

6464
public void stop() {

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/SnapshotSink.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public class SnapshotSink {
4848

4949
public SnapshotSink(Config config, String tags, BatchUploader snapshotUploader) {
5050
this.serviceName = TagsHelper.sanitize(config.getServiceName());
51-
this.batchSize = config.getDebuggerUploadBatchSize();
51+
this.batchSize = config.getDynamicInstrumentationUploadBatchSize();
5252
this.tags = tags;
5353
this.snapshotUploader = snapshotUploader;
5454
}

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/uploader/BatchUploader.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public BatchUploader(Config config, String endpoint, RetryPolicy retryPolicy) {
128128
RetryPolicy retryPolicy,
129129
String containerId,
130130
String entityId) {
131-
instrumentTheWorld = config.isDebuggerInstrumentTheWorld();
131+
instrumentTheWorld = config.isDynamicInstrumentationInstrumentTheWorld();
132132
if (endpoint == null || endpoint.length() == 0) {
133133
throw new IllegalArgumentException("Endpoint url is empty");
134134
}
@@ -148,7 +148,7 @@ public BatchUploader(Config config, String endpoint, RetryPolicy retryPolicy) {
148148
this.retryPolicy = retryPolicy;
149149
this.containerId = containerId;
150150
this.entityId = entityId;
151-
Duration requestTimeout = Duration.ofSeconds(config.getDebuggerUploadTimeout());
151+
Duration requestTimeout = Duration.ofSeconds(config.getDynamicInstrumentationUploadTimeout());
152152
client =
153153
OkHttpUtils.buildHttpClient(
154154
config,

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/util/DebuggerMetrics.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class DebuggerMetrics implements StatsDClient {
1414
private final StatsDClient statsd;
1515

1616
private DebuggerMetrics(Config config) {
17-
if (config.isDebuggerMetricsEnabled()) {
17+
if (config.isDynamicInstrumentationMetricsEnabled()) {
1818

1919
statsd =
2020
DDAgentStatsDClientManager.statsDClientManager()

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/util/ValueScriptHelper.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
public class ValueScriptHelper {
1212
public static void serializeValue(
1313
StringBuilder sb, String expr, Object value, CapturedContext.Status status, Limits limits) {
14-
Duration timeout = Duration.of(Config.get().getDebuggerCaptureTimeout(), ChronoUnit.MILLIS);
14+
Duration timeout =
15+
Duration.of(Config.get().getDynamicInstrumentationCaptureTimeout(), ChronoUnit.MILLIS);
1516
TimeoutChecker timeoutChecker = new TimeoutChecker(timeout);
1617
SerializerWithLimits serializer =
1718
new SerializerWithLimits(new StringTokenWriter(sb, status.getErrors()), timeoutChecker);

0 commit comments

Comments
 (0)