Prometheus:从横向扩展的微服务中抓取日志

Prometheus: Scrape logs from horizontal scaled microservices

我想使用 prometheus 从我的分布式网络服务中抓取指标。 我使用 docker-compose 或 kubernetes 设置了四种服务。

合剂:5000 Redis队列:6379 普罗米修斯 Workers:根据系统负载水平扩展。他们通过 redis 队列获取工作指令。

如何从 Flask 中抓取指标是一个难题。 但是,从 Workers 获取指标的最佳做法是什么?我无法为它们绑定端口,因为我不知道它们中有多少个存在。

我正在考虑使用普罗米修斯推送网关。但是,正如我发现的那样,不推荐这样做。

答案取决于你的工人寿命是长还是短

如果一个工作人员活着执行一个任务然后退出推送网关是将指标从工作人员发送到普罗米修斯的正确方法。

如果一个工作人员至少活了两个 Prometheus 抓取周期(这是可配置的),您绝对可以在工作人员上打开一个端口,并从专用端点获取 Prometheus 抓取指标。

Prometheus 的默认抓取配置带有一个 scrape job,它将抓取任何带有以下注释的 pod:

prometheus.io/scrape: true

它还从 pod 上的以下注释派生了抓取端点

prometheus.io/scheme: http
prometheus.io/path: /metrics
prometheus.io/port: 3000

因此您可以使用上述注释轻松地注释工作人员 pods 以指示 Prometheus 从他们那里抓取指标