微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Prometheus 监控多个 docker 实例?

如何解决如何使用 Prometheus 监控多个 docker 实例?

我有服务 A,它是某个队列中的消费者。

我可以使用 Prometheus 轻松监控和计算任何消耗的消息:)

from prometheus_client import start_http_server,Counter

COUNTER_IN_MSGS = Counter('msgs_consumed','count consumed messages')
start_http_server(8000)
while(queue not empty):
   A.consume(queue)
   COUNTER_IN_MSGS.inc()

但是,有一天我决定将我的消费者复制到 10 个执行相同 {A1,A2...,A10} 的消费者,使用相同的代码但在 10 个不同的 docker 上运行(在我的例子中是 K8s 上的容器) ).

如何使用 Prometheus 监控它们?我应该为每个消费者更改我的代码和一些 ID 作为标签吗?

为了能够将它们汇总在一起,同时又单独依靠每一个,最佳做法是什么?

解决方法

是的,您应该考虑使用 labels 按实例消除指标(例如计数器)的歧义。

您需要确定要使用的唯一标识符。

Kubernetes 提供了一个 Downward API,使您能够将信息从 Pod 显示到容器。这些值之一应该是有用的。

然后您可以使用 PromQL ignoring 来例如跨计数器求和并忽略一个或多个标签。

通过这种方法,您可以选择是按实例求和还是跨实例求和。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。