Live video on the AT Protocol
at eli/rtmp-rec 38 lines 921 B view raw
1package cmd 2 3import ( 4 "context" 5 "time" 6 7 "go.opentelemetry.io/otel" 8 "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" 9 "go.opentelemetry.io/otel/sdk/trace" 10) 11 12// setupOTelSDK bootstraps the OpenTelemetry pipeline. 13// If it does not return an error, make sure to call shutdown for proper cleanup. 14func startTelemetry(ctx context.Context, endpoint string) error { 15 tracerProvider, err := newTracerProvider(ctx, endpoint) 16 if err != nil { 17 return err 18 } 19 20 otel.SetTracerProvider(tracerProvider) 21 22 <-ctx.Done() 23 24 return tracerProvider.Shutdown(ctx) 25} 26 27func newTracerProvider(ctx context.Context, endpoint string) (*trace.TracerProvider, error) { 28 exp, err := otlptracegrpc.New(ctx, otlptracegrpc.WithEndpointURL(endpoint)) 29 if err != nil { 30 return nil, err 31 } 32 33 tracerProvider := trace.NewTracerProvider( 34 trace.WithBatcher(exp, 35 trace.WithBatchTimeout(time.Second)), 36 ) 37 return tracerProvider, nil 38}