Skip to content

Commit 2267ce3

Browse files
Add single parameter dd.data.jobs.enabled to enable DJM (#6972)
Add single parameter dd.data.jobs.enabled=true to enable data jobs monitoring. This parameter will change the default to have: - dd.trace.experimental.long-running.enabled=true - dd.integration.spark.enabled=true - dd.integration.spark-executor.enabled=true Only the default are changed, those parameters can still be changed by explicitly providing them
1 parent 1e473e3 commit 2267ce3

5 files changed

Lines changed: 27 additions & 9 deletions

File tree

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

Lines changed: 14 additions & 1 deletion
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(propertyNameToSystemPropertyName(DebuggerConfig.DEBUGGER_ENABLED), false),
104+
DATA_JOBS(propertyNameToSystemPropertyName(GeneralConfig.DATA_JOBS_ENABLED), false);
104105

105106
private final String systemProp;
106107
private final boolean enabledByDefault;
@@ -197,6 +198,18 @@ public static void start(final Instrumentation inst, final URL agentJarURL, Stri
197198
}
198199
}
199200

201+
boolean dataJobsEnabled = isFeatureEnabled(AgentFeature.DATA_JOBS);
202+
if (dataJobsEnabled) {
203+
log.info("Data Jobs Monitoring enabled, enabling spark integrations");
204+
205+
setSystemPropertyDefault(
206+
propertyNameToSystemPropertyName(TracerConfig.TRACE_LONG_RUNNING_ENABLED), "true");
207+
setSystemPropertyDefault(
208+
propertyNameToSystemPropertyName("integration.spark.enabled"), "true");
209+
setSystemPropertyDefault(
210+
propertyNameToSystemPropertyName("integration.spark-executor.enabled"), "true");
211+
}
212+
200213
if (!isSupportedAppSecArch()) {
201214
log.debug(
202215
"OS and architecture ({}/{}) not supported by AppSec, dd.appsec.enabled will default to false",

dd-trace-api/src/main/java/datadog/trace/api/ConfigDefaults.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,8 @@ public final class ConfigDefaults {
189189
static final boolean DEFAULT_CWS_ENABLED = false;
190190
static final int DEFAULT_CWS_TLS_REFRESH = 5000;
191191

192+
static final boolean DEFAULT_DATA_JOBS_ENABLED = false;
193+
192194
static final boolean DEFAULT_DATA_STREAMS_ENABLED = false;
193195
static final int DEFAULT_DATA_STREAMS_BUCKET_DURATION = 10; // seconds
194196

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ public final class GeneralConfig {
6666
public static final String AZURE_APP_SERVICES = "azure.app.services";
6767
public static final String INTERNAL_EXIT_ON_FAILURE = "trace.internal.exit.on.failure";
6868

69+
public static final String DATA_JOBS_ENABLED = "data.jobs.enabled";
70+
6971
public static final String DATA_STREAMS_ENABLED = "data.streams.enabled";
7072
public static final String DATA_STREAMS_BUCKET_DURATION_SECONDS =
7173
"data.streams.bucket_duration.seconds";

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import static datadog.trace.api.ConfigDefaults.DEFAULT_COUCHBASE_INTERNAL_SPANS_ENABLED;
3434
import static datadog.trace.api.ConfigDefaults.DEFAULT_CWS_ENABLED;
3535
import static datadog.trace.api.ConfigDefaults.DEFAULT_CWS_TLS_REFRESH;
36+
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_JOBS_ENABLED;
3637
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_STREAMS_BUCKET_DURATION;
3738
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_STREAMS_ENABLED;
3839
import static datadog.trace.api.ConfigDefaults.DEFAULT_DB_CLIENT_HOST_SPLIT_BY_HOST;
@@ -233,6 +234,7 @@
233234
import static datadog.trace.api.config.GeneralConfig.APPLICATION_KEY;
234235
import static datadog.trace.api.config.GeneralConfig.APPLICATION_KEY_FILE;
235236
import static datadog.trace.api.config.GeneralConfig.AZURE_APP_SERVICES;
237+
import static datadog.trace.api.config.GeneralConfig.DATA_JOBS_ENABLED;
236238
import static datadog.trace.api.config.GeneralConfig.DATA_STREAMS_BUCKET_DURATION_SECONDS;
237239
import static datadog.trace.api.config.GeneralConfig.DATA_STREAMS_ENABLED;
238240
import static datadog.trace.api.config.GeneralConfig.DOGSTATSD_ARGS;
@@ -900,6 +902,8 @@ static class HostNameHolder {
900902
private final boolean cwsEnabled;
901903
private final int cwsTlsRefresh;
902904

905+
private final boolean dataJobsEnabled;
906+
903907
private final boolean dataStreamsEnabled;
904908
private final float dataStreamsBucketDurationSeconds;
905909

@@ -1975,6 +1979,8 @@ PROFILING_DATADOG_PROFILER_ENABLED, isDatadogProfilerSafeInCurrentEnvironment())
19751979
cwsEnabled = configProvider.getBoolean(CWS_ENABLED, DEFAULT_CWS_ENABLED);
19761980
cwsTlsRefresh = configProvider.getInteger(CWS_TLS_REFRESH, DEFAULT_CWS_TLS_REFRESH);
19771981

1982+
dataJobsEnabled = configProvider.getBoolean(DATA_JOBS_ENABLED, DEFAULT_DATA_JOBS_ENABLED);
1983+
19781984
dataStreamsEnabled =
19791985
configProvider.getBoolean(DATA_STREAMS_ENABLED, DEFAULT_DATA_STREAMS_ENABLED);
19801986
dataStreamsBucketDurationSeconds =
@@ -3456,7 +3462,7 @@ public boolean isAxisPromoteResourceName() {
34563462
}
34573463

34583464
public boolean isDataJobsEnabled() {
3459-
return instrumenterConfig.isDataJobsEnabled();
3465+
return dataJobsEnabled;
34603466
}
34613467

34623468
/** @return A map of tags to be applied only to the local application root span. */
@@ -4572,6 +4578,8 @@ public String toString() {
45724578
+ telemetryMetricsEnabled
45734579
+ ", appSecScaEnabled="
45744580
+ appSecScaEnabled
4581+
+ ", dataJobsEnabled="
4582+
+ dataJobsEnabled
45754583
+ '}';
45764584
}
45774585
}

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

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@
6969
import java.lang.reflect.Method;
7070
import java.util.Arrays;
7171
import java.util.Collection;
72-
import java.util.Collections;
7372
import java.util.List;
7473
import java.util.Map;
7574
import java.util.Set;
@@ -271,12 +270,6 @@ public boolean isIntegrationShortcutMatchingEnabled(
271270
integrationNames, "integration.", ".matching.shortcut.enabled", defaultEnabled);
272271
}
273272

274-
public boolean isDataJobsEnabled() {
275-
// there's no dedicated flag to enabled DJM, it's enough to just enable
276-
// spark instrumentation
277-
return isIntegrationEnabled(Collections.singletonList("spark"), false);
278-
}
279-
280273
public boolean isTraceEnabled() {
281274
return traceEnabled;
282275
}

0 commit comments

Comments
 (0)