package telemetry
import (
"context"
"time"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
"go.opentelemetry.io/otel/propagation"
"go.opentelemetry.io/otel/sdk/resource"
sdktrace "go.opentelemetry.io/otel/sdk/trace"
semconv "go.opentelemetry.io/otel/semconv/v1.25.0"
"go.opentelemetry.io/otel/trace"
)
func NewOtelProvider (
source string , ctx context .Context ,
) (trace .Tracer , *sdktrace .TracerProvider , error ) {
otel .SetTextMapPropagator (
propagation .NewCompositeTextMapPropagator (
propagation .TraceContext {},
propagation .Baggage {},
))
exporter , err := otlptrace .New (ctx ,
otlptracegrpc .NewClient (
otlptracegrpc .WithInsecure (),
),
)
if err != nil {
return nil , nil , err
}
serviceName := source
tp := sdktrace .NewTracerProvider (
sdktrace .WithBatcher (exporter ,
sdktrace .WithMaxExportBatchSize (50 ),
sdktrace .WithBatchTimeout (100 *time .Millisecond ),
),
sdktrace .WithResource (resource .NewWithAttributes (
semconv .SchemaURL ,
semconv .ServiceNameKey .String (serviceName ),
)),
)
otel .SetTracerProvider (tp )
otel .SetTextMapPropagator (propagation .TraceContext {})
return otel .Tracer (source ), tp , nil
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .