A.J*_*Jac 5 monitoring docker prometheus cadvisor
我已经使用Prometheus,Grafana和cAdvisor设置了一个docker监控堆栈。使用此查询获取正在运行的容器时:
count_scalar(container_last_seen{name=~container1|container2})
Run Code Online (Sandbox Code Playgroud)
它会捡起所有的容器,一旦我启动了一个新容器,它就会立即被捡起。问题是,停止或卸下容器时,它不会拾取它,但仍将其显示为正在运行的容器。
容器停止后,将从cAdvisor / metrics端点将其删除。
查询有问题吗?
(这就是我用于堆栈的内容:https : //github.com/vegasbrianc/prometheus)
虽然 cAdvisor 将数据保留在内存中,但您的container_last_seen指标中仍然有有效日期。因此count_scalar指令仍然“看到”容器,因为它具有有效值。
在我的测试设置中,cAdvisor 将数据保留 5 分钟。在此持续时间之后,我从您的公式中获得了正确的信息,因为container_last_seen指标已经消失。
您可以使用--storage_duration标志更改此 cAdvisor 配置。
--storage_duration=2m0s: How long to store data.
Run Code Online (Sandbox Code Playgroud)
作为替代方案,如果您不想快速发出警报,您还可以考虑运行一个查询,将上次看到的日期与当前日期进行比较:
count_scalar(time()-container_last_seen{name=~"container1|container2"}<=60)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2392 次 |
| 最近记录: |