问题标签 [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 投票
4 回答
13281 浏览

prometheus - 在 Prometheus/PromQL 中合并/加入两个指标

我有两个不同的(但相关的指标)。

我的最终目标是在 Grafana 中拥有以下内容。我计划使用“即时”值和 Grafana 的表格可视化小部件来显示这些数据。

我应该使用什么查询/加入/重新标记来实现这一点?

先感谢您!:)

0 投票
1 回答
13629 浏览

grafana - Prometheus 使用 avg_over_time 与缺席

我们已经开始使用 prometheus 来监控我们的基础设施。一项服务配置了以下警报:

  • (缺席(up{job="service"}) 或 (up{job="service"} == 0)+1) == 1

这样,如果“up”为零或无法达到任何指标,我们就会收到警报。

现在我们想要一个显示服务“正常运行时间”的 grafana“单一统计”面板,但“缺席”不能与“avg_over_time”一起使用,有一个选项可以在我们的正常运行时间面板中包含“缺席”之类的内容吗?

0 投票
1 回答
7717 浏览

prometheus - Prometheus - 通过正则表达式聚合和重新标记

我目前有以下 Promql 查询,它允许我查询每个 K8S pod 使用的内存:

sum(container_memory_working_set_bytes{image!="",name=~"^k8s_.*"}) by (pod_name)

Pod 的名称后跟 K8S 定义的哈希:

这都属于同一个应用程序:weave-net

我想要的是聚合属于同一应用程序的所有 pod 的内存。

因此,查询将汇总所有weave-netpod 的内存并将结果放在名为weave. 比如结果会是:

代替

是否有可能这样做,如果可以,怎么做?

0 投票
1 回答
13980 浏览

grafana - 如何使用 Prometheus 和 collectd 导出器绘制 grafana 中的 cpu 使用情况?

promql 的新手,我正在尝试随着时间的推移绘制 cpu 使用情况,我发现以下示例获得了静态使用百分比,但我如何将其转换为 grafana 的速率?

我从https://github.com/Naugrimm/promql-examples得到了这个例子

0 投票
0 回答
551 浏览

grafana - 如何通过 prometheus promQL 中的某个列连接两个指标(用于 grafana 仪表板)

如何连接两个指标以将其放在 grafana 列的单行上?

我有两个指标:

部署{label="xyz", deploy_time="2019",job="deployments"}

metric1{app="abc", deploy_time="2019"}

如何deploy_time在 grafana 仪表板的 promQL 中加入这两者,它看起来像这样:

0 投票
1 回答
31141 浏览

prometheus - Prometheus 查询一个时间间隔下的总体平均值

如何找到时间间隔内指标的总体平均值?

avg(metric) = 总体平均值 ,但

avg_over_time(metrics[interval]) = 每个标签的平均值

avg( avg_over_time(metric[scrape interval]) ) 不会与(当数据不连续且分母值不同时)avg(metric) !!!!

给定一个场景,在一段时间内找到总体平均值的可能方法是什么。

例如:现在求平均响应时间,求过去一小时内触发的所有请求的平均响应时间(总体)。

数字将有助于通知最新升级的性能问题。

0 投票
2 回答
1699 浏览

grafana - 在 Prometheus 中显示标签出现次数大于 N 的系列表

在 Prometheus 中,给出了下面的指标定义,我如何为指标系列中排名前 5 位的重复设备呈现表格?

我想在 Grafana 中为上述标签呈现一个表格,以显示设备 1234 是所选时间段内的嘈杂设备。我尝试了 topk 运算符,但它呈现超过 3 个。(我在表中看到 100 行而不是 3 行) https://www.robustperception.io/graph-top-n-time-series-in-grafana声称支持格拉法纳的顶级。但我不明白如何使它适应一张桌子。

0 投票
1 回答
1090 浏览

kubernetes - 使用 PromQL 分组

我想通过将使用的内核数除以 CPU 限制(可分配的内核数)来计算实际的容器 CPU 使用率。因此,我得到了 4 个 pod 的两个不同指标:

  • 每个 pod 使用的核心数
  • 每个 pod 的可用核心数

我的问题:

我想获取每个容器的 CPU 使用率(已用内核数/可用内核数)。

我尝试了什么:

这两个查询中的每一个都返回我想要的内容:

  1. 每个 pod 当前使用的核心数:

(我使用 label_replace 是因为一个指标pod_name用作指标名称,而另一个用作指标名称pod

label_replace(sum(rate(container_cpu_usage_seconds_total{pod_name=~"rewe-bd-palantir-vernemq.*", container_name="vernemq"}[1m])) by (pod_name), "pod", "$1", "pod_name", "(.*)")

回复:https ://monosnap.com/direct/6EPuLF59HBJaYsAmKG6CM0fRPyUXDk

  1. 每个 pod 的可用核心数:

sum(kube_pod_container_resource_limits_cpu_cores{pod=~"rewe-bd-palantir-vernemq.*", container="vernemq", job="kubernetes-pods"}) by (pod)

回复:https ://monosnap.com/direct/dRBfitwcxHIrTRYDmYHwV5YkomYJjH

此查询不起作用(未返回任何数据点):

我的问题:

如何实现一个查询,返回每个 pod 的 CPU 使用率(已用内核数/可用内核数)?

0 投票
0 回答
683 浏览

prometheus - 当需要标量值时,PromQL 小数查询返回“null”

我有一个布尔度量(即样本只有整数01)称为my_boolean_metric. 它有各种标签,包括outcome范围在 values上的标签{"success", "failure"}。我正在尝试一个分数查询,它应该总是返回一个介于两者之间的浮点01

分子查询返回与my_boolean_metric给定标签匹配的时间序列数,或者0如果没有这样的时间序列。

(count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}) or (1 - absent(my_boolean_metric{app="abc", team=~"nirvana", instance=~"bar", outcome="success"})))

返回的值是介于两者之间的0整数n

分母查询返回与my_boolean_metric给定标签匹配的时间序列数,与分子查询不同,它不关心“结果”标签。

count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar"})

this 的值始终是整数n

以下分数查询返回null(即 Prometheus/Thanos UI 中的“未找到数据点”),即使每个单独测试的查询都返回一个整数。

(count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}) or (1 - absent(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}))) / count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar"})

以下带有硬编码分母的分数查询确实成功。

(count(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}) or (1 - absent(my_boolean_metric{app="abc", team=~"foo", instance=~"bar", outcome="success"}))) / 9

我的分数查询有什么问题?

0 投票
1 回答
1691 浏览

prometheus - 如何使用 `group_left` 语句执行 `count_over_time`?

我想知道基于特定标签在 Kubernetes 中创建的作业数量。以下是我想出的。由于某些间隔之间存在差距,我想随着时间的推移进行计数。

我在哪里放置范围矢量选择器?