在 Prometheus 查询中选择最大的标签值

Posted

技术标签:

【中文标题】在 Prometheus 查询中选择最大的标签值【英文标题】:Select largest label value in Prometheus query 【发布时间】:2018-09-15 05:30:30 【问题描述】:

我设置了一个 Prometheus 和 Grafana 实例,我想在其中查询一个名为“upsAdvBatteryRecommendedReplaceDate”的特定属性。

Prometheus 在查询此属性时成功返回响应,如下所示:

但是,结果包含两个时间序列(一个是 upsAdvBatteryRecommendedReplaceDate="12/11/2021",另一个是 upsAdvBatteryRecommendedReplaceDate="12/10/2021")。

一旦我在 Grafana 中设置了一个显示 upsAdvBatteryRecommendedReplaceDate 查询的 upsAdvBatteryRecommendedReplaceDate 标签的单一统计数据,这就会成为一个问题。这将导致“多系列错误”,如下所示:

如果我更改它,它会按预期工作 Grafana 时间范围到例如在这里可以看到“最后 15 分钟”:

所以我的问题是:有没有办法只选择/提取具有“upsAdvBatteryRecommendedReplaceDate”的最新/最新标签值的时间序列,以便在这种情况下,只有 upsAdvBatteryRecommendedReplaceDate="12/11 /2021”出现了吗?

谢谢!

【问题讨论】:

【参考方案1】:

也许这也可以帮助其他人:我通过简单地在 grafana 仪表板中选中 singlestat 的“Instant”复选框来解决它。

【讨论】:

【参考方案2】:

Prometheus 是一个处理数字的系统,“12/10/2021”是一个字符串而不是一个数字。如果您可以将数据公开为 unix 时间戳,那么您可以使用 max 聚合器来获取最高值。

【讨论】:

谢谢。我现在只需检查单统计的“即时”复选框即可使其工作。另外,这对我有帮助:docs.grafana.org/features/panels/singlestat/…

以上是关于在 Prometheus 查询中选择最大的标签值的主要内容,如果未能解决你的问题,请参考以下文章

如何查询 Prometheus 中所有具有特定标签值的时间序列?

使用 metric 值查询 prometheus 标签值

Prometheus 查询以计算唯一标签值

Prometheus 查询和区分大小写

将 MIB 变量标签连接到 Prometheus 中其他两个 MIB 变量的另一个查询结果

Prometheus-PQL