当前位置: 首页 > 知识库问答 >
问题:

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

那存
2023-03-14

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

濮阳繁
2023-03-14

你实际上是在取平均值,这通常是不正确的。

相反,对每个比率进行求和,然后除以得到总体平均值。

 类似资料:
  • 我必须从普罗米修斯指标创建可视化。我有一个计数器指标,我想显示一天中服务的总请求的摘要。当我们把石墨作为数据源时,我就是这样做的。 我看了一些文档,并尝试使用绘制了带有值的图表。 有人能帮我在普罗米修斯中找到一个等效的函数吗?

  • 我将我的GKE API服务器升级到1.6,并正在将节点升级到1.6,但遇到了一个障碍... 我有一个prometheus服务器(版本1.5.2),运行在一个由Kubernetes部署管理的pod中,其中两个节点运行版本1.5.4Kubelet,一个新节点运行版本1.6。 但普罗米修斯仍然得到401。 更新:就像乔丹所说的kubernetes认证问题。在这里看到新的、更集中的问题;https://s

  • 我正在使用带Spring靴2的SCDF。x metrics和SCDF metrics collector从我的Spring Boot应用程序收集指标。我真的不理解收集器关于聚合度量(aggregateMetrics)数据的逻辑。 当我获取为我的流收集的指标列表时,我只有以开头的指标,因此我只有平均值。我尝试了所有方法来查看其他指标,就像endpoint公开的指标一样。 我想我误解了指标的聚合方式。

  • 我试图在Spring Boot 2.0.0 .版本中使用Micrometer.io生成普罗米修斯指标 当我试图将列表的大小公开为Gauge时,它一直显示NaN。在留档中,它说; 你有责任对你用量规测量的状态对象保持强烈的引用。 我已经尝试了一些不同的方法,但我不能解决这个问题。这是我的代码和一些试验。 有人能帮忙解决这个问题吗?任何帮助都将不胜感激。

  • 我试图找到Grafana中所有URL的平均响应时间, 下面的查询没有返回任何数据,我在这里做错了什么? 数据通过千分尺收集。

  • 我要监控的应用程序为健康检查提供了一个apiendpoint,该endpoint使用json中的指标进行响应。例如: 我已经设置了Prometheus blackbox\u exporter,以监视此endpoint是否返回200 Ok,但理想情况下,我也希望获得这些指标。我知道instrumentation直接从应用程序导出这些数据。但是,由于应用程序已经在导出json对象中我想要的内容,我更希