Files
dcbot/tracing/tracer.go
Yi-Ting Shih cb11672817 Refactor: cleanup
- Introduce tracing
- Introduce cobra / viper framework
- Introduce resty client
- Seperate files in api/ and bot/
- Trim unused functions
2025-12-12 23:51:48 +08:00

48 lines
865 B
Go

package tracing
import (
"context"
"github.com/spf13/viper"
"github.com/uptrace/opentelemetry-go-extra/otelzap"
"github.com/uptrace/uptrace-go/uptrace"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"
)
var (
Tracer trace.Tracer
Logger *otelzap.Logger
version string = "v0.0.1"
)
func InitTracer(appname string) {
Tracer = otel.Tracer(appname)
var l *zap.Logger
var err error
if viper.GetBool("zap-production") {
l, err = zap.NewProduction()
} else {
l, err = zap.NewDevelopment()
}
if err != nil {
panic(err)
}
Logger = otelzap.New(l)
}
func InitUptrace(appname string) {
uptrace.ConfigureOpentelemetry(
uptrace.WithDSN(viper.GetString("uptrace-dsn")),
uptrace.WithServiceName(appname),
uptrace.WithServiceVersion(version),
)
}
func DeferUptrace(ctx context.Context) {
uptrace.Shutdown(ctx)
}