prometheus - 如何创建查询以监控 docker 容器一天运行了多少分钟
问题描述
我正在尝试监控 docker 容器,但是在进行查询以监控容器一天运行的分钟数时遇到问题
count(rate(container_last_seen{id=~"/docker/.*",instance=~"$node"}[1d]))
这是我的查询,显示一天运行了多少容器,但我不知道监控容器一天运行多少分钟
解决方案
如果您知道指标数据点之间的间隔container_last_seen
(它被称为scrape_interval
并且通常在 Prometheus 配置文件中配置),那么可以使用以下查询来计算容器在最后一天运行时的持续时间(以秒为单位):
count_over_time(
(changes(container_last_seen{id=~"/docker/.*",instance=~"$node"}[<3*scrape_interval>])>0)
[1d:<3*scrape_interval>]
)*<3*scrape_interval>
例如,如果scrape_interval
等于10s
,则查询将如下所示:
count_over_time(
(changes(container_last_seen{id=~"/docker/.*",instance=~"$node"}[30s])>0)
[1d:30s]
)*30
此查询使用PromQL 子查询来计算时间序列至少有一次更改30s
时的数字间隔。container_last_seen
推荐阅读
- java - 正则表达式匹配具有特定十进制数计数的行
- unit-testing - 如何使用 JSDom 对 Jest 中的自定义元素执行单元测试
- ios - 如何从按钮的 imageView 中删除缓存的 SDWebImage
- java - JavaFX NoClassDefFoundError:阶段
- c++ - 类对象的复制列表初始化是用户定义的转换吗
- html - 导航栏溢出时引导自定义文件输入错误
- javascript - 如何从函数 Javascript 中定义全局常量?
- r - R中的什么函数会给我只有X列的行数
- shell - Dse 未开始声明无法写入提交日志目录
- python - 将模型的所有实例放入对象