普罗米修斯cAdvisordocker监控
我已经使用Prometheus,Grafana和cAdvisor设置了Docker监视堆栈。 在使用此查询来获取运行容器时:
count_scalar(container_last_seen{name=~container1|container2})
它拿起容器好了,只要我推出一个新的容器,它立即被拿起。 问题是当一个容器被停止或移除时,它不会提取它,它仍然显示为一个正在运行的容器。
从cAdvisor /度量指标端点一旦容器停止,它将被删除。
查询有什么问题吗?
(这是我用于堆栈: https : //github.com/vegasbrianc/prometheus )
这似乎与cAdvisor将数据存储在内存中的时间有关 。
当cAdvisor将数据保存在内存中时,您仍然在container_last_seen
指标中使用有效的date。 所以count_scalar
指令仍然“看到”容器,因为它有一个有效的值。
在我的testing设置中,cAdvisor在5分钟内保存数据。 经过这段时间后,我从您的公式中获得正确的信息,因为container_last_seen
指标已经消失。
您可以使用--storage_duration
标志更改此cAdvisorconfiguration。
--storage_duration=2m0s: How long to store data.
如果不想快速提醒,也可以考虑运行一个查询,将上次查看date与当前date进行比较:
count_scalar(time()-container_last_seen{name=~"container1|container2"}<=60)