在Prometheus查询的右侧使用度量

时间:2019-09-15 03:34:32

标签: grafana prometheus prometheus-alertmanager

我正在使用prometheus和grafana监视某些服务器。我公开的指标之一称为recent_tables,其中包含过去15分钟内已写入sql表的资产数量(计算机自动发布到sql)。它的标签是tablejobstatus_code。我还具有指标online_assets,该指标具有在线资产的数量。其标签为cluster_iddb_hostjob

我正尝试发出警报,以通知最近何时有<90%的在线资产已写入sql表。在编写警报之前,我试图在grafana中建立一个面板来填充数据,并最终将其转换为Alertmanager expr。以下查询不起作用,我也不明白为什么:

recent_tables < online_assets * 0.9

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

但是,以下查询有效:

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

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

1 个答案:

答案 0 :(得分:0)

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

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

这可以解决尺寸不匹配的问题,但可能会有更简洁的方法。