【问题标题】:Why go-jaeger-client requires wrappers for metrics and logs?为什么 go-jaeger-client 需要度量和日志的包装器?
【发布时间】:2019-11-26 04:59:46
【问题描述】:

我已经开始使用 go-gRPC-middleware 检测我的 gRPC 服务。我已经使用 zap 和为 Prometheus 公开的指标来运行日志。

现在我正在尝试使用 jaeger go 客户端配置跟踪,它需要我在指标存储和记录器周围添加包装器。我不确定我是否理解为什么需要这些包装器

https://github.com/jaegertracing/jaeger/blob/bf64373d1e690594fd8c279720faf32722cf1494/examples/hotrod/pkg/tracing/init.go#L46

【问题讨论】:

    标签: go opentracing jaeger


    【解决方案1】:

    Jaeger 客户端旨在具有最少的依赖项。我们不知道您的应用程序使用的是 Prometheus 指标还是 Zap 记录器。这就是为什么jaeger-client-go(以及其他许多其他语言的 Jaeger 客户端)为 Logger 和 MetricsFactory 提供两个轻量级接口的原因,可以为您的应用程序正在使用的特定日志/指标后端实现。当然,Prometheus 和 Zap 的绑定已经在 jaeger-lib 中实现了,可以随意包含。

    【讨论】:

      【解决方案2】:

      您可以将其绑定到指标和日志框架,但您不必这样做。您可以简单地调用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()
      }
      

      来源:https://github.com/jaegertracing/jaeger-client-go/blob/3585cc566102e0ea2225177423e3fcc3d2e5fd7a/config/example_test.go#L88-L105

      查看 Jaeger Go 客户端自述文件以获取有关指标/日志集成的更多信息:https://github.com/jaegertracing/jaeger-client-go

      【讨论】:

      • 感谢您的回复。我认为将其绑定到指标和日志记录非常有用,允许记录 跟踪 指标。 jaeger-client-go 是我正在使用的。我有单独的跟踪工作,但我想建立绑定。我的困惑来自于我不能将*zap.Logger*prometheus.Registry 传递给cfg.NewTracer(config.Logger(...)) 以获取jaeger-client-go。相反,我需要按照hotrod 示例将其包装到一个简化的记录器和一些指标工厂中。我是这个系统的新手,想知道为什么需要它。
      猜你喜欢
      • 1970-01-01
      • 2020-11-26
      • 2011-01-09
      • 2018-01-02
      • 2014-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多