要使用 Jaeger 追蹤 gRPC service 程式,可先加入 Jaeger 與 OpenTracing.Contrib.Grpc 套件。

...

...

1.png

修改 Startup.ConfigureServices,加入 Jaeger tracer、註冊 GlobalTracer、設定 gRPC 攔截器。

...
services.AddGrpc(options =>
{
var serviceName = AppDomain.CurrentDomain.FriendlyName;
var tracer = new Tracer.Builder(serviceName)
.WithSampler(new ConstSampler(true))
.Build();

GlobalTracer.Register(tracer);

services.AddSingleton(tracer);

var interceptors = options.Interceptors;
interceptors.Add(tracer);

...
});
...

實際運行程式。

2.png

選取 Service 與 Operator 下去查詢。

3.png

可看到找到的 Trace,上半部可看到時間與耗時的分佈,下半部就是簡易的列表,可看出 Trace 名稱、識別碼、是什麼時間點觸發的、耗時多久、有多少 Span。

4.png

點選感興趣的 Trace,會進入 Trace 細部資訊頁面,會將 Trace 及其組成的 Span 以圖形的方式呈現,便於找到相對耗時的操作。

5.png

展開 Span 可看到 Span 的 Tag 這些細部的資訊。

6.png