使用graphite-exporter时Prometheus同标签指标重复出现原因排查
问题原因排查与解决方法
- graphite-exporter匹配规则重复生成指标
graphite-exporter的metrics mapping配置默认开启continue: true,同一条Graphite指标路径如果匹配到多条mapping规则,每一条规则都会生成对应的Prometheus指标。举个例子,如果你同时配置了匹配some.project.*.*.*和some.project.staging.*.*的两条规则,都没有设置continue: false,这条测试指标会同时匹配两条规则,生成多个同标签指标。你可以检查mapping配置文件,确认some.project.staging.action.failed对应的匹配规则没有重复,在不需要继续匹配的规则末尾添加continue: false即可终止后续匹配,避免重复生成。 - 上报链路多实例重复接收指标
你发送指标的目标graphite-tcp.domain如果是负载均衡或者转发中间件,可能配置了多份转发规则,将同一条指标转发到了多个graphite-exporter实例。如果Prometheus抓取这些exporter时,通过relabel配置抹掉了instance等用于区分实例的标签,就会出现标签完全相同的重复指标。你可以直接访问单个exporter的http://<exporterIP>:9109/metrics接口,查看返回的指标是否已经重复,先定位问题是否出在exporter侧。 - Prometheus抓取配置重复
检查Prometheus的scrape_config配置,确认同一个graphite-exporter实例没有被加入多个抓取任务,也没有在同一抓取任务的targets列表中重复填写,同时确认服务发现规则没有重复发现同一个实例。 - exporter指标缓存未过期
如果之前发送过相同标签的指标,且graphite-exporter启动时配置的--graphite.sample-expiry参数值过大,旧指标还没有过期清除,也会出现多份重复数据。可以重启graphite-exporter后重新发送测试指标验证是否恢复正常。
内容的提问来源于stack exchange,提问作者darkmantis
相关产品推荐
相关产品推荐

