Skip to content

Commit e9eac71

Browse files
committed
making TraceDumpJsonExporter a Writer
1 parent af57f32 commit e9eac71

File tree

3 files changed

+35
-10
lines changed

3 files changed

+35
-10
lines changed

dd-trace-core/src/main/java/datadog/trace/common/writer/TraceDumpJsonExporter.java

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,53 @@
33
import com.squareup.moshi.JsonAdapter;
44
import com.squareup.moshi.Moshi;
55
import com.squareup.moshi.Types;
6+
import datadog.trace.api.flare.TracerFlare;
67
import datadog.trace.core.DDSpan;
8+
import java.io.IOException;
79
import java.util.List;
10+
import java.util.zip.ZipOutputStream;
811

9-
public class TraceDumpJsonExporter {
12+
public class TraceDumpJsonExporter implements Writer {
1013

1114
private StringBuilder dumpText;
15+
private ZipOutputStream zip;
1216
private static final JsonAdapter<List<DDSpan>> TRACE_ADAPTER =
1317
new Moshi.Builder()
1418
.add(DDSpanJsonAdapter.buildFactory(false))
1519
.build()
1620
.adapter(Types.newParameterizedType(List.class, DDSpan.class));
1721

18-
public TraceDumpJsonExporter() {
22+
public TraceDumpJsonExporter(ZipOutputStream zip) {
23+
this.zip = zip;
1924
dumpText = new StringBuilder();
2025
}
2126

22-
public void addTrace(final List<DDSpan> trace) {
27+
@Override
28+
public void write(final List<DDSpan> trace) {
2329
dumpText.append(TRACE_ADAPTER.toJson(trace));
2430
dumpText.append("\n");
2531
}
2632

27-
public String getDumpText() {
28-
return dumpText.toString();
33+
@Override
34+
public void start() {
35+
// do nothing
2936
}
37+
38+
@Override
39+
public boolean flush() {
40+
try {
41+
TracerFlare.addText(zip, "trace_dump.txt", dumpText.toString());
42+
} catch (IOException e) {
43+
// do nothing
44+
}
45+
return true;
46+
}
47+
48+
@Override
49+
public void close() {
50+
// do nothing
51+
}
52+
53+
@Override
54+
public void incrementDropCounts(int spanCount) {}
3055
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import datadog.trace.core.CoreTracer.ConfigSnapshot;
88
import datadog.trace.core.monitor.HealthMetrics;
99
import java.util.ArrayList;
10+
import java.util.Collection;
1011
import java.util.List;
1112
import java.util.concurrent.ConcurrentLinkedDeque;
1213
import java.util.concurrent.TimeUnit;
@@ -449,7 +450,7 @@ public static long getDurationNano(CoreSpan<?> span) {
449450
return trace.getLastWriteTime() - span.getStartTime();
450451
}
451452

452-
Iterable<DDSpan> getSpans() {
453+
Collection<DDSpan> getSpans() {
453454
return spans;
454455
}
455456
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.util.ArrayList;
1616
import java.util.Comparator;
1717
import java.util.List;
18-
import java.util.concurrent.ConcurrentLinkedDeque;
1918
import java.util.concurrent.TimeUnit;
2019
import java.util.concurrent.atomic.AtomicInteger;
2120
import java.util.function.Predicate;
@@ -353,16 +352,16 @@ public void addReportToFlare(ZipOutputStream zip) throws IOException {
353352
// Storing oldest traces first
354353
DelayingPendingTraceBuffer.DumpDrain.DATA.sort((TRACE_BY_START_TIME).reversed());
355354

356-
TraceDumpJsonExporter writer = new TraceDumpJsonExporter();
355+
TraceDumpJsonExporter writer = new TraceDumpJsonExporter(zip);
357356
for (Element e : DelayingPendingTraceBuffer.DumpDrain.DATA) {
358357
if (e instanceof PendingTrace) {
359358
PendingTrace trace = (PendingTrace) e;
360-
writer.addTrace(new ArrayList<>((ConcurrentLinkedDeque<DDSpan>) trace.getSpans()));
359+
writer.write(new ArrayList<>(trace.getSpans()));
361360
}
362361
}
363362
// Releasing memory used for ArrayList in drain
364363
DelayingPendingTraceBuffer.DumpDrain.DATA.clear();
365-
TracerFlare.addText(zip, "trace_dump.txt", writer.getDumpText());
364+
writer.flush();
366365
}
367366
}
368367
}

0 commit comments

Comments
 (0)