Files
inp2025/tracing/tracer.go
2025-10-10 00:29:19 +08:00

43 lines
896 B
Go

package tracing
import (
"context"
"github.com/spf13/viper"
"go.opentelemetry.io/contrib/bridges/otelzap"
"go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc"
"go.opentelemetry.io/otel/sdk/log"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"
)
var (
Provider *log.LoggerProvider
Tracer trace.Tracer
Logger *zap.Logger
version string = "0.0.1-alpha"
)
func InitTracer(appname string) {
ctx := context.Background()
exp, err := otlploggrpc.New(ctx,
otlploggrpc.WithInsecure(),
otlploggrpc.WithEndpoint(viper.GetString("otel-endpoint")))
if err != nil {
panic(err)
}
Provider = log.NewLoggerProvider(
log.WithProcessor(log.NewBatchProcessor(exp)))
otelCore := otelzap.NewCore(appname,
otelzap.WithLoggerProvider(Provider))
Logger = zap.New(otelCore, zap.AddCaller())
}
func DeferTracer() {
Logger.Sync()
Provider.Shutdown(context.Background())
}