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

如何绘制平均每天从普罗米修斯

孔欣荣
2023-03-14

我必须从普罗米修斯指标创建可视化。我有一个计数器指标http_request_counter,我想显示一天中服务的总请求的摘要。当我们把石墨作为数据源时,我就是这样做的。

alias(summarize(sumSeries(consolidateBy(nonNegativeDerivative(http_request_counter.count), 'sum')), '1d', 'sum', false), 'TPS per day')

我看了一些文档,并尝试使用increase(http\u requests\u total[24h])绘制了带有t-24h值的图表。

有人能帮我在普罗米修斯中找到一个等效的总结函数吗?

共有2个答案

柳弘方
2023-03-14

我仍然不确定你是想要每天的总请求还是每天的平均请求,后者的表达式如下:

avg_over_time(
  sum(rate(http_request_counter[5m])) by (method, some_other_label)[1d]
)

因为它是一个计数器,所以您需要应用rate来获得每秒向量,然后如果需要,使用sum在一些标签上的多个系列上进行聚合,最后在一天内求平均值。

王涵育
2023-03-14

你需要和(增加(http_requests_total[24h]))。它返回图表上每个点在过去24小时内的请求总数。默认情况下,Grafana从Prometheus中查询许多点,以便为图形的当前水平分辨率绘制平滑的图形。在Grafana中编辑图形时,可以使用min步选项调整图形上的点数。另一个选项是在外部查询中使用所需步骤的子查询:

last_over_time(sum(increase(http_requests_total[24h]))[1d:1d])

它将以一天的步幅返回连续线。这些步骤将在过去的一天内更改,例如,当天的步骤将包含前一天提出的请求数。可以使用负的偏移量删除此偏移:

last_over_time(sum(increase(http_requests_total[1d] offset -1d))[1d:1d])

不幸的是,这个查询不能在Prometheus中开箱即用,因为默认情况下它不接受负偏移。在启动Prometheus时,必须使用--enable-特性=promql-inex-off命令行标志来启用它们。幸运的是,MetricsQL默认支持负偏移。

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

  • 在我的应用程序中,我为每个国家的websocket ping时间设置了直方图,每个国家一个直方图。在Grafana中,我通过以下查询得到了几个我最感兴趣的国家的平均ping时间图 这非常有效。我得到了每个国家的图表。现在我想把所有其他国家的平均值加在同一张图表上。 这是失败的。当我在Prometheus控制台的Prometheus查询中尝试该查询时,我得到一个值NaN。如果我接受相同的查询并删除a

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

  • 我的各种docker容器导出prometheus度量,但是我们的prometheus安装只需要从一个endpoint提取所有度量。不幸的是,这是无法改变的。因此,我需要在一个点上聚合所有度量,从普罗米修斯安装可以刮取度量。 此外,如果这个程序或脚本能够提供关于如何处理由不同endpoint导出的相同度量的额外逻辑,那就太好了。例如,如果我只是将不同的度量站点连接在一起,Prometheus在解释度

  • 我有两个实例运行作业并向pushgateway发送仪表度量。 出于某种原因,普罗米修斯为一项工作和两个不同的实例绘制了一幅图。图如下: 问题是我做错了什么,如何让普罗米修斯为这些例子画出独立的连续情节? 我用的是python的prometheus_client。

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