...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package testutil
16
17 import (
18 "context"
19
20 "go.opentelemetry.io/otel"
21 sdktrace "go.opentelemetry.io/otel/sdk/trace"
22 "go.opentelemetry.io/otel/sdk/trace/tracetest"
23 )
24
25
26
27 type OpenTelemetryTestExporter struct {
28 exporter *tracetest.InMemoryExporter
29 tp *sdktrace.TracerProvider
30 }
31
32
33
34 func NewOpenTelemetryTestExporter() *OpenTelemetryTestExporter {
35 exporter := tracetest.NewInMemoryExporter()
36 tp := sdktrace.NewTracerProvider(
37 sdktrace.WithSyncer(exporter),
38 sdktrace.WithSampler(sdktrace.AlwaysSample()),
39 )
40 otel.SetTracerProvider(tp)
41 return &OpenTelemetryTestExporter{
42 exporter: exporter,
43 tp: tp,
44 }
45 }
46
47
48 func (te *OpenTelemetryTestExporter) Spans() tracetest.SpanStubs {
49 return te.exporter.GetSpans()
50 }
51
52
53 func (te *OpenTelemetryTestExporter) Unregister(ctx context.Context) {
54 te.tp.Shutdown(ctx)
55 }
56
View as plain text