不同服务注册不同组件模块

This commit is contained in:
Cold
2025-12-09 17:55:08 +08:00
committed by 张斌
parent 87b3ac9878
commit 43a8834c5a
7 changed files with 347 additions and 45 deletions

View File

@@ -5,6 +5,7 @@ import (
"encoding/json"
"strconv"
"strings"
"sync"
"github.com/gogf/gf/contrib/trace/otlphttp/v2"
"github.com/gogf/gf/v2/frame/g"
@@ -13,16 +14,38 @@ import (
"go.opentelemetry.io/otel/attribute"
)
var ShutDown func(ctx context.Context)
var (
ShutDown func(ctx context.Context)
initOnce sync.Once
)
// Init 初始化 Jaeger 链路追踪(延迟初始化,首次调用时执行)
func Init() {
initOnce.Do(func() {
ctx := context.Background()
jaegerAgent := g.Cfg().MustGet(ctx, "jaeger.addr").String()
serverName := g.Cfg().MustGet(ctx, "server.name").String()
if jaegerAgent == "" {
g.Log().Warning(ctx, "⚠️ Jaeger 配置未找到,跳过初始化")
ShutDown = func(ctx context.Context) {} // 空函数,避免 nil panic
return
}
shutdown, err := otlphttp.Init(serverName, jaegerAgent, "/v1/traces")
if err != nil {
g.Log().Errorf(ctx, "Jaeger 初始化失败: %v", err)
ShutDown = func(ctx context.Context) {}
return
}
ShutDown = shutdown
g.Log().Infof(ctx, "✅ Jaeger 初始化成功: %s", jaegerAgent)
})
}
func init() {
jaegerAgent := g.Cfg().MustGet(context.Background(), "jaeger.addr").String()
serverName := g.Cfg().MustGet(context.Background(), "server.name").String()
shutdown, err := otlphttp.Init(serverName, jaegerAgent, "/v1/traces")
if err != nil {
panic(err)
}
ShutDown = shutdown
// 默认自动初始化(保持向后兼容)
Init()
}
func NewTracer(r *ghttp.Request) {
_, span := gtrace.NewSpan(r.Context(), r.GetServeHandler().GetMetaTag("summary"))