【发布时间】:2021-10-06 10:03:35
【问题描述】:
我们将应用程序的软件版本存储在名为 app_software_version 的 Prometheus 计量器中,这会产生如下所示的数据:
app_software_version{application="foo", instance="host-1", job="custom"} 3186
app_software_version{application="foo", instance="host-2", job="custom"} 3184
app_software_version{application="bar", instance="host-3", job="custom"} 279
app_software_version{application="bar", instance="host-4", job="custom"} 279
我们想要创建一个 PromQL 表达式,它为应用程序版本低于我们为该应用程序存储的最大版本的实例返回 True,告诉我们这是正确的实例。用例:我们希望表达式驱动一个警报规则,告诉我们是否有一个实例在运行旧版本的软件。
在上面的例子中,我们想要一个表达式,它在计算时会返回类似这样的结果
{application="foo", instance="host-2} True
我们已经能够创建一个表达式来计算每个应用程序的最大软件版本,通过运行 max(app_software_version) by(application) 我们得到
{application="foo"} 3186
{application="bar"} 279
很遗憾,我们未能成功地将其构建到一个表达式中,从而给出我们正在寻找的结果。
【问题讨论】:
标签: prometheus