我开始使用go-gRPC-middleware来检测gRPC服务。我已经使用zap记录日志,并为Prometheus公开了指标。
现在,我要尝试使用Jaeger Go客户端配置跟踪,这需要我在指标存储和记录器周围添加包装器。我不确定我为什么要使用这些包装器
答案 0 :(得分:1)
Jaeger客户端被设计为具有最小的依赖关系集。我们不知道您的应用程序是使用Prometheus指标还是Zap记录器。这就是jaeger-client-go
(以及其他许多其他Jaeger客户端其他语言)为Logger和MetricsFactory提供两个轻量级接口的原因,可以为应用程序所使用的特定日志/度量标准后端实现这些接口。当然,在jaeger-lib
中已经实现了Prometheus和Zap的绑定,并且可以选择包括它们。
答案 1 :(得分:0)
您可以将其绑定到指标和日志记录框架,但不必这样做。您可以仅调用cfg.NewTracer()
,例如以下示例:
func ExampleFromEnv() {
cfg, err := jaegercfg.FromEnv()
if err != nil {
// parsing errors might happen here, such as when we get a string where we expect a number
log.Printf("Could not parse Jaeger env vars: %s", err.Error())
return
}
tracer, closer, err := cfg.NewTracer()
if err != nil {
log.Printf("Could not initialize jaeger tracer: %s", err.Error())
return
}
defer closer.Close()
opentracing.SetGlobalTracer(tracer)
// continue main()
}
查看Jaeger Go Client自述文件,以获取有关度量标准/日志记录集成的更多信息:https://github.com/jaegertracing/jaeger-client-go