global:
 # 用于邮件通知的智能主机和SMTP发送器。
  smtp_smarthost: 'localhost:25'
  smtp_from: 'alertmanager@example.org'
# 每个传入警报进入的根路由
route:
  # 根路由不能有任何匹配器,因为它是所有警报的入口点。它需要配置一个接收器,以便将不匹配任何子路由的警报发送给某人。 
  receiver: 'team-X-mails'
  #将传入警报分组在一起的标签。例如,
  #多个警报进入cluster=A和alertname=LatencyHigh被批入单个组。
  #这有效地完全禁用聚合,按原样传递所有警报。这可能不是您想要的,除非您的警报音量非常低,或者您的上游通知系统执行自己的分组。例如:group_by:[…]

  group_by: ['alertname', 'cluster']

  # 当传入警报创建新的警报组时,至少等待'group_wait'来发送初始通知。
  # 目的是为啦将 在等待时间内触发的新警报进行一个批处理,以便通过一个报警信息来发送多个警报。
  group_wait: 30s
 
  # 当发送第一个通知时,等待'group_interval'发送下一批新的通知,并开始为该组触发。
  group_interval: 5m
  # 如果一个警告已经成功发送,等待'repeat_interval'重新发送它们。
  repeat_interval: 3h  

  # 上面所有的属性被所有的子路由继承,并且可以覆盖在每个子路由上。

  # 子路径树

  routes:
  # 该路由对警报标签执行正则表达式匹配,以捕获与服务列表相关的警报 
services.
  - match_re:
      service: ^(foo1|foo2|baz)$
    receiver: team-X-mails
	# 服务有一个用于紧急警报的子路由,任何不匹配的警报,例如
    routes:
    - match:
        severity: critical
      receiver: team-X-pager

  - match:
      service: files
    receiver: team-Y-mails

    routes:
    - match:
        severity: critical
      receiver: team-Y-pager
  # 该路由处理来自标签值为“service: database”的服务的所有警报。如果没有团队来处理它,它默认为team-DB-pager。
  - match:
      service: database
    receiver: team-DB-pager
    # Also group alerts by affected database.
    group_by: [alertname, cluster, database]

    routes:
    - match:
        owner: team-X
      receiver: team-X-pager

    - match:
        owner: team-Y
      receiver: team-Y-pager

# 抑制规则允许在另一个警报触发时静音一组警报。
# 如果相同的警报已经很严重,我们使用这个来静音任何警告级别的通知。
inhibit_rules:
- source_matchers:
    - severity="critical"
  # 如果上面定义的抑制规则生效啦,则equal中列出的标签名只要与源目标有相同的,则其他报警源打上了“severity="warning"该标签的警报就不发送告警
  target_matchers:
    - severity="warning"
  equal: ['alertname']

# 官网还有下面这句提示,但是我无法理解,若有人可以理解,望告知
#如果“equal”中列出的所有标签名称在源和目标警报中都缺失,则抑制规则将应用!

# 这是配置不同的告警接收,对应的邮箱地址
receivers:
- name: 'team-X-mails'
  email_configs:
  - to: 'team-X+alerts@example.org, team-Y+alerts@example.org'

- name: 'team-X-pager'
  email_configs:
  - to: 'team-X+alerts-critical@example.org'
  pagerduty_configs:
  - routing_key: <team-X-key>

- name: 'team-Y-mails'
  email_configs:
  - to: 'team-Y+alerts@example.org'

- name: 'team-Y-pager'
  pagerduty_configs
  - routing_key: <team-Y-key>

- name: 'team-DB-pager'
  
  - routing_key: <team-DB-key>