【发布时间】:2019-06-17 09:04:46
【问题描述】:
我正在使用自定义 python 应用程序使用从 Kafka 到 Prometheus 的各种计量指标。指标需要在越来越少的同一时间(毫秒)内使用。我只能成功抓取下面示例中的最后一个指标,因为前三个指标会立即被覆盖。
my_metric{labelA = "aaa", labelB = "111"} 8
my_metric{labelA = "aaa", labelB = "222"} 12
my_metric{labelA = "bbb", labelB = "111"} 7
**my_metric{labelA = "bbb", labelB = "222"} 15**
我可以通过为所有四个指标设置一个唯一的指标名称来抓取,例如:
my_metric_aaa_111{labelA = "aaa", labelB = "111"} 8
但这似乎不是最佳实践,而且在 Grafana 中使用此类指标通常非常困难。
我还可以在 Prometheus 配置中将指标连续推送到 scraped 并降低 scraping 的间隔,但这与解决方案的整体理念背道而驰。 p>
除了我完全不知道的建议之外 - 是否可以为 Prometheus 保留相同的指标以抓取只有标签值不同?我发现的唯一讨论在这里没有答案:https://github.com/prometheus/pushgateway/issues/65。
如果上述方法不可行,我可以稍后在 Prometheus/Grafana 中以某种方式合并/加入/组合指标名称,以便能够根据它们的标签使用它们吗?意思是删除上面示例中不必要的结尾 _aaa_111 以将所有内容都作为一个指标进行处理?
【问题讨论】:
-
“前三个立即被覆盖”是什么意思?一个指标是uniquely identified by its name and the set of labels。在您的示例中,它们是四个不同的指标,将被解析。
-
感谢@Michael 为我指明了正确的方向。如果 Prometheus 的所有四个指标都被认为是唯一的,我将需要查看 python 生产者应用程序以找出其中的问题。
-
仅供参考,它是 scrape(和 scraping、scraped、scraper)不是废品。 “废弃”意味着像垃圾一样扔掉:-(
标签: python grafana prometheus