为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 go-jaeger-client 需要指标和日志的包装器?

为什么 go-jaeger-client 需要指标和日志的包装器?

Go
心有法竹 2023-08-07 14:54:38
我开始使用 go-gRPC-middleware 来检测我的 gRPC 服务。我已经使用 zap 和为 Prometheus 公开的指标来工作日志。现在我尝试使用 jaeger go 客户端配置跟踪,它要求我添加围绕指标存储和记录器的包装器。我不确定我是否理解为什么需要这些包装器
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

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



查看完整回答
反对 回复 2023-08-07
?
森林海

TA贡献2011条经验 获得超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()

}

查看完整回答
反对 回复 2023-08-07
  • 2 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号