Skip to content
This repository was archived by the owner on Mar 23, 2026. It is now read-only.

Commit 23f0fc0

Browse files
committed
feat(bigquery): Add custom console exporter to samples
1 parent 1a5cee1 commit 23f0fc0

2 files changed

Lines changed: 80 additions & 14 deletions

File tree

samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingIT.java

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
import io.opentelemetry.sdk.OpenTelemetrySdk;
2626
import io.opentelemetry.sdk.trace.SdkTracerProvider;
2727
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
28+
import io.opentelemetry.sdk.trace.export.SpanExporter;
29+
import io.opentelemetry.sdk.trace.data.SpanData;
30+
import io.opentelemetry.sdk.common.CompletableResultCode;
31+
import java.util.Collection;
2832
import io.opentelemetry.sdk.trace.samplers.Sampler;
2933
import java.io.ByteArrayOutputStream;
3034
import java.io.PrintStream;
@@ -34,28 +38,59 @@
3438
import org.junit.After;
3539
import org.junit.Before;
3640
import org.junit.Test;
41+
import java.util.logging.SimpleFormatter;
42+
import java.util.logging.StreamHandler;
3743

3844
public class EnableOpenTelemetryTracingIT {
3945
private final Logger log = Logger.getLogger(this.getClass().getName());
4046
private ByteArrayOutputStream bout;
4147
private PrintStream out;
4248
private PrintStream originalPrintStream;
4349

50+
private static class ConsoleSpanExporter implements io.opentelemetry.sdk.trace.export.SpanExporter {
51+
@Override
52+
public CompletableResultCode export(Collection<SpanData> collection) {
53+
if (collection.isEmpty()) {
54+
return CompletableResultCode.ofFailure();
55+
}
56+
for (SpanData data : collection) {
57+
System.out.println(data);
58+
}
59+
return CompletableResultCode.ofSuccess();
60+
}
61+
62+
@Override
63+
public CompletableResultCode flush() {
64+
return CompletableResultCode.ofSuccess();
65+
}
66+
67+
@Override
68+
public CompletableResultCode shutdown() {
69+
return CompletableResultCode.ofSuccess();
70+
}
71+
}
72+
4473
@Before
4574
public void setUp() {
4675
bout = new ByteArrayOutputStream();
4776
out = new PrintStream(bout);
48-
originalPrintStream = System.err;
49-
System.setErr(out);
50-
ConsoleHandler ch = new ConsoleHandler();
51-
log.addHandler(ch);
77+
//originalPrintStream = System.err;
78+
//System.setErr(out);
79+
//ConsoleHandler ch = new ConsoleHandler();
80+
//log.addHandler(ch);
81+
originalPrintStream = System.out;
82+
System.setOut(out);
83+
//log.setUseParentHandlers(false);
84+
//log.addHandler(new StreamHandler(out, new SimpleFormatter()));
5285
}
5386

5487
@After
5588
public void tearDown() {
5689
// restores print statements in the original method
57-
System.err.flush();
58-
System.setErr(originalPrintStream);
90+
//System.err.flush();
91+
//System.setErr(originalPrintStream);
92+
System.out.flush();
93+
System.setOut(originalPrintStream);
5994
log.log(Level.INFO, "\n" + bout.toString());
6095
}
6196

@@ -66,7 +101,7 @@ public void testEnableOpenTelemetryTracing() {
66101

67102
SdkTracerProvider tracerProvider =
68103
SdkTracerProvider.builder()
69-
.addSpanProcessor(SimpleSpanProcessor.builder(LoggingSpanExporter.create()).build())
104+
.addSpanProcessor(SimpleSpanProcessor.builder(new ConsoleSpanExporter()).build())
70105
.setSampler(Sampler.alwaysOn())
71106
.build();
72107

samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpanIT.java

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
import io.opentelemetry.sdk.trace.SdkTracerProvider;
2727
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
2828
import io.opentelemetry.sdk.trace.samplers.Sampler;
29+
import io.opentelemetry.sdk.trace.export.SpanExporter;
30+
import io.opentelemetry.sdk.trace.data.SpanData;
31+
import io.opentelemetry.sdk.common.CompletableResultCode;
32+
import java.util.Collection;
2933
import java.io.ByteArrayOutputStream;
3034
import java.io.PrintStream;
3135
import java.time.LocalDate;
@@ -42,21 +46,48 @@ public class EnableOpenTelemetryTracingWithParentSpanIT {
4246
private PrintStream out;
4347
private PrintStream originalPrintStream;
4448

49+
private static class ConsoleSpanExporter implements io.opentelemetry.sdk.trace.export.SpanExporter {
50+
@Override
51+
public CompletableResultCode export(Collection<SpanData> collection) {
52+
if (collection.isEmpty()) {
53+
return CompletableResultCode.ofFailure();
54+
}
55+
for (SpanData data : collection) {
56+
System.out.println(data);
57+
}
58+
return CompletableResultCode.ofSuccess();
59+
}
60+
61+
@Override
62+
public CompletableResultCode flush() {
63+
return CompletableResultCode.ofSuccess();
64+
}
65+
66+
@Override
67+
public CompletableResultCode shutdown() {
68+
return CompletableResultCode.ofSuccess();
69+
}
70+
}
71+
4572
@Before
4673
public void setUp() {
4774
bout = new ByteArrayOutputStream();
4875
out = new PrintStream(bout);
49-
originalPrintStream = System.err;
50-
System.setErr(out);
51-
ConsoleHandler ch = new ConsoleHandler();
52-
log.addHandler(ch);
76+
//originalPrintStream = System.err;
77+
//System.setErr(out);
78+
//ConsoleHandler ch = new ConsoleHandler();
79+
//log.addHandler(ch);
80+
originalPrintStream = System.out;
81+
System.setOut(out);
5382
}
5483

5584
@After
5685
public void tearDown() {
5786
// restores print statements in the original method
58-
System.err.flush();
59-
System.setErr(originalPrintStream);
87+
//System.err.flush();
88+
//System.setErr(originalPrintStream);
89+
System.out.flush();
90+
System.setOut(originalPrintStream);
6091
log.log(Level.INFO, "\n" + bout.toString());
6192
}
6293

@@ -69,7 +100,7 @@ public void testEnableOpenTelemetryWithParentSpan() {
69100

70101
SdkTracerProvider tracerProvider =
71102
SdkTracerProvider.builder()
72-
.addSpanProcessor(SimpleSpanProcessor.builder(LoggingSpanExporter.create()).build())
103+
.addSpanProcessor(SimpleSpanProcessor.builder(new ConsoleSpanExporter()).build())
73104
.setSampler(Sampler.alwaysOn())
74105
.build();
75106

0 commit comments

Comments
 (0)