PromQL 从入门到精通之间的运算。首先来解释一下各个 运算符的行为。 and vector1 and vector2,其结果是一个由vector1的元素组成的向量,对于这些元素,vector2中 存在着完全匹配的标签集,其他元素被删除。metric的名称和值从左边的向量转移过来。 用于什么场景?先经过 vector1 做过滤得到一批监控数据,可能里边有一些是不想要的,可以 用 and 操作符,再加一个条件,用另一个 总大小,磁盘总大小小于500GB,才适用磁盘利用率大于70%这个规则。 or vector1 or vector2,其结果是一个向量,包含vector1的所有原始元素(标签集+值)以及 vector2中所有在vector1中没有匹配标签集的元素。 举一个例子,比如系统负载,有最近1分钟、最近5分钟、最近15分钟的负载,需求是:最近1分 钟的负载大于8或者最近5分钟的负载大于8,就告警,promql写法: system_load5{app="clickhouse"} > 8 unless vector1 unless vector2,结果是一个由vector1中的元素组成的向量,在vector2中没有完全匹 配标签集的元素,两个vector中的所有匹配元素都被删除。姑且可以理解为一个减法,vector1 - vector2。 举个例子,还是磁盘利用率的问题,对于超过1个T的大盘,剩余量小于300G就告警,promql0 码力 | 16 页 | 2.77 MB | 1 年前3
告警OnCall事件中心建设方法白皮书
是一个问题,只是时间戳不同,这样的两个 event,就可以收敛为一个 alert。 从实现上来说,告警策略(也称告警规则)+ 指标标签集的哈希值,可以作为 alert 的唯一标识。比如 刚才的例子,告警策略的 ID 假设为 32,标签集是:[“name=cpu_usage_idle”, “host=host1”], 这两个时间戳产生的告警事件,哈希值都是一样的。 计算方法是:0 码力 | 23 页 | 1.75 MB | 1 年前3
共 2 条
- 1













