fa95d733ca
Add short tests and Tidy internal directories * complete the tasks
37 lines
633 B
Go
37 lines
633 B
Go
package otel
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"os"
|
|
|
|
"go.opentelemetry.io/otel"
|
|
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
|
|
sdktrace "go.opentelemetry.io/otel/sdk/trace"
|
|
)
|
|
|
|
func New(ctx context.Context) func() {
|
|
if os.Getenv("ENABLE_OTEL") != "1" {
|
|
log.Println("OpenTelemetry is disabled. Set ENABLE_OTEL to enable.")
|
|
return func() {}
|
|
}
|
|
|
|
exporter, err := otlptracegrpc.New(ctx)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
|
|
tp := sdktrace.NewTracerProvider(
|
|
sdktrace.WithBatcher(exporter),
|
|
)
|
|
|
|
otel.SetTracerProvider(tp)
|
|
|
|
return func() {
|
|
err := tp.Shutdown(ctx)
|
|
if err != nil {
|
|
log.Panic(err)
|
|
}
|
|
}
|
|
}
|