Skip to content

Commit f7b8459

Browse files
committed
Add nodeDetailString field and update tests
1 parent 9c55b36 commit f7b8459

File tree

3 files changed

+1191
-16
lines changed

3 files changed

+1191
-16
lines changed

dd-java-agent/instrumentation/spark/src/main/java/datadog/trace/instrumentation/spark/SparkSQLUtils.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,18 @@
1313
import java.util.List;
1414
import java.util.Map;
1515
import java.util.Set;
16+
import org.apache.commons.lang.StringUtils;
1617
import org.apache.spark.scheduler.AccumulableInfo;
1718
import org.apache.spark.sql.execution.SparkPlanInfo;
1819
import org.apache.spark.sql.execution.metric.SQLMetricInfo;
20+
import org.slf4j.Logger;
21+
import org.slf4j.LoggerFactory;
1922
import scala.Tuple2;
2023
import scala.collection.JavaConverters;
2124

2225
public class SparkSQLUtils {
26+
private static final Logger log = LoggerFactory.getLogger(SparkSQLUtils.class);
27+
2328
public static void addSQLPlanToStageSpan(
2429
AgentSpan span,
2530
SparkPlanInfo plan,
@@ -165,6 +170,15 @@ private void toJson(JsonGenerator generator, Map<Long, AccumulatorWithStage> acc
165170
generator.writeStringField("node", plan.nodeName());
166171
generator.writeNumberField("nodeId", plan.hashCode());
167172

173+
String nodeDetails = plan.simpleString();
174+
if (StringUtils.startsWith(nodeDetails, plan.nodeName())) {
175+
nodeDetails =
176+
StringUtils.right(nodeDetails, nodeDetails.length() - plan.nodeName().length()).trim();
177+
}
178+
if (!nodeDetails.isEmpty()) {
179+
generator.writeStringField("nodeDetailString", nodeDetails);
180+
}
181+
168182
// Metadata is only present for FileSourceScan nodes
169183
if (!plan.metadata().isEmpty()) {
170184
generator.writeFieldName("meta");

0 commit comments

Comments
 (0)