为什么 go-jaeger-client 需要度量和日志的包装器?
Why go-jaeger-client requires wrappers for metrics and logs?
我已经开始使用 go-gRPC-middleware 检测我的 gRPC 服务。我已经使用 zap 和为 Prometheus 公开的指标来处理日志。
现在我正在尝试使用 jaeger go 客户端配置跟踪,它需要我添加围绕度量存储和记录器的包装器。我不确定我是否理解为什么需要这些包装器
您可以将其绑定到指标和日志记录框架,但不是必须的。您可以简单地调用 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 自述文件以获取有关 metrics/logging 集成的更多信息:https://github.com/jaegertracing/jaeger-client-go
Jaeger 客户端设计为具有最少的依赖性。我们不知道您的应用程序使用的是 Prometheus 指标还是 Zap 记录器。这就是为什么 jaeger-client-go
(以及许多其他语言的 Jaeger 客户端)为 Logger 和 MetricsFactory 提供两个轻量级接口,可以为您的应用程序使用的特定 logs/metrics 后端实现。当然,Prometheus 和 Zap 的绑定已经在 jaeger-lib
中实现,可以选择性地包含。
我已经开始使用 go-gRPC-middleware 检测我的 gRPC 服务。我已经使用 zap 和为 Prometheus 公开的指标来处理日志。
现在我正在尝试使用 jaeger go 客户端配置跟踪,它需要我添加围绕度量存储和记录器的包装器。我不确定我是否理解为什么需要这些包装器
您可以将其绑定到指标和日志记录框架,但不是必须的。您可以简单地调用 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 自述文件以获取有关 metrics/logging 集成的更多信息:https://github.com/jaegertracing/jaeger-client-go
Jaeger 客户端设计为具有最少的依赖性。我们不知道您的应用程序使用的是 Prometheus 指标还是 Zap 记录器。这就是为什么 jaeger-client-go
(以及许多其他语言的 Jaeger 客户端)为 Logger 和 MetricsFactory 提供两个轻量级接口,可以为您的应用程序使用的特定 logs/metrics 后端实现。当然,Prometheus 和 Zap 的绑定已经在 jaeger-lib
中实现,可以选择性地包含。