1 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
目前我明白了我原本想得到的答案,就是獲取gin.context中的traceID、SpanID等數(shù)據(jù)
import (
"fmt"
"github.com/gin-gonic/gin"
oteltrace "go.opentelemetry.io/otel/trace"
)
func GetIDMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
if oteltrace.SpanFromContext(c.Request.Context()).SpanContext().IsValid() {
TraceID := oteltrace.SpanFromContext(c.Request.Context()).SpanContext().TraceID().String()
SpanID := oteltrace.SpanFromContext(c.Request.Context()).SpanContext().SpanID().String()
fmt.Println(TraceID)
fmt.Println(SpanID)
}
}
}
我最初的想法是通過(guò)otelgin在context中傳遞trace信息,然后在gin的中間件中通過(guò)context抓取traceID等用于zap logging,但是當(dāng)時(shí)不知道怎么獲取TraceID等信息,當(dāng)我看到gin-contrib/zap庫(kù)找到了正確的方法。
- 1 回答
- 0 關(guān)注
- 199 瀏覽
添加回答
舉報(bào)