Prometheus定义告警规则

groups:
- name: mysql_exporter
  rules:
  - alert: MySQL Down
    expr: mysql_up==0
    for: 1m
    labels:
      job: "{{$labels.job}}"
      group: "{{$labels.group}}"
      project: "{{$labels.project}}"
      env: "{{$labels.env}}"
      instance: "{{$labels.instance}}"
      hostIp: "{{$labels.hostIp}}"
      target: "{{$labels.target}}"
      level: 4
      threshold_duration: "1分钟"
    annotations:
      role: "{{$labels.role}}"


  - alert: MySQL服务已重启
    expr: mysql_global_status_uptime < 60
    labels:
      job: "{{$labels.job}}"
      group: "{{$labels.group}}"
      project: "{{$labels.project}}"
      env: "{{$labels.env}}"
      instance: "{{$labels.instance}}"
      hostIp: "{{$labels.hostIp}}"
      target: "{{$labels.target}}"
      level: 3
    annotations:
      role: "{{$labels.role}}"

在告警规则文件中,我们可以将一组相关的规则设置定义在一个group下。在每一个group中我们可以定义多个告警规则(rule)。一条告警规则主要由以下几部分组成:

  • alert:告警规则的名称。
  • expr:基于PromQL表达式告警触发条件,用于计算是否有时间序列满足该条件。
  • for:评估等待时间,可选参数。用于表示只有当触发条件持续一段时间后才发送告警,在等待期间新产生告警的状态为pending。
  • labels:自定义标签,允许用户指定要附加到告警上的一组附加标签。
  • annotations:用于指定一组附加信息,比如用于描述告警详细信息的文字等,annotations的内容在告警产生时会一同作为参数发送到Alertmanager。

你可能感兴趣的:(监控,prometheus,mysql,数据库)