在 docker swarm 中自动发现 Prometheus 指标端点

Posted

技术标签:

【中文标题】在 docker swarm 中自动发现 Prometheus 指标端点【英文标题】:Auto discovery of Prometheus metric endpoint in docker swarm 【发布时间】:2020-04-03 05:32:38 【问题描述】:

我可以设置 static_configs 为 Prometheus 提供度量端点。有没有办法在 Docker swarm 中动态设置指标端点。例如,我们能否在docker-compose.yaml 文件中提供一些标签来帮助 Prometheus 自动发现指标端点?


myApp:
  image: ...
  lables:
    prom/scrape: true # something like this
    prom/port: 3000

....

【问题讨论】:

【参考方案1】:

Prometheus 没有对 Docker Swarm 的本机服务发现支持(与 Kubernetes service discovery 不同)。

但是,为了在 Docker Swarm 中自动发现任何指标端点,您可以使用通用的file service discovery 机制。它通过使用包含所需度量端点的文件来工作。 Prometheus 对此文件执行磁盘监视并动态应用任何更改。这意味着,您可以在运行时更新文件,Prometheus 将立即与之同步。

Docker Swarm 有一个 file service discovery integration,名为 prometheus-swarm-discovery。这个工具应该可以动态写入Prometheus文件服务发现使用的文件,所以这个逻辑你就不用自己实现了。

【讨论】:

以上是关于在 docker swarm 中自动发现 Prometheus 指标端点的主要内容,如果未能解决你的问题,请参考以下文章

docker swarm 部署 prometheus 用于监控服务器

docker swarm 部署 prometheus 用于监控服务器

【swarm】Docker swarm 的负载均衡

docker swarm

Azure 自动缩放和 Docker Swarm

Docker swarm中的LB和服务发现详解