Jaeger を使用して、マイクロ サービスにオープントレースを追加する作業を行っています。2 つの GRPC サーバーと 1 つの REST サーバーがあります。
GRPC サーバーとすべての rest-grpc 要求の両方で完全に問題のないデフォルトの opentracing は、1 つの親スパンで追跡されます。Java GRPC を使用すると、カスタムの子スパンを追加でき、Jaeger UI に完全な階層で表示されます。しかし、Go Lang で同じカスタムの子を追加しようとすると、GRPC サービスを呼び出した親の Rest サービス スパンに追加されません。以下は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()
GRPC ライブラリによって既に処理されているため、http ヘッダーの抽出全体を実行したくありません。Java GRPC を使用しても、抽出は行いません。opentracing で使用するスコープ マネージャーは、go lang opentracing では使用できません。
前もって感謝します!!!
乾杯。