1 回答

TA貢獻1895條經驗 獲得超7個贊
您可以StartSpanFromContext在 gRPC 處理程序中嘗試使用 , :
// import "github.com/opentracing/opentracing-go"
span, _ := opentracing.StartSpanFromContext(ctx, "some_child_span")
defer span.Finish()
span.SetTag("foo", "bar")
正如文檔otgrpc.OpenTracingServerInterceptor所說:
[...] 服務器 Span 將嵌入到 context.Context 中,供特定于應用程序的 gRPC 處理程序訪問。
如果我們看一下函數實現:
// import "github.com/opentracing/opentracing-go"
func OpenTracingServerInterceptor(tracer opentracing.Tracer, optFuncs ...Option) grpc.UnaryServerInterceptor {
// ... a lot omitted
ctx = opentracing.ContextWithSpan(ctx, serverSpan)
// ...
resp, err = handler(ctx, req) // your gRPC handler
// ...
}
編輯:鑒于上述情況,您可能可以省略此代碼:
var span = tracer.StartSpan("Test Span")
span.SetTag("one", "value")
span.Finish()
- 1 回答
- 0 關注
- 141 瀏覽
添加回答
舉報