包括NaN值的普罗米修斯直方图和平均集

时间:2016-12-13 21:06:36

标签: grafana prometheus

在我的应用程序中,我为每个国家的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。

所以我的问题是,如何在传递给avg()之前过滤出NaN值?

1 个答案:

答案 0 :(得分:6)

你有效地取平均值,这通常是不正确的。

而是每个sum执行rate,然后除以得到总体平均值。