在我的应用程序中,我为每个国家的websocket ping时间设置了直方图,每个国家一个直方图 . 在Grafana中,我通过以下查询得到了我最感兴趣的几个国家/地区的平均ping时间图
rate(country_ping_sum{country=~"AU|NZ|CA|GB|US",instance="$instance"}[15m]) / rate(country_ping_count{country=~"AU|NZ|CA|GB|US",instance="$instance"}[15m])
这非常有效 . 我得到了每个国家的图表 . 现在我想在同一个图表中添加所有其他国家/地区的平均值 .
avg(rate(country_ping_sum{country!~"AU|NZ|CA|GB|US",instance="$instance"}[15m]) / rate(country_ping_count{country!~"AU|NZ|CA|GB|US",instance="$instance"}[15m]))
这失败了 . 当我在Prometheus控制台中的Prometheus查询中尝试查询时,我得到一个NaN值 . 如果我采用相同的查询并删除avg()函数,那么我会获得每个匹配国家/地区的列表,其中一些具有值,一些具有NaN . 许多国家的金额和金额均为0 . 显然,那些划分为0的那些特定国家的NaN相当于NaN .
所以我的问题是,如何在传递给avg()之前过滤出NaN值?
1 回答
你有效地取平均值,这通常是不正确的 .
而是每个
rate
的sum
,然后除以得到整体平均值 .