【问题标题】:With Prometheus how to monitor a scaled Docker service where each instance serves its own /metrics?使用 Prometheus 如何监控每个实例提供自己的 /metrics 的扩展 Docker 服务?
【发布时间】:2019-04-17 22:27:38
【问题描述】:

我有一个 Prometheus 设置,用于监控我自己的服务公开的指标。这适用于单个实例,但是一旦我开始扩展它们,Prometheus 就会完全混淆并开始跟踪不正确的值。

所有服务都通过 docker-compose 在单个节点上运行。

这是scrape_configs中的工作:

  - job_name: 'wowanalyzer'
    static_configs:
    - targets: ['prod:8000']

prod 的每个实例都在其内存中跟踪指标并在/metrics 上提供服务。我猜普罗米修斯每次报废时都会选择一个随机容器,这会导致记录的计数大幅增加,并随着时间的推移而增加。相反,我希望 Prometheus 同时读取所有实例上的/metrics,而不管当时活动的实例数量如何。

【问题讨论】:

  • 我计划通过结合使用 Docker Swarm 和 Prometheus DNS 服务发现来解决此问题,类似于此处解释的内容:airtame.engineering/… Docker Flow Monitor 似乎是一个有效的替代方案,但更复杂。
  • 您找到解决方案了吗?如果有,可以分享一下吗?
  • 我没有。 :( 自从我提出问题以来,它实际上一直处于这种破碎状态。

标签: docker docker-compose prometheus


【解决方案1】:

docker-gen (https://github.com/jwilder/docker-gen) 就是为此目的而开发的。

您需要创建一个运行 docker-gen 的 sidecart 容器来生成一组新的目标。

如果我记得很清楚,生成的主机名是prod_1prod_2prod_X 等。

【讨论】:

    【解决方案2】:

    我尝试了很多方法来帮助我们解决这个问题,但它看起来是一个未解决的问题。

    因此,我决定创建这个工具来帮助我们进行服务发现。

    https://github.com/juliofalbo/docker-compose-prometheus-service-discovery

    随时贡献和打开问题!

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多