首页 > 解决方案 > 如何区分同名的 Prometheus 指标和 Kubernetes 中动态发现的微服务

问题描述

我正在寻找一种方法来区分从 Kubernetes 集群中运行的不同动态发现的服务收集的 Prometheus 指标(我们使用的是https://github.com/coreos/prometheus-operator)。例如,对于写入数据库的指标,我想了解它们实际来自哪个服务。我想您可以通过相应服务中的标签来执行此操作,但是,我们正在使用的 swagger-stats ( http://swaggerstats.io/ ) 尚未提供此功能(为了增强此功能,存在一个问题打开:https ://github.com/slanatech/swagger-stats/issues/50 )。有没有办法在 Prometheus 本身上实现这一点,例如 Prometheus 在抓取后为每个时间序列添加一个特定于服务的标签?

感谢您的反馈!

标签: kubernetesprometheus

解决方案


有没有办法在 Prometheus 本身上实现这一点,例如 Prometheus 在抓取后为每个时间序列添加一个特定于服务的标签?

这就是 Prometheus 的设计用途,因为目标不知道监控系统如何看待它,并且前缀指标名称会使跨服务分析更加困难。在整个目标中设置标签和为指标名称添加前缀都被认为是反模式。

您想要的称为目标标签,这些通常来自应用到服务发现的元数据的重新标签。

使用 Prometheus Operator 时,您可以指定targetLabels从 Kubernetes 服务复制到 Prometheus 目标的标签列表。


推荐阅读