9c4adf
include:
091106
  - role.common.monitoring
091106
{%- if salt['grains.get']('include_secrets', True) %}
9c4adf
  - secrets.role.monitoring.alertmanager
9c4adf
{%- endif %}
9c4adf
9c4adf
profile:
9c4adf
  monitoring:
9c4adf
    prometheus:
9c4adf
      irc:
9c4adf
        irc_host: irc.ipv6.libera.chat
9c4adf
        irc_nickname: heroes-monitor
9c4adf
        irc_realname: openSUSE Alertmanager IRC Relay
9c4adf
        # secrets are in pillar/secrets/role/monitoring/alertmanager.sls 
9c4adf
        irc_channels:
9c4adf
          # these are channels the bot will pre-join to
9c4adf
          # note that the bot can also dynamically join channels alerts are sent to without them being listed here
9c4adf
          - name: '#opensuse-admin-alerts'
9c4adf
903212
prometheus:
903212
  wanted:
903212
    component:
6922ba
      - alertmanager
903212
  pkg:
903212
    component:
903212
      alertmanager:
903212
        config:
39bb87
          inhibit_rules:
39bb87
            - source_matchers:
39bb87
                - alertname="Node down"
39bb87
              target_matchers:
39bb87
                - alertname="Node away"
affcab
              equal:
affcab
                - instance
affcab
            - source_matchers:
affcab
                - alertname="Low disk space"
affcab
              target_matchers:
affcab
                - alertname="Low disk space predicted"
affcab
              equal:
affcab
                - instance
80a82c
            - source_matchers:
80a82c
                - alertname="Member aliases update failed due to too many removals"
80a82c
              target_matchers:
80a82c
                - alertname="Member aliases update failed"
80a82c
              equal:
80a82c
                - instance
edbeb3
          time_intervals:
edbeb3
            - name: update_window
edbeb3
              time_intervals:
edbeb3
                - times:
edbeb3
                  - start_time: 00:00
edbeb3
                    end_time: 05:00
39bb87
          receivers:
cd6106
            - name: opensuse  # dashboard only
39bb87
            - name: opensuse-irc
39bb87
              webhook_configs:
39bb87
                - url: http://ipv6-localhost:8008/opensuse-admin-alerts
39bb87
                  send_resolved: true
39bb87
            - name: opensuse-mail
39bb87
              email_configs:
39bb87
                - to: admin-auto@opensuse.org
39bb87
                  from: alertmanager@monitor.infra.opensuse.org
39bb87
                  require_tls: false
39bb87
                  smarthost: relay.infra.opensuse.org:25
39bb87
                  send_resolved: true
903212
          route:
903212
            group_by:
903212
              - alertname
edbeb3
            receiver: opensuse-irc  # default if no routes match
edbeb3
            routes:
edbeb3
              - matchers:
dfc485
                  - severity=~"none|info"
dfc485
                receiver: opensuse
dfc485
                continue: false
dfc485
              - matchers:
edbeb3
                  - monitor=opensuse
dfc485
                  - severity!=none
edbeb3
                receiver: opensuse-irc
edbeb3
                continue: true
edbeb3
              - matchers:
edbeb3
                  - monitor=opensuse
dfc485
                  - severity=critical
edbeb3
                receiver: opensuse-mail
edbeb3
                mute_time_intervals:
edbeb3
                  - update_window
a1b6d5
        environ:
a1b6d5
          environ_arg_name: ARGS  # SUSE package specific
a1b6d5
          args:
3a0c29
            cluster.advertise-address: '{{ grains['fqdn_ip6'][0] | ipwrap }}:9904'
a1b6d5
            cluster.listen-address: ''  # TODO: configure HA
388ce3
            web.external-url: http://monitor.infra.opensuse.org:9093
9c4adf
9c4adf
zypper:
9c4adf
  packages:
9c4adf
    alertmanager-irc-relay: {}