docker - Prometheus cAdvisor docker 监控

标签 docker monitoring prometheus cadvisor

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

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

它可以很好地拾取容器,一旦我启动一个新容器,它就会立即被拾取。问题是当一个容器被停止或移除时,它不会捡起它,它仍然显示它是一个正在运行的容器。

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

查询有问题吗?

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

最佳答案

好像和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)

关于docker - Prometheus cAdvisor docker 监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44386907/

相关文章:

prometheus - --storage.tsdb.retention.size 在普罗米修斯

Prometheus:按指标名称对指标进行分组

c++ - docker 容器中的 gdb 返回 "ptrace: Operation not permitted."

azure - 如何从 Azure DevOps 发布管道将 docker 容器部署到 Ubuntu 服务器实例?

docker - 在多阶段构建的 docker 容器中使用 golang

monitoring - 使用 OR 运算符的 Graphite 度量搜索

image - “OCI runtime create failed ”问题在使用Docker主机的MacOS上运行脚本

java - 如何使监视目录服务监视多个文件夹

cassandra - 如何监控 Cassandra 复制滞后?

kubernetes - 节点组之间的 AWS EKS 通信