From 0e779a1d7ac00f604743e51783136161c6021677 Mon Sep 17 00:00:00 2001 From: askuy Date: Wed, 26 Jun 2024 11:30:37 +0800 Subject: [PATCH 1/3] slow log --- client/egrpc/interceptor.go | 23 +++++++----- client/ehttp/interceptor.go | 24 ++++++++---- server/egin/config.go | 28 ++++++++------ server/egin/interceptor.go | 62 ++++++++++++++++++++----------- server/egrpc/config.go | 72 +++++++++++++++++++----------------- server/egrpc/interceptor.go | 73 +++++++++++++++++++++++++------------ 6 files changed, 173 insertions(+), 109 deletions(-) diff --git a/client/egrpc/interceptor.go b/client/egrpc/interceptor.go index a665f243..6da38f1a 100644 --- a/client/egrpc/interceptor.go +++ b/client/egrpc/interceptor.go @@ -330,9 +330,9 @@ func (c *Container) loggerUnaryClientInterceptor() grpc.UnaryClientInterceptor { cost := time.Since(beg) spbStatus := ecode.Convert(err) httpStatusCode := ecode.GrpcToHTTPStatusCode(spbStatus.Code()) - + event := "normal" fields = append(fields, - elog.FieldType("unary"), + elog.FieldKey("unary"), elog.FieldCode(int32(spbStatus.Code())), elog.FieldUniformCode(int32(httpStatusCode)), elog.FieldDescription(spbStatus.Message()), @@ -347,7 +347,7 @@ func (c *Container) loggerUnaryClientInterceptor() grpc.UnaryClientInterceptor { } if c.config.EnableAccessInterceptorReq { - var reqMap = map[string]interface{}{ + var reqMap = map[string]any{ "payload": xstring.JSON(req), } if md, ok := metadata.FromOutgoingContext(ctx); ok { @@ -358,13 +358,14 @@ func (c *Container) loggerUnaryClientInterceptor() grpc.UnaryClientInterceptor { if c.config.EnableAccessInterceptorRes { fields = append(fields, elog.Any("res", json.RawMessage(xstring.JSON(res)))) } - + isSlowLog := false if c.config.SlowLogThreshold > time.Duration(0) && cost > c.config.SlowLogThreshold { - c.logger.Warn("slow", fields...) + event = "slow" + isSlowLog = true } if err != nil { - fields = append(fields, elog.FieldEvent("error"), elog.FieldErr(err)) + fields = append(fields, elog.FieldEvent(event), elog.FieldErr(err)) // 只记录系统级别错误 if httpStatusCode >= http.StatusInternalServerError { // 只记录系统级别错误 @@ -376,9 +377,13 @@ func (c *Container) loggerUnaryClientInterceptor() grpc.UnaryClientInterceptor { return err } - if c.config.EnableAccessInterceptor { - fields = append(fields, elog.FieldEvent("normal")) - c.logger.Info("access", fields...) + if c.config.EnableAccessInterceptor || isSlowLog { + fields = append(fields, elog.FieldEvent(event)) + if isSlowLog { + c.logger.Warn("access", fields...) + } else { + c.logger.Info("access", fields...) + } } return nil } diff --git a/client/ehttp/interceptor.go b/client/ehttp/interceptor.go index f7b44004..5ece529f 100644 --- a/client/ehttp/interceptor.go +++ b/client/ehttp/interceptor.go @@ -49,7 +49,7 @@ func logAccess(name string, config *Config, logger *elog.Component, req *resty.R loggerKeys := transport.CustomContextKeys() - var fields = make([]elog.Field, 0, 16) + var fields = make([]elog.Field, 0, 16+transport.CustomContextKeysLength()) fields = append(fields, elog.FieldMethod(fullMethod), elog.FieldName(name), @@ -57,6 +57,8 @@ func logAccess(name string, config *Config, logger *elog.Component, req *resty.R elog.FieldAddr(u.Host), ) + event := "normal" + // 支持自定义log for _, key := range loggerKeys { if value := req.Context().Value(key); value != nil { @@ -70,26 +72,28 @@ func logAccess(name string, config *Config, logger *elog.Component, req *resty.R } if config.EnableAccessInterceptor { if config.EnableAccessInterceptorReq { - fields = append(fields, elog.Any("req", map[string]interface{}{ + fields = append(fields, elog.Any("req", map[string]any{ "metadata": req.Header, "payload": req.Body, })) } if config.EnableAccessInterceptorRes { - fields = append(fields, elog.Any("res", map[string]interface{}{ + fields = append(fields, elog.Any("res", map[string]any{ "metadata": res.Header(), "payload": respBody, })) } } + isSlowLog := false if config.SlowLogThreshold > time.Duration(0) && cost > config.SlowLogThreshold { - logger.Warn("slow", fields...) + event = "slow" + isSlowLog = true } if err != nil { - fields = append(fields, elog.FieldEvent("error"), elog.FieldErr(err)) + fields = append(fields, elog.FieldEvent(event), elog.FieldErr(err)) if res == nil { // 无 res 的是连接超时等系统级错误 logger.Error("access", fields...) @@ -99,9 +103,13 @@ func logAccess(name string, config *Config, logger *elog.Component, req *resty.R return } - if config.EnableAccessInterceptor { - fields = append(fields, elog.FieldEvent("normal")) - logger.Info("access", fields...) + if config.EnableAccessInterceptor || isSlowLog { + fields = append(fields, elog.FieldEvent(event)) + if isSlowLog { + logger.Warn("access", fields...) + } else { + logger.Info("access", fields...) + } } } diff --git a/server/egin/config.go b/server/egin/config.go index 7d801ae9..70486455 100644 --- a/server/egin/config.go +++ b/server/egin/config.go @@ -33,7 +33,9 @@ type Config struct { SlowLogThreshold time.Duration // 服务慢日志,默认500ms EnableAccessInterceptor bool // 是否开启,记录请求数据 EnableAccessInterceptorReq bool // 是否开启记录请求参数,默认不开启 + AccessInterceptorReqMaxLength int // 默认4K EnableAccessInterceptorRes bool // 是否开启记录响应参数,默认不开启 + AccessInterceptorResMaxLength int // 默认4K AccessInterceptorReqResFilter string // AccessInterceptorReq 过滤器,只有符合过滤器的请求才会记录 Req 和 Res EnableTrustedCustomHeader bool // 是否开启自定义header头,记录数据往链路后传递,默认不开启 EnableSentinel bool // 是否开启限流,默认不开启 @@ -63,18 +65,20 @@ type Config struct { // DefaultConfig ... func DefaultConfig() *Config { return &Config{ - Host: eflag.String("host"), - Port: 9090, - Mode: gin.ReleaseMode, - Network: "tcp", - EnableAccessInterceptor: true, - EnableTraceInterceptor: true, - EnableMetricInterceptor: true, - EnableSentinel: true, - SlowLogThreshold: xtime.Duration("500ms"), - EnableWebsocketCheckOrigin: false, - TrustedPlatform: "", - recoveryFunc: defaultRecoveryFunc, + Host: eflag.String("host"), + Port: 9090, + Mode: gin.ReleaseMode, + Network: "tcp", + EnableAccessInterceptor: true, + EnableTraceInterceptor: true, + EnableMetricInterceptor: true, + AccessInterceptorReqMaxLength: 4096, + AccessInterceptorResMaxLength: 4096, + EnableSentinel: true, + SlowLogThreshold: xtime.Duration("500ms"), + EnableWebsocketCheckOrigin: false, + TrustedPlatform: "", + recoveryFunc: defaultRecoveryFunc, } } diff --git a/server/egin/interceptor.go b/server/egin/interceptor.go index 8718c8f9..6ad2aea3 100644 --- a/server/egin/interceptor.go +++ b/server/egin/interceptor.go @@ -144,15 +144,14 @@ func (c *Container) defaultServerInterceptor() gin.HandlerFunc { defer func() { cost := time.Since(beg) fields = append(fields, - elog.FieldType("http"), // GET, POST + elog.FieldKey(ctx.Request.Method), // GET, POST elog.FieldCost(cost), elog.FieldMethod(ctx.Request.Method+"."+ctx.FullPath()), elog.FieldAddr(ctx.Request.URL.RequestURI()), elog.FieldIP(ctx.ClientIP()), elog.FieldSize(int32(ctx.Writer.Size())), elog.FieldPeerIP(getPeerIP(ctx.Request.RemoteAddr)), - // elog.FieldCode(int32(ctx.Writer.Status())), - // elog.FieldUniformCode(int32(ctx.Writer.Status())), + elog.FieldPeerName(getPeerName(ctx)), ) for _, key := range loggerKeys { @@ -168,32 +167,43 @@ func (c *Container) defaultServerInterceptor() gin.HandlerFunc { c.config.mu.RLock() if c.config.EnableAccessInterceptorReq || c.config.EnableAccessInterceptorRes { out := c.checkFilter(ctx.Request, rw) + if c.config.EnableAccessInterceptorReq && out { - fields = append(fields, elog.Any("req", map[string]interface{}{ - "metadata": copyHeaders(ctx.Request.Header), - "payload": rb.String(), - })) + if len(rb.String()) > c.config.AccessInterceptorReqMaxLength { + fields = append(fields, elog.Any("req", map[string]interface{}{ + "metadata": copyHeaders(ctx.Request.Header), + "payload": rb.String()[:c.config.AccessInterceptorReqMaxLength] + "...", + })) + } else { + fields = append(fields, elog.Any("req", map[string]interface{}{ + "metadata": copyHeaders(ctx.Request.Header), + "payload": rb.String(), + })) + } } - if c.config.EnableAccessInterceptorRes && out { - fields = append(fields, elog.Any("res", map[string]interface{}{ - "metadata": copyHeaders(ctx.Writer.Header()), - "payload": rw.body.String(), - })) + if len(rw.body.String()) > c.config.AccessInterceptorResMaxLength { + fields = append(fields, elog.Any("res", map[string]interface{}{ + "metadata": copyHeaders(ctx.Request.Header), + "payload": rw.body.String()[:c.config.AccessInterceptorResMaxLength] + "...", + })) + } else { + fields = append(fields, elog.Any("res", map[string]interface{}{ + "metadata": copyHeaders(ctx.Writer.Header()), + "payload": rw.body.String(), + })) + } } } c.config.mu.RUnlock() // slow log + isSlowLog := false if c.config.SlowLogThreshold > time.Duration(0) && c.config.SlowLogThreshold < cost { // 非长连接模式下,记入warn慢日志 if ctx.GetHeader("Accept") != "text/event-stream" { - // 最后添加状态码 - fields = append(fields, - elog.FieldCode(int32(ctx.Writer.Status())), - elog.FieldUniformCode(int32(ctx.Writer.Status())), - ) - c.logger.Warn("slow", fields...) + isSlowLog = true + event = "slow" } } @@ -221,7 +231,6 @@ func (c *Container) defaultServerInterceptor() gin.HandlerFunc { // 上面BrokenPipe使用的是用户ctx.Writer.Status() // 如果不是BrokenPipe,那么会将Writer.Status()设置为500 - event = "recover" stackInfo := stack(3) fields = append(fields, elog.FieldEvent(event), @@ -235,16 +244,20 @@ func (c *Container) defaultServerInterceptor() gin.HandlerFunc { return } // todo 如果不记录日志的时候,应该早点return - if c.config.EnableAccessInterceptor { + if c.config.EnableAccessInterceptor || isSlowLog { fields = append(fields, elog.FieldEvent(event), elog.FieldErrAny(ctx.Errors.ByType(gin.ErrorTypePrivate).String()), elog.FieldCode(int32(ctx.Writer.Status())), elog.FieldUniformCode(int32(ctx.Writer.Status())), ) - c.metricServerInterceptor(ctx, cost) - c.logger.Info("access", fields...) + if isSlowLog { + c.logger.Warn("access", fields...) + } else { + c.logger.Info("access", fields...) + } } + c.metricServerInterceptor(ctx, cost) }() ctx.Next() } @@ -405,6 +418,11 @@ func getPeerIP(addr string) string { return "" } +func getPeerName(c *gin.Context) string { + value := c.GetHeader("app") + return value +} + func getHeaderValue(c *gin.Context, key string, enableTrustedCustomHeader bool) string { if key == "" { return "" diff --git a/server/egrpc/config.go b/server/egrpc/config.go index b52fdf61..aa9d4e56 100644 --- a/server/egrpc/config.go +++ b/server/egrpc/config.go @@ -15,46 +15,50 @@ import ( // Config ... type Config struct { - Host string // IP地址,默认0.0.0.0 - Port int // Port端口,默认9002 - Deployment string // 部署区域 - Network string // 网络类型,默认tcp4 - EnableMetricInterceptor bool // 是否开启监控,默认开启 - EnableTraceInterceptor bool // 是否开启链路追踪,默认开启 - EnableOfficialGrpcLog bool // 是否开启官方grpc日志,默认关闭 - EnableSkipHealthLog bool // 是否屏蔽探活日志,默认开启 - SlowLogThreshold time.Duration // 服务慢日志,默认500ms - EnableAccessInterceptor bool // 是否开启,记录请求数据 - EnableSentinel bool // 是否开启限流,默认不开启 - EnableAccessInterceptorReq bool // 是否开启记录请求参数,默认不开启 - EnableAccessInterceptorRes bool // 是否开启记录响应参数,默认不开启 - EnableLocalMainIP bool // 自动获取ip地址 - serverOptions []grpc.ServerOption - streamInterceptors []grpc.StreamServerInterceptor - unaryInterceptors []grpc.UnaryServerInterceptor - unaryServerResourceExtract func(context.Context, interface{}, *grpc.UnaryServerInfo) string // sentinel 的限流策略 - unaryServerBlockFallback func(context.Context, interface{}, *grpc.UnaryServerInfo, *base.BlockError) (interface{}, error) + Host string // IP地址,默认0.0.0.0 + Port int // Port端口,默认9002 + Deployment string // 部署区域 + Network string // 网络类型,默认tcp4 + EnableMetricInterceptor bool // 是否开启监控,默认开启 + EnableTraceInterceptor bool // 是否开启链路追踪,默认开启 + EnableOfficialGrpcLog bool // 是否开启官方grpc日志,默认关闭 + EnableSkipHealthLog bool // 是否屏蔽探活日志,默认开启 + SlowLogThreshold time.Duration // 服务慢日志,默认500ms + EnableAccessInterceptor bool // 是否开启,记录请求数据 + EnableSentinel bool // 是否开启限流,默认不开启 + EnableAccessInterceptorReq bool // 是否开启记录请求参数,默认不开启 + AccessInterceptorReqMaxLength int // 默认4K + EnableAccessInterceptorRes bool // 是否开启记录响应参数,默认不开启 + AccessInterceptorResMaxLength int // 默认4K + EnableLocalMainIP bool // 自动获取ip地址 + serverOptions []grpc.ServerOption + streamInterceptors []grpc.StreamServerInterceptor + unaryInterceptors []grpc.UnaryServerInterceptor + unaryServerResourceExtract func(context.Context, interface{}, *grpc.UnaryServerInfo) string // sentinel 的限流策略 + unaryServerBlockFallback func(context.Context, interface{}, *grpc.UnaryServerInfo, *base.BlockError) (interface{}, error) } // DefaultConfig represents default config // User should construct config base on DefaultConfig func DefaultConfig() *Config { return &Config{ - Network: "tcp4", - Host: eflag.String("host"), - Port: 9002, - Deployment: "", - EnableMetricInterceptor: true, - EnableSkipHealthLog: true, - EnableTraceInterceptor: true, - EnableSentinel: true, - SlowLogThreshold: xtime.Duration("500ms"), - EnableAccessInterceptor: true, - EnableAccessInterceptorReq: false, - EnableAccessInterceptorRes: false, - serverOptions: []grpc.ServerOption{}, - streamInterceptors: []grpc.StreamServerInterceptor{}, - unaryInterceptors: []grpc.UnaryServerInterceptor{}, + Network: "tcp4", + Host: eflag.String("host"), + Port: 9002, + Deployment: "", + EnableMetricInterceptor: true, + EnableSkipHealthLog: true, + EnableTraceInterceptor: true, + EnableSentinel: true, + SlowLogThreshold: xtime.Duration("500ms"), + EnableAccessInterceptor: true, + EnableAccessInterceptorReq: false, + AccessInterceptorReqMaxLength: 4096, + AccessInterceptorResMaxLength: 4096, + EnableAccessInterceptorRes: false, + serverOptions: []grpc.ServerOption{}, + streamInterceptors: []grpc.StreamServerInterceptor{}, + unaryInterceptors: []grpc.UnaryServerInterceptor{}, } } diff --git a/server/egrpc/interceptor.go b/server/egrpc/interceptor.go index 4856c999..7d81e5db 100644 --- a/server/egrpc/interceptor.go +++ b/server/egrpc/interceptor.go @@ -2,6 +2,7 @@ package egrpc import ( "context" + "encoding/json" "fmt" "net" "net/http" @@ -158,14 +159,13 @@ func (c *Container) defaultStreamServerInterceptor() grpc.StreamServerIntercepto stack := make([]byte, 4096) stack = stack[:runtime.Stack(stack, true)] fields = append(fields, elog.FieldStack(stack)) - event = "recover" err = status.New(grpcCode.Internal, "panic recover, origin err: "+err.Error()).Err() } spbStatus := ecode.Convert(err) httpStatusCode := ecode.GrpcToHTTPStatusCode(spbStatus.Code()) fields = append(fields, - elog.FieldType("stream"), + elog.FieldKey("stream"), elog.FieldEvent(event), elog.FieldCode(int32(spbStatus.Code())), elog.FieldUniformCode(int32(httpStatusCode)), @@ -174,9 +174,10 @@ func (c *Container) defaultStreamServerInterceptor() grpc.StreamServerIntercepto elog.FieldPeerName(getPeerName(stream.Context())), elog.FieldPeerIP(getPeerIP(stream.Context())), ) - + isSlowLog := false if c.config.SlowLogThreshold > time.Duration(0) && c.config.SlowLogThreshold < cost { - c.logger.Warn("slow", fields...) + event = "slow" + isSlowLog = true } if err != nil { @@ -192,7 +193,11 @@ func (c *Container) defaultStreamServerInterceptor() grpc.StreamServerIntercepto c.prometheusStreamServerInterceptor(stream, info, spbStatus, cost) return } - c.logger.Info("access", fields...) + if isSlowLog { + c.logger.Warn("access", fields...) + } else { + c.logger.Info("access", fields...) + } c.prometheusStreamServerInterceptor(stream, info, spbStatus, cost) }() return handler(srv, stream) @@ -261,14 +266,15 @@ func (c *Container) defaultUnaryServerInterceptor() grpc.UnaryServerInterceptor err = status.New(grpcCode.Internal, "panic recover, origin err: "+err.Error()).Err() } - isSlow := false + isSlowLog := false if c.config.SlowLogThreshold > time.Duration(0) && c.config.SlowLogThreshold < cost { - isSlow = true + isSlowLog = true + event = "slow" } spbStatus := ecode.Convert(err) // 如果没有开启日志组件、并且没有错误,没有慢日志,那么直接返回不记录日志 - if err == nil && !c.config.EnableAccessInterceptor && !isSlow { + if err == nil && !c.config.EnableAccessInterceptor && !isSlowLog { c.prometheusUnaryServerInterceptor(ctx, info, spbStatus, cost) return } @@ -276,7 +282,7 @@ func (c *Container) defaultUnaryServerInterceptor() grpc.UnaryServerInterceptor httpStatusCode := ecode.GrpcToHTTPStatusCode(spbStatus.Code()) fields = append(fields, - elog.FieldType("unary"), + elog.FieldKey("unary"), elog.FieldCode(int32(spbStatus.Code())), elog.FieldUniformCode(int32(httpStatusCode)), elog.FieldDescription(spbStatus.Message()), @@ -304,22 +310,37 @@ func (c *Container) defaultUnaryServerInterceptor() grpc.UnaryServerInterceptor } if c.config.EnableAccessInterceptorReq { - var reqMap = map[string]interface{}{ - "payload": xstring.JSON(req), - } - if md, ok := metadata.FromIncomingContext(ctx); ok { - reqMap["metadata"] = md + reqStr := xstring.JSON(req) + if len(reqStr) > c.config.AccessInterceptorReqMaxLength { + var reqMap = map[string]any{ + "payload": reqStr[:c.config.AccessInterceptorReqMaxLength] + "...", + } + if md, ok := metadata.FromIncomingContext(ctx); ok { + reqMap["metadata"] = md + } + fields = append(fields, elog.Any("req", reqMap)) + } else { + var reqMap = map[string]any{ + "payload": json.RawMessage(reqStr), + } + if md, ok := metadata.FromIncomingContext(ctx); ok { + reqMap["metadata"] = md + } + fields = append(fields, elog.Any("req", reqMap)) } - fields = append(fields, elog.Any("req", reqMap)) - } - if c.config.EnableAccessInterceptorRes { - fields = append(fields, elog.Any("res", map[string]interface{}{ - "payload": xstring.JSON(res), - })) } - if isSlow { - c.logger.Warn("slow", fields...) + if c.config.EnableAccessInterceptorRes { + resStr := xstring.JSON(res) + if len(resStr) > c.config.AccessInterceptorResMaxLength { + fields = append(fields, elog.Any("res", map[string]any{ + "payload": resStr[:c.config.AccessInterceptorResMaxLength] + "...", + })) + } else { + fields = append(fields, elog.Any("res", map[string]any{ + "payload": json.RawMessage(resStr), + })) + } } if err != nil { @@ -336,8 +357,12 @@ func (c *Container) defaultUnaryServerInterceptor() grpc.UnaryServerInterceptor return } - if c.config.EnableAccessInterceptor { - c.logger.Info("access", fields...) + if c.config.EnableAccessInterceptor || isSlowLog { + if isSlowLog { + c.logger.Warn("access", fields...) + } else { + c.logger.Info("access", fields...) + } } c.prometheusUnaryServerInterceptor(ctx, info, spbStatus, cost) }() From 2502b2f50ae4ecce4664d81ca09416e5ab79106a Mon Sep 17 00:00:00 2001 From: askuy Date: Wed, 26 Jun 2024 11:56:57 +0800 Subject: [PATCH 2/3] fix error log --- server/egin/interceptor.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/server/egin/interceptor.go b/server/egin/interceptor.go index 6ad2aea3..d5ac075d 100644 --- a/server/egin/interceptor.go +++ b/server/egin/interceptor.go @@ -229,8 +229,6 @@ func (c *Container) defaultServerInterceptor() gin.HandlerFunc { c.config.recoveryFunc(ctx, rec) } - // 上面BrokenPipe使用的是用户ctx.Writer.Status() - // 如果不是BrokenPipe,那么会将Writer.Status()设置为500 stackInfo := stack(3) fields = append(fields, elog.FieldEvent(event), @@ -240,7 +238,12 @@ func (c *Container) defaultServerInterceptor() gin.HandlerFunc { elog.FieldUniformCode(int32(ctx.Writer.Status())), ) c.metricServerInterceptor(ctx, cost) - c.logger.Error("access", fields...) + // broken pipe 是warning + if brokenPipe { + c.logger.Warn("access", fields...) + } else { + c.logger.Error("access", fields...) + } return } // todo 如果不记录日志的时候,应该早点return From d7e3a7262a51942e1f567c6a8932ca098ceefde2 Mon Sep 17 00:00:00 2001 From: askuy Date: Wed, 26 Jun 2024 12:40:49 +0800 Subject: [PATCH 3/3] trace --- client/egrpc/interceptor.go | 2 +- client/ehttp/interceptor.go | 2 +- server/egin/interceptor.go | 2 +- server/egrpc/interceptor.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/egrpc/interceptor.go b/client/egrpc/interceptor.go index 6da38f1a..0bde6a73 100644 --- a/client/egrpc/interceptor.go +++ b/client/egrpc/interceptor.go @@ -342,7 +342,7 @@ func (c *Container) loggerUnaryClientInterceptor() grpc.UnaryClientInterceptor { ) // 开启了链路,那么就记录链路id - if c.config.EnableTraceInterceptor && etrace.IsGlobalTracerRegistered() { + if etrace.IsGlobalTracerRegistered() { fields = append(fields, elog.FieldTid(etrace.ExtractTraceID(ctx))) } diff --git a/client/ehttp/interceptor.go b/client/ehttp/interceptor.go index 5ece529f..a2871fa0 100644 --- a/client/ehttp/interceptor.go +++ b/client/ehttp/interceptor.go @@ -67,7 +67,7 @@ func logAccess(name string, config *Config, logger *elog.Component, req *resty.R } // 开启了链路,那么就记录链路id - if config.EnableTraceInterceptor && etrace.IsGlobalTracerRegistered() { + if etrace.IsGlobalTracerRegistered() { fields = append(fields, elog.FieldTid(etrace.ExtractTraceID(req.Context()))) } if config.EnableAccessInterceptor { diff --git a/server/egin/interceptor.go b/server/egin/interceptor.go index d5ac075d..8c1f1697 100644 --- a/server/egin/interceptor.go +++ b/server/egin/interceptor.go @@ -160,7 +160,7 @@ func (c *Container) defaultServerInterceptor() gin.HandlerFunc { } } - if c.config.EnableTraceInterceptor && etrace.IsGlobalTracerRegistered() { + if etrace.IsGlobalTracerRegistered() { fields = append(fields, elog.FieldTid(etrace.ExtractTraceID(ctx.Request.Context()))) } diff --git a/server/egrpc/interceptor.go b/server/egrpc/interceptor.go index 7d81e5db..2ea185d4 100644 --- a/server/egrpc/interceptor.go +++ b/server/egrpc/interceptor.go @@ -305,7 +305,7 @@ func (c *Container) defaultUnaryServerInterceptor() grpc.UnaryServerInterceptor } } - if c.config.EnableTraceInterceptor && etrace.IsGlobalTracerRegistered() { + if etrace.IsGlobalTracerRegistered() { fields = append(fields, elog.FieldTid(etrace.ExtractTraceID(ctx))) }