Skip to content

Commit b449d63

Browse files
authored
Add triage flag to static and dynamic config (DataDog#6262)
1 parent 8a90b31 commit b449d63

8 files changed

Lines changed: 42 additions & 0 deletions

File tree

dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/AgentTestRunner.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,11 @@ abstract class AgentTestRunner extends DDSpecification implements AgentBuilder.L
184184
return true
185185
}
186186

187+
@Override
188+
boolean isTriageEnabled() {
189+
return true
190+
}
191+
187192
@Override
188193
boolean isRuntimeMetricsEnabled() {
189194
return true

dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public final class GeneralConfig {
2929
public static final String GLOBAL_TAGS = "trace.global.tags";
3030

3131
public static final String TRACE_DEBUG = "trace.debug";
32+
public static final String TRACE_TRIAGE = "trace.triage";
3233

3334
public static final String STARTUP_LOGS_ENABLED = "trace.startup.logs";
3435

dd-trace-core/src/main/java/datadog/trace/core/CoreTracer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,7 @@ private CoreTracer(
519519
this.dynamicConfig =
520520
DynamicConfig.create(ConfigSnapshot::new)
521521
.setDebugEnabled(config.isDebugEnabled())
522+
.setTriageEnabled(config.isTriageEnabled())
522523
.setRuntimeMetricsEnabled(config.isRuntimeMetricsEnabled())
523524
.setLogsInjectionEnabled(config.isLogsInjectionEnabled())
524525
.setDataStreamsEnabled(config.isDataStreamsEnabled())
@@ -698,6 +699,7 @@ public void rebuildTraceConfig(Config config) {
698699
dynamicConfig
699700
.initial()
700701
.setDebugEnabled(config.isDebugEnabled())
702+
.setTriageEnabled(config.isTriageEnabled())
701703
.setRuntimeMetricsEnabled(config.isRuntimeMetricsEnabled())
702704
.setLogsInjectionEnabled(config.isLogsInjectionEnabled())
703705
.setDataStreamsEnabled(config.isDataStreamsEnabled())

dd-trace-core/src/main/java/datadog/trace/core/TracingConfigPoller.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,10 @@ void applyConfigOverrides(LibConfig libConfig) {
105105
DynamicConfig<?>.Builder builder = dynamicConfig.initial();
106106

107107
maybeOverride(builder::setDebugEnabled, libConfig.debugEnabled);
108+
108109
if (libConfig.debugEnabled != null) {
109110
if (Boolean.TRUE.equals(libConfig.debugEnabled)) {
111+
builder.setTriageEnabled(true); // debug implies triage
110112
GlobalLogLevelSwitcher.get().switchLevel(LogLevel.DEBUG);
111113
} else {
112114
// Disable debugEnabled when it was set to true at startup

internal-api/src/main/java/datadog/trace/api/Config.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@
241241
import static datadog.trace.api.config.GeneralConfig.TRACER_METRICS_MAX_AGGREGATES;
242242
import static datadog.trace.api.config.GeneralConfig.TRACER_METRICS_MAX_PENDING;
243243
import static datadog.trace.api.config.GeneralConfig.TRACE_DEBUG;
244+
import static datadog.trace.api.config.GeneralConfig.TRACE_TRIAGE;
244245
import static datadog.trace.api.config.GeneralConfig.VERSION;
245246
import static datadog.trace.api.config.IastConfig.IAST_DEBUG_ENABLED;
246247
import static datadog.trace.api.config.IastConfig.IAST_DETECTION_MODE;
@@ -806,6 +807,7 @@ static class HostNameHolder {
806807
private final boolean traceAgentV05Enabled;
807808

808809
private final boolean debugEnabled;
810+
private final boolean triageEnabled;
809811
private final boolean startupLogsEnabled;
810812
private final String configFileStatus;
811813

@@ -1820,6 +1822,7 @@ private Config(final ConfigProvider configProvider, final InstrumenterConfig ins
18201822
servletAsyncTimeoutError = configProvider.getBoolean(SERVLET_ASYNC_TIMEOUT_ERROR, true);
18211823

18221824
debugEnabled = configProvider.getBoolean(TRACE_DEBUG, false);
1825+
triageEnabled = configProvider.getBoolean(TRACE_TRIAGE, debugEnabled); // debug implies triage
18231826

18241827
startupLogsEnabled =
18251828
configProvider.getBoolean(STARTUP_LOGS_ENABLED, DEFAULT_STARTUP_LOGS_ENABLED);
@@ -3037,6 +3040,10 @@ public boolean isDebugEnabled() {
30373040
return debugEnabled;
30383041
}
30393042

3043+
public boolean isTriageEnabled() {
3044+
return triageEnabled;
3045+
}
3046+
30403047
public boolean isStartupLogsEnabled() {
30413048
return startupLogsEnabled;
30423049
}
@@ -4103,6 +4110,8 @@ public String toString() {
41034110
+ traceAgentV05Enabled
41044111
+ ", debugEnabled="
41054112
+ debugEnabled
4113+
+ ", triageEnabled="
4114+
+ triageEnabled
41064115
+ ", startLogsEnabled="
41074116
+ startupLogsEnabled
41084117
+ ", configFile='"

internal-api/src/main/java/datadog/trace/api/DynamicConfig.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static datadog.trace.api.config.GeneralConfig.DATA_STREAMS_ENABLED;
44
import static datadog.trace.api.config.GeneralConfig.RUNTIME_METRICS_ENABLED;
55
import static datadog.trace.api.config.GeneralConfig.TRACE_DEBUG;
6+
import static datadog.trace.api.config.GeneralConfig.TRACE_TRIAGE;
67
import static datadog.trace.api.config.TraceInstrumentationConfig.LOGS_INJECTION_ENABLED;
78
import static datadog.trace.api.config.TracerConfig.BAGGAGE_MAPPING;
89
import static datadog.trace.api.config.TracerConfig.REQUEST_HEADER_TAGS;
@@ -83,6 +84,7 @@ public void resetTraceConfig() {
8384
public final class Builder {
8485

8586
boolean debugEnabled;
87+
boolean triageEnabled;
8688
boolean runtimeMetricsEnabled;
8789
boolean logsInjectionEnabled;
8890
boolean dataStreamsEnabled;
@@ -99,6 +101,7 @@ public final class Builder {
99101
Builder(Snapshot snapshot) {
100102

101103
this.debugEnabled = snapshot.debugEnabled;
104+
this.triageEnabled = snapshot.triageEnabled;
102105
this.runtimeMetricsEnabled = snapshot.runtimeMetricsEnabled;
103106
this.logsInjectionEnabled = snapshot.logsInjectionEnabled;
104107
this.dataStreamsEnabled = snapshot.dataStreamsEnabled;
@@ -116,6 +119,11 @@ public Builder setDebugEnabled(boolean debugEnabled) {
116119
return this;
117120
}
118121

122+
public Builder setTriageEnabled(boolean triageEnabled) {
123+
this.triageEnabled = triageEnabled;
124+
return this;
125+
}
126+
119127
public Builder setRuntimeMetricsEnabled(boolean runtimeMetricsEnabled) {
120128
this.runtimeMetricsEnabled = runtimeMetricsEnabled;
121129
return this;
@@ -235,6 +243,7 @@ static void reportConfigChange(Snapshot newSnapshot) {
235243
Map<String, Object> update = new HashMap<>();
236244

237245
update.put(TRACE_DEBUG, newSnapshot.debugEnabled);
246+
update.put(TRACE_TRIAGE, newSnapshot.triageEnabled);
238247
update.put(RUNTIME_METRICS_ENABLED, newSnapshot.runtimeMetricsEnabled);
239248
update.put(LOGS_INJECTION_ENABLED, newSnapshot.logsInjectionEnabled);
240249
update.put(DATA_STREAMS_ENABLED, newSnapshot.dataStreamsEnabled);
@@ -260,6 +269,7 @@ private static void maybePut(Map<String, Object> update, String key, Object valu
260269
public static class Snapshot implements TraceConfig {
261270

262271
final boolean debugEnabled;
272+
final boolean triageEnabled;
263273
final boolean runtimeMetricsEnabled;
264274
final boolean logsInjectionEnabled;
265275
final boolean dataStreamsEnabled;
@@ -274,6 +284,7 @@ public static class Snapshot implements TraceConfig {
274284
protected Snapshot(DynamicConfig<?>.Builder builder, Snapshot oldSnapshot) {
275285

276286
this.debugEnabled = builder.debugEnabled;
287+
this.triageEnabled = builder.triageEnabled;
277288
this.runtimeMetricsEnabled = builder.runtimeMetricsEnabled;
278289
this.logsInjectionEnabled = builder.logsInjectionEnabled;
279290
this.dataStreamsEnabled = builder.dataStreamsEnabled;
@@ -295,6 +306,11 @@ public boolean isDebugEnabled() {
295306
return debugEnabled;
296307
}
297308

309+
@Override
310+
public boolean isTriageEnabled() {
311+
return triageEnabled;
312+
}
313+
298314
@Override
299315
public boolean isRuntimeMetricsEnabled() {
300316
return runtimeMetricsEnabled;

internal-api/src/main/java/datadog/trace/api/TraceConfig.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ public interface TraceConfig {
77

88
boolean isDebugEnabled();
99

10+
boolean isTriageEnabled();
11+
1012
boolean isRuntimeMetricsEnabled();
1113

1214
boolean isLogsInjectionEnabled();

internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1154,6 +1154,11 @@ public boolean isDebugEnabled() {
11541154
return false;
11551155
}
11561156

1157+
@Override
1158+
public boolean isTriageEnabled() {
1159+
return false;
1160+
}
1161+
11571162
@Override
11581163
public boolean isRuntimeMetricsEnabled() {
11591164
return false;

0 commit comments

Comments
 (0)