43 lines
896 B
Go
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())
|
|
}
|