我正在使用 Jaeger 在我们的微服务中添加开放跟踪。我有两台 GRPC 服务器和一台 REST 服务器。
GRPC 服务器和所有 rest-grpc 请求都在一个父跨度下跟踪,默认的 opentracing 非常好。使用 Java GRPC,我可以添加自定义子跨度,并且它以完美的层次结构出现在 Jaeger UI 中。但是当我尝试在 Go Lang 中添加相同的自定义子时,它不会添加到调用 GRPC 服务的父 Rest Service 跨度中。下面是golang代码
"github.com/opentracing/opentracing-go"
cfg := jaegerConfig.Configuration{
ServiceName: t.Name,
}
tracer, closer, err := cfg.NewTracer(
jaegerConfig.Logger(jLogger),
jaegerConfig.Metrics(jMetricsFactory),
)
gRPCServer := grpc.NewServer(
grpc.UnaryInterceptor(
otgrpc.OpenTracingServerInterceptor(tracer)),
grpc.StreamInterceptor(
otgrpc.OpenTracingStreamServerInterceptor(tracer)))
var span = tracer.StartSpan("Test Span")
span.SetTag("one", "value")
span.Finish()
我不想进行整个 http 标头提取,因为 GRPC 库已经处理好了。即使使用 java GRPC,我也不进行任何提取。我在 opentracing 中使用的范围管理器不适用于 go lang opentracing。
提前致谢!!!
干杯。