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

opencensus 出口商 - 一个全局或每个线程?

opencensus 出口商 - 一个全局或每个线程?

胡说叔叔 2021-07-30 09:17:00
我正在使用 Opencensus 在具有 10 个工人的 grpc 服务器上进行一些监控。我的问题是,在制作示踪剂时,示踪剂的出口商应该是本地的还是全球的。IE这是服务器:服务器 = grpc.server(futures.ThreadPoolExecutor(max_workers=10))我要不要:tracer_module.Tracer(sampler=always_on.AlwaysOnSampler(), exporter=GLOBAL_EXPORTER) 其中:GLOBAL_EXPORTER = stackdriver_exporter.StackdriverExporter(transport=BackgroundThreadTransport)) 或者我这样做:tracer_module.Tracer(sampler=always_on.AlwaysOnSampler),exporterstacker(exporterstacker) StackdriverExporter(transport=BackgroundThreadTransport)))我已经尝试了两者,它们都有效。前者将使用一个应该更有效的全局导出器(我认为),但聚合似乎有点奇怪(一个调用是“与另一个调用聚合”)。另一方面,第二种方式创建了第二个导出器(这是短暂的,因为它只存在于该调用中)并且似乎可以正确导出。从系统的角度来看,问题更多的是什么更正确。第二个选项的 IE 是否创建 stackdriver_exporter.StackdriverExporter(transport=BackgroundThreadTransport) 使不同的导出器(在不同的线程中创建)无效?
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

您应该使用全局导出器。它并不打算为每个 Tracer 创建一个新的导出线程。应该有一个后台线程在运行,用于处理所有导出到 StackDriver 的操作。

至于聚合,它不应该将所有跨度聚合在一起。这可能是 StackDriver UI 中的一个错误(有许多已知问题)。


查看完整回答
反对 回复 2021-08-03
  • 1 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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