普罗米修斯小于最大值表达式
Prometheus less than max value expression
我们将应用程序的软件版本存储在名为 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 表达式,对于应用程序版本低于我们为该应用程序存储的最大版本的实例,该表达式 returns 为真,告诉我们该实例为真。这个用例:我们希望表达式驱动一个警报规则,告诉我们我们是否有一个实例 运行 一个软件的旧版本。
在上面的例子中,我们想要一个表达式,在计算时,returns像这样
{application="foo", instance="host-2} True
我们已经能够创建一个表达式来计算每个应用程序的最大软件版本,通过 运行 max(app_software_version) by(application)
我们得到
{application="foo"} 3186
{application="bar"} 279
不幸的是,我们无法成功地将其构建到表达式中,从而给出我们正在寻找的结果。
尝试以下查询:
app_software_version < on(application) group_left max(app_software_version) by(application)
它使用 many-to-one join 将左侧的每个系列与右侧每个 application
标签的最大值进行比较。
我们将应用程序的软件版本存储在名为 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 表达式,对于应用程序版本低于我们为该应用程序存储的最大版本的实例,该表达式 returns 为真,告诉我们该实例为真。这个用例:我们希望表达式驱动一个警报规则,告诉我们我们是否有一个实例 运行 一个软件的旧版本。
在上面的例子中,我们想要一个表达式,在计算时,returns像这样
{application="foo", instance="host-2} True
我们已经能够创建一个表达式来计算每个应用程序的最大软件版本,通过 运行 max(app_software_version) by(application)
我们得到
{application="foo"} 3186
{application="bar"} 279
不幸的是,我们无法成功地将其构建到表达式中,从而给出我们正在寻找的结果。
尝试以下查询:
app_software_version < on(application) group_left max(app_software_version) by(application)
它使用 many-to-one join 将左侧的每个系列与右侧每个 application
标签的最大值进行比较。