prometheus告警策略介绍(二)

韵味老鸟 2024-07-04 17:49:55

prometheus 告警策略介绍 (二)

#表达式

PromQL 内置函数

absent 判断指标名称或标签是否有值

absent(v instant-vector)

有值:不返回数据

​ 没有值:可能返回指标名称,值返回 1

# 指标名称存在数据absent(up) ==> no data,指标名称存在,不返回数据# 指标名称和标签名称值都存在数据absent(up{job="prometheus"}) ==> no data,指标名称和标签名称值都存在,不返回数据# 指标名称和标签名称的值对应不上,即没有数据absent(up{job="不存在的值"}) ==> {job="不存在的值"} = 1,返回标签和值# 指标名称不存在absent(nonexistent{job="myjob"}) ==> {job="myjob"} = 1# 正则匹配的instance不作为返回的labels的一部分absent(nonexistent{job="myjob",instance=~".*"}) ==> {job="myjob"} = 1# sum 函数返回的时间序列不带有标签,且没有样本数据absent(sum(nonexistent{job="myjob"})) ==> {} = 1

absent(up{job="alertmanager"})

absent(up{job="apiserver"} == 1)

判断是否存在,存在则返回空,不存在返回1,即产生告警

absent()

absent(v instant-vector) 如果向量有元素,则返回一个空向量;如果向量没有元素,则返回值为 1。

设置如下告警表达式:absent(up{job="node"} == 1)

由于up{job="node"} 不存在或值不为1,则告警表达式的值为1 产生告警

#指标

#up函数指标

对于被Prometheus监控的服务器,咱们都有一个up指标,能够晓得该服务是否在线。

up == 0 能够工作服务下线了。

up == 1 能够工作服务在线。

expr: up == 0 # 表达式, 执行后果为true: 示意须要告警

#返回1表示正常

#没有异常返回为空

0 阅读:0