Skip to content

Commit 7e4b7de

Browse files
committed
Limit external accumulators to 5,000 per stage
1 parent bba18eb commit 7e4b7de

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.io.IOException;
88
import java.nio.ByteBuffer;
99
import java.util.Base64;
10-
import java.util.HashMap;
1110
import java.util.List;
1211
import java.util.Map;
1312
import org.apache.spark.TaskFailedReason;
@@ -19,6 +18,7 @@
1918
class SparkAggregatedTaskMetrics {
2019
private static final double HISTOGRAM_RELATIVE_ACCURACY = 1 / 32.0;
2120
private static final int HISTOGRAM_MAX_NUM_BINS = 512;
21+
private static final int MAX_ACCUMULATOR_SIZE = 5000;
2222
private final boolean isSparkTaskHistogramEnabled = Config.get().isSparkTaskHistogramEnabled();
2323

2424
private long executorDeserializeTime = 0L;
@@ -143,7 +143,7 @@ public void addTaskMetrics(
143143
// only needed for SHS?
144144
if (externalAccumulators != null && !externalAccumulators.isEmpty()) {
145145
if (externalAccumulableHistograms == null) {
146-
externalAccumulableHistograms = new HashMap<>(externalAccumulators.size());
146+
externalAccumulableHistograms = new RemoveEldestHashMap<>(MAX_ACCUMULATOR_SIZE);
147147
}
148148

149149
externalAccumulators.forEach(

0 commit comments

Comments
 (0)