【问题标题】:Prometheus rate function output to whole numberPrometheus 速率函数输出为整数
【发布时间】:2021-07-08 23:49:32
【问题描述】:
有没有办法将Prometheus中rate函数的输出转换为整数?
我正在尝试获取指定时间范围内 pod 重新启动的总数,尽管此查询会产生输出,但我得到的结果是小数,这不是我需要的。
rate(kube_pod_container_status_restarts_total{namespace=~"jenkins"}[10h]) * 60 * 5 > 0
我得到的是0.21761280931586605,但我宁愿得到一个整数。
我只是不确定要使用什么功能。
【问题讨论】:
标签:
kubernetes
prometheus
promql
prometheus-operator
【解决方案1】:
您可能不想使用 rate。
我猜你正在寻找增加,它将计算在一段时间内发生了多少重启
increase(kube_pod_container_status_restarts_total{namespace=~"jenkins"}[10h])
【解决方案2】:
您可以使用以下函数对十进制数进行四舍五入:
- round = 四舍五入到最接近的整数。
- ceil = 向上舍入到最接近的整数。
- floor = 向下舍入到最接近的整数。
在 Prometheus 文档here 中查看有关“round”函数的更多详细信息。
在您的情况下,您使用的是“速率”,因此您获得每秒重新启动的次数 * 60 * 5。这与每 5 分钟的重新启动次数相同。
但是,如果你想计算重启次数(而不是计算重启率),也许你应该使用“增加”函数。
在 Prometheus 文档here 中查看有关“增加”功能的更多详细信息。