问题标签 [promql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
15383 浏览

timestamp - 带有时间戳的 Prometheus 指标

当我从 prometheus 查询指标时,我只得到查询时的时间戳。

例如,如果我这样查询数据,

http://localhost:9090/api/v1/query?query=go_memstats_buck_hash_sys_bytes

然后我得到了如下回复。

但在图表视图中,我可以看到如下图。这意味着我可以使用 prometheus 的时间戳查询数据。

在此处输入图像描述

我想知道如何用普罗米修斯的时间戳查询指标。

0 投票
1 回答
7194 浏览

monitoring - 在 Prometheus 中获取两个自定义时间戳之间的增量

我有一个名为device_number. 我想要的是显示现在和一天/一周/一个月等之前的价值差异。这意味着用两个不同的时间戳减去两个值。环顾四周,我没有找到任何有关如何操作的有用文档。

我会做但不起作用的事情是:

0 投票
0 回答
470 浏览

prometheus - Prometheus 如何计算过去 24 小时的平均值?

'vip_front_onload_duration[24h] 指定间隔'有 3 个点,我想计算这 3 个点的总和的平均值。

avg_over_time(vip_front_onload_duration{pageid=~"pay.xxx.com/pay.html"}[24h])

结果是

这个表达式 Avg_over_time(vip_front_onload_duration{pageid=~"pay.xxx.com/pay.html"}[24h]) 分别计算 'quantine='0.5|0.9|0.99'' 的平均值,我想获得平均值这三个指标的总和。

0 投票
1 回答
3786 浏览

prometheus - 如何使用 PromQL 的 hour() 函数?

我正在尝试在 Prometheus 的 alert.rules 文件中设置一个仅在特定时间段内触发的警报。我已经在 expr-tag 中测试了下面没有时间限制的代码块,它工作得非常好。
正如PromQL 文档:hour()状态,hour()根据当前的 UTC 返回一个介于 0 和 23 之间的值。

但是在这里,不会触发任何警报通知。有谁知道,为什么什么都没有被解雇,我该如何解决?

编辑:我已经解决了。我不明白为什么我必须像我这样做的方式那样做,但以下工作:
替换and hour() > 5 and hour() < 22and ON() hour() > 5 < 22

0 投票
1 回答
235 浏览

kubernetes - Kubernetes (K8s) - 在一段时间内未创建新容器时从 Prometheus/Grafana 获取警报

我有一个系统,其中每小时创建一个容器,并且我想在 Prometheus 或 Grafana 在一段时间内未创建容器时收到警报。无论如何,如果容器数量较少,是否可以获取最后一个说 X-hr 中创建的容器数量并发送警报?容器有一个名称模板,如:2019-month-date-hour
例如:2019-5-11-23

我尝试使用此查询来获取一个月内创建的容器数,count(count(container_last_seen{container_name=~"2019-5.*", namespace=$namespace}) by (container_name))但在一段时间内无法在此查询上设置 grafana 警报。

0 投票
0 回答
1107 浏览

grafana - `label_replace` 引入的基于过滤器向量的新标签

在 Prometheus 中,我试图将多个 http 请求行合并到使用label_replace.

我写的查询是:

label_replace(http_requests_total, "class", "$1", "handler", "([a-zA-Z0-9]+)Controller.*").

这可以正常工作并将class标签添加到向量:“AAAA”,“BBBB”等。此时我想删除某些类,例如空和BBBB

如何使用以下方法进一步过滤向量{class~="BBBBB"}

label_replace(http_requests_total, "class", "", "handler", "([a-zA-Z0-9]+)Controller.*"){class~="BBBBB"}

当我尝试这样做时,Prometheus 显示错误。

0 投票
1 回答
970 浏览

prometheus - 普罗米修斯翻滚窗口聚合

我想有来自特定时间范围的聚合。例如每小时,每天,但每小时从例如 09:00-10:00(翻滚窗口),而不是 1 小时前(跳跃窗口)。

如果我们可以减去由可变时间偏移的计数器,那将是可能的,例如:

x_count offset (minutes()m) - x_count offset ((minutes()+60)m)但 offset 似乎没有评估函数。

关于如何做到这一点的建议?

0 投票
1 回答
769 浏览

grafana - PromQL 查询变量不返回数据但在硬编码时工作

我遇到了一个问题,CPU 显示高于 100%,解决方案是将它除以可用 CPU 的数量。

以下在仪表板上工作(使用 [ORIGINAL QUERY] / sum(machine_cpu_cores)):

在图表上,以下将在[ORIGINAL QUERY] / sum(machine_cpu_cores)) 时不返回任何数据:

但是,在硬编码值 ( [ORIGINAL QUERY] / 12) 时,以下内容将返回预期数据:

我在这里想念什么?

0 投票
1 回答
775 浏览

influxdb - 将 InfluxDB 查询转换为 PromQL

我正在尝试将查询从 InfluxDB Query 重写为 PromQL:

有人能帮忙吗?

0 投票
1 回答
2026 浏览

grafana - Prometheus 的简单累积增量

我有一个应用程序,它在接收到特定的 HTTP 请求时增加 Prometheus 计数器。该应用程序在 Kubernetes 中运行,具有多个实例并每天重新部署多次。使用该查询http_requests_total{method="POST",path="/resource/aaa",statusClass="2XX"}会生成一个图表,按预期显示每个实例的累积请求计数。

我想创建一个 Grafana 图表,显示过去 7 天收到的请求的累积频率。

我的第一个想法是用于increase(...[7d])考虑从 7 天窗口之外开始的任何指标(如显示的图像中所示),然后sum是这些值。

我已经意识到sum(increase(http_requests_total{method="POST",path="/resource/aaa",statusClass="2XX"}[7d]))实际上确实给出了时间点的正确答案。但是,结果图并不完全符合要求,因为组件increase(...) 值在一周内增加/减少。

我将如何创建一个图表来显示过去 7 天内这些指标的累计增长总和?例如,给定以下简化数据

如果我要查看第 2 天到第 8 天的图表,我希望图表呈现如下线条,

其中d0表示图中的初始值

谢谢