在普罗米修斯查询的右侧使用指标
Using metric in right hand side of prometheus query
我正在使用 prometheus 和 grafana 来监控一些服务器。我公开的指标之一称为 recent_tables
,它包含在过去 15 分钟内写入 sql table 的资产数量(机器自动 post 到sql)。它的标签是 table
、job
和 status_code
。我还有指标 online_assets
,它包含在线资产的数量。它的标签是 cluster_id
、db_host
和 job
。
我正在尝试针对最近 < 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
这是维度不匹配的原因,但可能有更简洁的方法。
我正在使用 prometheus 和 grafana 来监控一些服务器。我公开的指标之一称为 recent_tables
,它包含在过去 15 分钟内写入 sql table 的资产数量(机器自动 post 到sql)。它的标签是 table
、job
和 status_code
。我还有指标 online_assets
,它包含在线资产的数量。它的标签是 cluster_id
、db_host
和 job
。
我正在尝试针对最近 < 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
这是维度不匹配的原因,但可能有更简洁的方法。