在普罗米修斯查询的右侧使用指标

Using metric in right hand side of prometheus query

我正在使用 prometheus 和 grafana 来监控一些服务器。我公开的指标之一称为 recent_tables,它包含在过去 15 分钟内写入 sql table 的资产数量(机器自动 post 到sql)。它的标签是 tablejobstatus_code。我还有指标 online_assets,它包含在线资产的数量。它的标签是 cluster_iddb_hostjob

我正在尝试针对最近 < 90% 的在线资产写入 sql table 时发出警报。在我编写警报之前,我试图在 grafana 中获取一个面板来填充数据并最终将其转换为警报管理器 expr。以下查询不起作用,我不明白为什么:

recent_tables < online_assets * 0.9

sum(recent_tables) by (table) < online_assets * 0.9

但是,以下查询有效:

sum(recent_tables{table="<table>"}) - sum(online_assets)

我不想根据每个 table 发出警报(这可以通过 ansible 实现),但我想了解是否有办法从同一个向量中获取多个向量查询。

正如 Michael Doubez 所指出的,在进行查询时,标签尺寸不能不平衡。

我得到了以下结果: sum(recent_tables) by (table) - ignoring(table) group_left() sum(live_assets) * 0.9 < 0

这是维度不匹配的原因,但可能有更简洁的方法。