prometheus告警功能(Prometheus 告警规则配置)
告警规则(alert.rules)是什么
alert.rule即告警规则 ,在Prometheus中 ,通过用户自定义的条件进行告警,自定义条件可以由PromQL表达式定义 ,当满足告警条件后 ,Prometheus会通过web界面进行告警 ,如果同时有部署Alertmanager ,则可利用Alertmanager进行更为复杂的通知 ,如钉钉 、微信 、飞书等个性化渠道进行通知 。
配置解析
alert.rules风格跟yaml风格类似
groups: - name: example # 组名称 rules: # 告警规则 - alert: HighErrorRate # 告警规则名称 expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5 # 达成条件 for: 10m # 评估时间 可选参数 labels: # 自定义标签 severity: page annotations: # 描述 summary: High request latency description: description infoalert.rules配置调整后 ,同时需要在prometheus.yml中的rule_files进行配置才能让配置的规则生效 。
prometheus.yml文件的相关配置如下
rule_files: - xxx_rules.yaml变量支持
在annotations的summary与description都是支持模版变量的 ,形式如下
annotations: summary: "High request latency on {{ $labels.instance }}" description: "{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)"其中模版变量支持两种类型 ,$labels.<labelname>与$value 。$labels.<labelname>变量支持告警实例指定标签的值 ,$value则是获取当前PromQL计算的变量(expr里表达式的值) 。
示例
同样以邮件发送为例,如果在一分钟内出现发送失败 ,或者发送错误就触发告警 ,并将客户名称显示出来 。
告警规则配置
告警规则配置email.yaml
groups: - name: email rules: - alert: email_send_error expr: rate(email_send_counter_total{status="error"}[1m]) > 0 for: 1m labels: severity: critical annotations: summary: "{{ $labels.client }} email send success" description: "client {{ $labels.client }} email send success total {{ $value }}" - alert: email_send_fail expr: rate(email_send_counter_total{status="fail"}[1m]) > 0 for: 1m labels: severity: critical annotations: summary: "{{ $labels.client }} email send fail" description: "client {{ $labels.client }} email send error total {{ $value }}"触发告警
短时间内调用api /email_count?client=aaa&status=fail
告警展示
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!