我有一个服务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个不同的dockers上(在我的例子中是K8s上的容器)。
我如何使用普罗米修斯监控他们??我应该将我的代码和一些id更改为每个消费者的标签吗?
最好的做法是什么,以便能够将它们汇总在一起,同时又能各自依靠它们?
发布于 2021-05-31 00:49:20
可以,您应该考虑使用labels根据实例来消除指标(例如计数器)的歧义。
您需要确定要使用的唯一标识符。
Kubernetes提供了一个Downward API,使您能够将信息从Pod表面到容器。这些值中的一个应该是有用的。
然后,您可以使用PromQL ignoring跨计数器求和,并忽略一个或多个标签。
使用这种方法,您可以选择是按实例求和还是跨实例求和。
https://stackoverflow.com/questions/67761177
复制相似问题