【问题标题】:Prometheus cAdvisor docker monitoringPrometheus cAdvisor docker 监控
【发布时间】:2017-06-06 09:58:17
【问题描述】:

我使用 Prometheus、Grafana 和 cAdvisor 设置了一个 docker 监控堆栈。使用此查询获取正在运行的容器时:

count_scalar(container_last_seen{name=~container1|container2})

它可以拾取容器,只要我启动一个新容器,它就会立即被拾取。问题是当一个容器被停止或移除时,它并没有拾取它,它仍然将它显示为一个正在运行的容器。

一旦容器停止,它就会从 cAdvisor/metrics 端点移除。

查询有问题吗?

(这是我用于堆栈的内容:https://github.com/vegasbrianc/prometheus

【问题讨论】:

    标签: docker monitoring prometheus cadvisor


    【解决方案1】:

    好像和amount of time cAdvisor stores the data in memory有关。

    虽然 cAdvisor 将数据保存在内存中,但 container_last_seen 度量中的日期仍然有效。所以count_scalar 指令仍然“看到”容器,因为它具有有效值。

    在我的测试设置中,cAdvisor 将数据保存 5 分钟。在这段时间之后,我从您的公式中得到了正确的信息,因为 container_last_seen 指标已经消失了。

    您可以使用 --storage_duration 标志更改此 cAdvisor 配置。

    --storage_duration=2m0s: How long to store data.
    

    作为一种替代方法,如果您不想快速提醒,您还可以考虑运行一个查询,将上次查看日期与当前日期进行比较:

    count_scalar(time()-container_last_seen{name=~"container1|container2"}<=60)
    

    【讨论】:

      猜你喜欢
      • 2019-07-24
      • 2022-06-25
      • 2016-05-29
      • 2021-09-10
      • 2021-07-15
      • 2023-02-02
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      相关资源
      最近更新 更多