首页 > 解决方案 > prometheus 将一个 NaN 值结果求和为 NaN。如何避免?

问题描述

我在 prometheus 中有以下指标:它按秒计算 memcached 命令:

sum (irate (memcached_commands_total{instance="memcached-instance"}[5m])) by (command)

结果:

{command="delete"}  0
{command="flush"}   0
{command="get"} 62.733333333333334
{command="incr"}    0
{command="set"} 93.43333333333334
{command="touch"}   NaN
{command="cas"} 0
{command="decr"}    0

我想按秒计算命令(不同命令没有单独的速率)。我尝试了以下公式:

sum (irate (memcached_commands_total{instance="memcached-instance"}[5m]))

但结果是:

{}  NaN

我预计大约 155,但它是 NaN。我想这是 command="touch" 的罪魁祸首。可以从总和中排除 NaN 吗?

标签: monitoringprometheus

解决方案


我已经想通了:

sum (irate (memcached_commands_total{instance="memcached-instance"}[5m]) > 0)

返回正确的数字。>0成功了。


推荐阅读