monitoring - 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 吗?
解决方案
我已经想通了:
sum (irate (memcached_commands_total{instance="memcached-instance"}[5m]) > 0)
返回正确的数字。>0
成功了。
推荐阅读
- tcl - TclOO : 从另一个类获取基础对象
- javascript - 如何在特定位置和移位后从数组中移动项目?
- python - newsletter3k,我做错了什么吗,作者功能没有在新闻文章中选择作者
- c++ - 正在创建一个 uniform_int_distribution
对象贵吗? - android - Android 中的 Flutter 全屏闪屏(原生)
- javascript - 在条件下执行不同的功能
- apache-kafka - Kafka KeyValueStore - 删除方法不起作用
- c# - SMTP邮件主题编码字符问题
- javascript - 如何在参数内添加逗号
- python-3.x - 解析派生类中的私有属性