Prometheus cAdvisor码头工人监控

时间:2017-06-06 09:58:18

标签: docker monitoring prometheus cadvisor

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

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

它可以直接拿起容器,一旦我启动一个新的容器,它立即被拿起。问题是当一个容器被停止或移除时它没有捡起它,它仍然将它显示为一个正在运行的容器。

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

查询有问题吗?

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

1 个答案:

答案 0 :(得分:3)

它似乎与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)