|
2 | 2 |
|
3 | 3 | import datadog.communication.monitor.Recording; |
4 | 4 | import datadog.trace.api.DDTraceId; |
| 5 | +import datadog.trace.api.flare.TracerFlare; |
| 6 | +import datadog.trace.api.metrics.SpanMetricRegistry; |
5 | 7 | import datadog.trace.api.time.TimeSource; |
6 | 8 | import datadog.trace.bootstrap.instrumentation.api.AgentScope; |
7 | 9 | import datadog.trace.core.CoreTracer.ConfigSnapshot; |
8 | 10 | import datadog.trace.core.monitor.HealthMetrics; |
| 11 | + |
| 12 | +import java.io.IOException; |
9 | 13 | import java.util.ArrayList; |
10 | 14 | import java.util.List; |
11 | 15 | import java.util.concurrent.ConcurrentLinkedDeque; |
12 | 16 | import java.util.concurrent.TimeUnit; |
13 | 17 | import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; |
14 | 18 | import java.util.concurrent.atomic.AtomicLongFieldUpdater; |
15 | 19 | import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; |
| 20 | +import java.util.zip.ZipOutputStream; |
16 | 21 | import javax.annotation.Nonnull; |
17 | 22 | import org.slf4j.Logger; |
18 | 23 | import org.slf4j.LoggerFactory; |
@@ -448,4 +453,10 @@ public static long getDurationNano(CoreSpan<?> span) { |
448 | 453 | PendingTrace trace = (PendingTrace) traceCollector; |
449 | 454 | return trace.getLastWriteTime() - span.getStartTime(); |
450 | 455 | } |
| 456 | + |
| 457 | + public void dumpTrace(ZipOutputStream zip) throws IOException { |
| 458 | + for(DDSpan span : spans){ |
| 459 | + TracerFlare.addText(zip, "trace_dump.txt", span.toString()); |
| 460 | + } |
| 461 | + } |
451 | 462 | } |
0 commit comments