如何用Prometheus查询过去24小时每小时告警发送总量并在控制台获取
解决Prometheus查询过去24小时每小时告警总数的问题
嘿,我明白你想要的是能直接在Prometheus控制台拿到按小时聚合的告警统计,方便复制到Excel里——这其实只需要调整一下PromQL的写法就行!
正确的PromQL查询语句
你需要结合聚合函数和范围步长来实现按小时分组统计,根据你的告警指标类型选对应的语句:
# 若你的alerts是gauge类型(比如记录每个时刻的告警数量) sum_over_time(alerts[1h])[24h:1h] # 若你的alerts是counter类型(每次发送告警就递增的计数器) increase(alerts[1h])[24h:1h]
语句细节解释
sum_over_time(alerts[1h]):计算每1小时窗口内alerts指标的总和,适合统计这段时间内的总告警数(适配gauge类型指标)。increase(alerts[1h]):如果alerts是计数器,这个函数会算出1小时内的指标增量,正好对应这段时间新增的告警数量,更贴合“每小时发送的告警总数”的需求。[24h:1h]:指定查询过去24小时的数据,并且每1小时输出一个结果点——这样你就能得到整整24条按小时对齐的统计数据。
在控制台获取可复制的数据
查询执行后,别盯着图表看,切换到下方的Table视图(Prometheus UI里图表区域有个"Table"选项卡)。这里会显示每一行的时间戳和对应的告警总数,你可以直接选中整个表格内容,复制后粘贴到Excel里,完美适配!
小提示
如果你的告警指标来自Alertmanager,建议用内置的alertmanager_alerts_sent_total指标替代alerts,它是标准的counter类型,记录了发送的告警总数,用increase(alertmanager_alerts_sent_total[1h])[24h:1h]就能准确统计每小时发送的告警量。
内容的提问来源于stack exchange,提问作者Dinesh KR
相关产品推荐
相关产品推荐

