为什么很多开源组件的指标采集都是 exporter 形式?

2023-12-08 15:05:56 +08:00
 AuroraTwinkle

如果,发现很多开源组件的普罗米修斯指标都是通过外挂 exporter 程序的形式暴露出来的,例如:consul-exporter,rocketmq-exporter,redis-exporter 等等,这样做有什么好处吗?出于性能考虑?

1502 次点击
所在节点    程序员
9 条回复
weijancc
2023-12-08 15:10:42 +08:00
prometheus 是主动请求 http 接口获取指标的, 你用 prometheus 那它的组件就必须是 exporter 形式
hzj629206717
2023-12-08 15:36:01 +08:00
因为应用的指标输出不是 Prometheus 的协议和格式,需要一个 exporter 来适配。
(那你可能要问了,为什么应用不原生支持 Prometheus 采集? Up to the author's decision.)
deorth
2023-12-08 15:36:59 +08:00
你可以二开原应用,把这个功能加上去
AuroraTwinkle
2023-12-08 16:22:23 +08:00
@hzj629206717 嗯嗯,比较好奇不原生集成 Prometheus 的考虑是不是怕影响性能?
AuroraTwinkle
2023-12-08 16:23:48 +08:00
@weijancc 嗯嗯,我更想问的是,为啥不集成到应用代码里,而是外挂 exporter 的形式
AuroraTwinkle
2023-12-08 16:25:43 +08:00
@deorth 可以的,主要是想了解下用外挂 exporter 而不是原生集成的原因
dextercai
2023-12-08 16:59:27 +08:00
Prometheus Pull 的这种形式需要暴露 HTTP 端点,但实现指标观测并不一定完全需要 Prometheus 。
观测组件有很多,比如结合 OpenTelemetry 生态,可以主动推送给 Prometheus ,或者推给 ElasticAPM 。
AuroraTwinkle
2023-12-08 19:27:10 +08:00
@dextercai 多谢指点
julyclyde
2023-12-09 18:21:36 +08:00
为什么 exporter 格式:
大概是 prometheus 已经成为事实上的标准了
不选这标准的,大概都是要在企业内评职称的

为什么外挂:
应该是被监控的软件本身不支持且懒得支持 http 协议吧?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/998705

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX