标签: promql

获取一段时间内的总请求数

我需要在Grafana中显示一个面板,其中包含在右上角选择的时间段内的请求数.

为此,我需要在这里解决2个问题,我将在这里问prometheus问题和另一个链接中的Grafana问题.

如果我有一个计数器http_requests_total,我如何构建一个查询来获取一个整数,其中包含一段时间内的请求总数(例如:24小时)?

prometheus promql

33
推荐指数
5
解决办法
2万
查看次数

省略系列结果 PromQL 中的标签

假设我编写一个像这样的基本 PromQL 查询

询问: kube_deployment_spec_replicas{}

结果:

kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",instance="myinstance",job="myjob",namespace="default",pod="mypod",service="myservice"}
Run Code Online (Sandbox Code Playgroud)

有没有一种干净的方法可以从结果时间序列中省略instance和?pod

期望:

kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",job="myjob",namespace="default",service="myservice"}
Run Code Online (Sandbox Code Playgroud)

prometheus promql prometheus-operator kube-state-metrics

18
推荐指数
2
解决办法
3万
查看次数

所有可用指标的 Prometheus 端点

我很好奇普罗米修斯的工作原理。使用 Prometheus 界面,我可以看到一个下拉列表,我认为其中包含所有可用的指标。但是,我无法访问列出所有抓取的指标的指标端点。该http://targethost:9090/metrics端点只显示有关普罗米修斯服务器本身的指标。是否可以访问列出所有可用指标的类似端点。我可以基于以下执行查询,{__name__=~".+"}但我更愿意避免使用此选项。也许我还应该补充一点,访问目标部分中列出的端点对我不起作用,因为“无法建立连接”。

prometheus promql

16
推荐指数
1
解决办法
8828
查看次数

如何将零值(向量(0)与 PromQL 中的指标值合并

我正在使用flexlm_exporter将许可证使用情况导出到 Prometheus,并从 Prometheus 导出到自定义服务(不是 Grafana)。

如您所知,普罗米修斯隐藏了缺失的值。

但是,我的指标值中需要这些缺失值,因此我将其添加到我的舞会查询中or vector(0)

例如:

flexlm_feature_used_users{app="vendor_lic-server01",name="Temp"} or vector(0)
Run Code Online (Sandbox Code Playgroud)

此查询添加一个值为零的空指标。

我的问题是是否有办法将零向量与每个度量值合并?

编辑:

我需要分组,至少对于用户和名称标签,所以向量(0)可能不是这里的最佳选择? 具有缺失值和零向量的特定用户的示例查询

我在不同的 StackOverflow 线程中尝试了多种解决方案,但是没有任何效果。

请协助。

monitoring prometheus promql

16
推荐指数
2
解决办法
4万
查看次数

PromQL if/else 类似表达式

我正在尝试使用高斯的复活节算法在 PromQL 中计算复活节(我需要忽略公共假期的一些警报规则)。

我可以计算日期,但我在月份方面遇到问题,因为我需要类似 if/else 表达式的东西。如果东部是四月,我的记录规则 easter_sunday_in_april 返回 1;如果东部是三月,则返回 0。

(如何)我可以用 PromQL 表达以下内容吗?

if(easter_sunday_in_april > 0)
    return 4
else
    return 3
Run Code Online (Sandbox Code Playgroud)

为了完整起见,我在这里附上我的录音规则:

- record: a
    expr: year(europe_time) % 4

  - record: b
    expr: year(europe_time) % 7

  - record: c
    expr: year(europe_time) % 19

  - record: d
    expr: (19*c + 24) % 30

  - record: e
    expr: (2*a + 4*b + 6*d + 5) % 7

  - record: f
    expr: floor((c + 11*d + 22*e)/451)

  - record: easter_sunday_day_of_month_temp
    expr: 22 …
Run Code Online (Sandbox Code Playgroud)

prometheus promql

15
推荐指数
1
解决办法
3万
查看次数

如何在Prometheus查询中对标签进行分组?

如果我有一个包含以下标签的指标:

my_metric{group="group a"}  100
my_metric{group="group b"}  100
my_metric{group="group c"}  100
my_metric{group="misc group a"}  1
my_metric{group="misc group b"}  2
my_metric{group="misc group c"}  1
my_metric{group="misc group d"}  1
Run Code Online (Sandbox Code Playgroud)

有可能进行查询,甚至label_replace将"misc"组合在一起吗?

(我意识到公制基数需要改进,我已经更新了应用程序来修复它.但是如果我想通过稍后的查询来修复指标,我就会留下这个问题)

prometheus promql

14
推荐指数
3
解决办法
2万
查看次数

普罗米修斯的简单累积增加

我有一个应用程序,当它收到一个特定的 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 天内这些指标增加的累积总和?例如,给定以下简化数据

| Day | # Requests |
|-----|------------|
| 1   | 10         |
| 2   | 5          |
| 3   | 15         |
| 4   | 10         |
| 5   | 20         |
| 6   | 5          |
| 7   | 5          |
| …
Run Code Online (Sandbox Code Playgroud)

grafana prometheus promql

13
推荐指数
1
解决办法
1563
查看次数

如何在查询中使用选定的时间段?

我正在使用Grafana和Prometheus,我想构建一个查询,该查询取决于在屏幕右上角选择的选定时间段.

在查询字段中是否有任何变量(或类似的东西)?

换句话说,如果我选择24小时,我想在查询中使用该数据.

grafana prometheus promql grafana-templating

12
推荐指数
2
解决办法
6628
查看次数

Prometheus 在计算两个指标的比率时不返回任何数据

我想计算两个指标的比率,但我没有得到任何数据...

我有一些指标,例如:

fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Used"}   50.0
fs_bytes{filesystem="/var",instance="localhost:9108",job="graphite",metric="Total"}   100.0
Run Code Online (Sandbox Code Playgroud)

当我尝试执行任何操作(设备、乘法、加法、减法)时,例如:

fs_bytes{instance="localhost:9108",metric="Used"} / fs_bytes{instance="localhost:9108",metric="Total"}
Run Code Online (Sandbox Code Playgroud)

普罗米修斯返回:

no data
Run Code Online (Sandbox Code Playgroud)

当我在 Prometheus 表达式浏览器中单独查询每个指标时,我确实得到了指标值。

怎么了?

prometheus promql

12
推荐指数
1
解决办法
8557
查看次数

使用 Prometheus 和 Grafana 将秒转换为 HH:MM:SS

我试图将系统正常运行时间显示为 DD-HH-MM-SS 格式,使用通用代码执行此操作不会有问题,但我仅使用 Prometheus (PromQL) 和 Grafana 执行此操作,这是 PromQL 查询:

time()-process_start_time_seconds{instance="INSTANCE",job="JOB"}

我实现了我想要的基本输出,它向我显示了进程的生命周期。上面查询的输出给出了以秒为单位的时间(例如68003),并将其转换为更大的时间单位(分钟、小时等),但采用十进制形式:

小数正常运行时间

小数点后的89指的是一个小时的89%,约53分钟这并不是一种真正“直观”的显示时间的方式,我希望它能显示该时间的正常 DD:HH:MM:SS 演示,如以下来自一个简单在线工具的屏幕截图,该工具将秒转换为时间:

正常运行时间

有没有办法仅使用 PromQL 和 Grafana 配置来实现它?

monitoring grafana prometheus promql

12
推荐指数
1
解决办法
1万
查看次数