我从普罗米修斯那里得到了指标。表示稳定性的指标之一是事务。默认情况下,它只有事务总数(50,55,70,等等)。因此,我有一个图表,它显示了计数之间的差异(increase(total_transaction[1m])
)。这就是我可以确保交易继续进行的原因,如果差额为零,那么它就意味着它停滞了,有些事情出了问题。
所以我想用百分比来计算这个稳定性,和通常计算的正常运行时间一样。在我的例子中,如果程序正在运行,但事务不能执行,则等于停机。所以,任何知道如何从总数中计算出活性的百分比。
例如:总事务数持续增加5分钟,但10秒后,它就会卡住,不会增加,并且显示相同的值。这意味着10/300 = 3%的停机时间和97%的正常运行时间,这是我希望得到的结果。
有什么建议吗?
发布于 2022-08-23 05:28:57
尝试以下查询:
avg_over_time(
(
increase(total_transaction[1m]) >bool 0
)[1h:1m]
)
它返回范围[0..1]
中“正常运行时间”的百分比,其中0
表示100%的停机时间,而1
则表示100%的“正常运行时间”。
在本例中,100%的“正常运行时间”的定义如下:在最后一个小时内,每分钟的total_transaction
增长总是非零(请参阅上面方括号中的1h
持续时间)。
100%停机时间的定义如下:在最后一个小时内,每分钟的total_transaction
增长总是为零。
上面的查询使用以下promql特性:
请注意,由于Prometheus中的增加()实现细节,上面的查询返回的“正常运行时间”值可能低于预期--它忽略了在方括号中指定的查找后窗口(上面的查询中的1m
)之前的最后一个原始示例与查找窗口中的第一个原始示例之间的计数器增量。根据这个设计博士的说法,这个问题最终将得到解决。
同时,可以使用VictoriaMetrics -一种类似Prometheus的替代监视解决方案(我是VictoriaMetrics的核心开发人员),它提供增加()功能,不存在上述问题。
https://stackoverflow.com/questions/73400263
复制相似问题