Prometheus 如何计算仪表在一天内设置为-1的总时间?

Prometheus 如何计算仪表在一天内设置为-1的总时间?,prometheus,grafana,Prometheus,Grafana,我在普罗米修斯有一个仪表,当我的服务停机时,它的值为-1(我的部署有0个吊舱)。当服务启动时,仪表会记录登录的用户数。我试图计算出这个量表在一天中的总时间是-1,也许是一周的平均值 我试图像这样使用timestamp()函数:timestamp(我的仪表[1d]=-1),但我得到了一个错误。我尝试了其他的东西,比如minu\u over\u time(),但也没用 编辑:如果有人对如何计算k8s部署在一天内停机的总时间有其他想法,而不使用我的仪表,我将不胜感激。当图表设置为1d时,我将进行计数(

我在普罗米修斯有一个仪表,当我的服务停机时,它的值为-1(我的部署有0个吊舱)。当服务启动时,仪表会记录登录的用户数。我试图计算出这个量表在一天中的总时间是-1,也许是一周的平均值

我试图像这样使用
timestamp()
函数:
timestamp(我的仪表[1d]=-1)
,但我得到了一个错误。我尝试了其他的东西,比如
minu\u over\u time()
,但也没用


编辑:如果有人对如何计算k8s部署在一天内停机的总时间有其他想法,而不使用我的仪表,我将不胜感激。

当图表设置为1d时,我将进行
计数(my_gauge==bool-1)
并在Grafana中读取总时间下的总和。您可以进一步将
Min step
设置为1d,但Grafan会对计数进行平均,因此您需要将查询乘以
$\uu interval\u ms
的某个因子。系数将取决于度量的频率。

当图表设置为1d时,我将进行
计数(我的计量器==bool-1)
并在总计下读取Grafana中随时间变化的总和。您可以进一步将
Min step
设置为1d,但Grafan会对计数进行平均,因此您需要将查询乘以
$\uu interval\u ms
的某个因子。系数将取决于度量的频率。

您可以使用以下方法获得前24小时内服务中断的时间:

avg_over_time((my_gauge == bool 0)[1d:])

您需要一个支持子查询的Prometheus(版本2.7),并且您只能在滑动窗口上生成度量。

您可以使用以下方法获取服务在前24小时内的停机时间:

avg_over_time((my_gauge == bool 0)[1d:])

您需要一个支持子查询的Prometheus(版本2.7),并且只能在滑动窗口上生成度量。

与其使用
count()
,不如使用
avg()
。那你就没有时间因素了。剩下的问题是在日边界上设置度量,这是不可能的。您还必须使用子查询而不是
count()
,最好使用
avg()
。那你就没有时间因素了。剩下的问题是在日边界上设置度量,这是不可能的。你也必须起诉Subqueries谢谢!我的结论是:
sum\u over\u time((my\u gauge==bool-1)[1d:])
。这给了我最后一天我的量表是-1的分钟数。谢谢!我的结论是:
sum\u over\u time((my\u gauge==bool-1)[1d:])
。这给了我最后一天我的仪表是-1的分钟数。