1

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 では使用できません。

前もって感謝します!!!

乾杯。

4

1 に答える 1