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 关注
- 202 浏览
添加回答
举报
