Refactor: cleanup

- Introduce tracing
- Introduce cobra / viper framework
- Introduce resty client
- Seperate files in api/ and bot/
- Trim unused functions
This commit is contained in:
2025-12-12 23:51:48 +08:00
parent 344176063b
commit cb11672817
15 changed files with 575 additions and 466 deletions

47
tracing/tracer.go Normal file
View File

@@ -0,0 +1,47 @@
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)
}