Skip to content

Commit 55b917b

Browse files
committed
Gate Spark Plan parsing with flag
1 parent 8bf8488 commit 55b917b

File tree

7 files changed

+19
-2
lines changed

7 files changed

+19
-2
lines changed

dd-java-agent/instrumentation/spark/spark_2.12/src/main/java/datadog/trace/instrumentation/spark/Spark212Instrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public static class SparkPlanInfoAdvice {
109109
public static void exit(
110110
@Advice.Return(readOnly = false) SparkPlanInfo planInfo,
111111
@Advice.Argument(0) SparkPlan plan) {
112-
if (planInfo.metadata().size() == 0) {
112+
if (planInfo.metadata().size() == 0 && Config.get().isDataJobsParseSparkPlanEnabled()) {
113113
Spark212PlanSerializer planUtils = new Spark212PlanSerializer();
114114
HashMap<String, String> args = new HashMap<>();
115115
planInfo =

dd-java-agent/instrumentation/spark/spark_2.13/src/main/java/datadog/trace/instrumentation/spark/Spark213Instrumentation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public static class SparkPlanInfoAdvice {
110110
public static void exit(
111111
@Advice.Return(readOnly = false) SparkPlanInfo planInfo,
112112
@Advice.Argument(0) SparkPlan plan) {
113-
if (planInfo.metadata().size() == 0) {
113+
if (planInfo.metadata().size() == 0 && Config.get().isDataJobsParseSparkPlanEnabled()) {
114114
Spark213PlanSerializer planUtils = new Spark213PlanSerializer();
115115
planInfo =
116116
new SparkPlanInfo(

dd-java-agent/instrumentation/spark/src/testFixtures/groovy/datadog/trace/instrumentation/spark/AbstractSpark24SqlTest.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ abstract class AbstractSpark24SqlTest extends InstrumentationSpecification {
1616
super.configurePreAgent()
1717
injectSysConfig("dd.integration.spark.enabled", "true")
1818
injectSysConfig("dd.integration.openlineage-spark.enabled", "true")
19+
injectSysConfig("dd.data.jobs.parse_spark_plan.enabled", "true")
1920
}
2021

2122
static Dataset<Row> generateSampleDataframe(SparkSession spark) {

dd-java-agent/instrumentation/spark/src/testFixtures/groovy/datadog/trace/instrumentation/spark/AbstractSpark32SqlTest.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ abstract class AbstractSpark32SqlTest extends InstrumentationSpecification {
1111
super.configurePreAgent()
1212
injectSysConfig("dd.integration.spark.enabled", "true")
1313
injectSysConfig("dd.integration.spark-openlineage.enabled", "true")
14+
injectSysConfig("dd.data.jobs.parse_spark_plan.enabled", "true")
1415
}
1516

1617
def "compute a GROUP BY sql query plan"() {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ public final class ConfigDefaults {
231231
static final boolean DEFAULT_DATA_JOBS_ENABLED = false;
232232
static final boolean DEFAULT_DATA_JOBS_OPENLINEAGE_ENABLED = false;
233233
static final boolean DEFAULT_DATA_JOBS_OPENLINEAGE_TIMEOUT_ENABLED = true;
234+
static final boolean DEFAULT_DATA_JOBS_PARSE_SPARK_PLAN_ENABLED = false;
234235

235236
static final boolean DEFAULT_DATA_STREAMS_ENABLED = false;
236237
static final int DEFAULT_DATA_STREAMS_BUCKET_DURATION = 10; // seconds

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
@@ -80,6 +80,8 @@ public final class GeneralConfig {
8080
public static final String DATA_JOBS_OPENLINEAGE_ENABLED = "data.jobs.openlineage.enabled";
8181
public static final String DATA_JOBS_OPENLINEAGE_TIMEOUT_ENABLED =
8282
"data.jobs.openlineage.timeout.enabled";
83+
public static final String DATA_JOBS_PARSE_SPARK_PLAN_ENABLED =
84+
"data.jobs.parse_spark_plan.enabled";
8385

8486
public static final String DATA_STREAMS_ENABLED = "data.streams.enabled";
8587
public static final String DATA_STREAMS_BUCKET_DURATION_SECONDS =

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_JOBS_ENABLED;
5151
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_JOBS_OPENLINEAGE_ENABLED;
5252
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_JOBS_OPENLINEAGE_TIMEOUT_ENABLED;
53+
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_JOBS_PARSE_SPARK_PLAN_ENABLED;
5354
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_STREAMS_BUCKET_DURATION;
5455
import static datadog.trace.api.ConfigDefaults.DEFAULT_DATA_STREAMS_ENABLED;
5556
import static datadog.trace.api.ConfigDefaults.DEFAULT_DB_CLIENT_HOST_SPLIT_BY_HOST;
@@ -344,6 +345,7 @@
344345
import static datadog.trace.api.config.GeneralConfig.DATA_JOBS_ENABLED;
345346
import static datadog.trace.api.config.GeneralConfig.DATA_JOBS_OPENLINEAGE_ENABLED;
346347
import static datadog.trace.api.config.GeneralConfig.DATA_JOBS_OPENLINEAGE_TIMEOUT_ENABLED;
348+
import static datadog.trace.api.config.GeneralConfig.DATA_JOBS_PARSE_SPARK_PLAN_ENABLED;
347349
import static datadog.trace.api.config.GeneralConfig.DATA_STREAMS_BUCKET_DURATION_SECONDS;
348350
import static datadog.trace.api.config.GeneralConfig.DATA_STREAMS_ENABLED;
349351
import static datadog.trace.api.config.GeneralConfig.DOGSTATSD_ARGS;
@@ -1189,6 +1191,7 @@ public static String getHostName() {
11891191
private final boolean dataJobsEnabled;
11901192
private final boolean dataJobsOpenLineageEnabled;
11911193
private final boolean dataJobsOpenLineageTimeoutEnabled;
1194+
private final boolean dataJobsParseSparkPlanEnabled;
11921195

11931196
private final boolean dataStreamsEnabled;
11941197
private final float dataStreamsBucketDurationSeconds;
@@ -2627,6 +2630,9 @@ PROFILING_DATADOG_PROFILER_ENABLED, isDatadogProfilerSafeInCurrentEnvironment())
26272630
dataJobsOpenLineageTimeoutEnabled =
26282631
configProvider.getBoolean(
26292632
DATA_JOBS_OPENLINEAGE_TIMEOUT_ENABLED, DEFAULT_DATA_JOBS_OPENLINEAGE_TIMEOUT_ENABLED);
2633+
dataJobsParseSparkPlanEnabled =
2634+
configProvider.getBoolean(
2635+
DATA_JOBS_PARSE_SPARK_PLAN_ENABLED, DEFAULT_DATA_JOBS_PARSE_SPARK_PLAN_ENABLED);
26302636

26312637
dataStreamsEnabled =
26322638
configProvider.getBoolean(DATA_STREAMS_ENABLED, DEFAULT_DATA_STREAMS_ENABLED);
@@ -4556,6 +4562,10 @@ public boolean isDataJobsOpenLineageTimeoutEnabled() {
45564562
return dataJobsOpenLineageTimeoutEnabled;
45574563
}
45584564

4565+
public boolean isDataJobsParseSparkPlanEnabled() {
4566+
return dataJobsParseSparkPlanEnabled;
4567+
}
4568+
45594569
public boolean isApmTracingEnabled() {
45604570
return apmTracingEnabled;
45614571
}
@@ -5898,6 +5908,8 @@ public String toString() {
58985908
+ dataJobsOpenLineageEnabled
58995909
+ ", dataJobsOpenLineageTimeoutEnabled="
59005910
+ dataJobsOpenLineageTimeoutEnabled
5911+
+ ", dataJobsParseSparkPlanEnabled="
5912+
+ dataJobsParseSparkPlanEnabled
59015913
+ ", apmTracingEnabled="
59025914
+ apmTracingEnabled
59035915
+ ", jdkSocketEnabled="

0 commit comments

Comments
 (0)