首页 > 解决方案 > 在 docker swarm 中自动发现 Prometheus 指标端点

问题描述

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


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

....

标签: docker-composedocker-swarmprometheus

解决方案


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

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

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


推荐阅读