in pkg/otel_setup.go [98:125]
func newSpanProcessor(ctx context.Context) trace.SpanProcessor {
if testaccess.IsInTest() {
traceExporter := testaccess.GetSpanExporter()
// in test, we just send the span immediately
simpleProcessor := trace.NewSimpleSpanProcessor(traceExporter)
return simpleProcessor
} else {
var err error
if os.Getenv(trace_exporter) == "none" {
spanExporter = tracetest.NewNoopExporter()
} else if os.Getenv(trace_exporter) == "console" {
spanExporter, err = stdouttrace.New()
} else if os.Getenv(trace_exporter) == "zipkin" {
spanExporter, err = zipkin.New("")
} else {
if os.Getenv(report_protocol) == "grpc" || os.Getenv(trace_report_protocol) == "grpc" {
spanExporter, err = otlptrace.New(ctx, otlptracegrpc.NewClient())
} else {
spanExporter, err = otlptrace.New(ctx, otlptracehttp.NewClient())
}
}
if err != nil {
log.Fatalf("%s: %v", "Failed to create the OpenTelemetry trace exporter", err)
}
batchSpanProcessor = trace.NewBatchSpanProcessor(spanExporter)
return batchSpanProcessor
}
}