Prometheus - undefined receiver \"null\" used in route

Viewed 2666

Why am I getting receiver null used in route? Commenting out the route related to null still produces the same error.

Any idea how to resolve this? Does the config look correct? It did work yesterday but I deleted everything and tried to reinstall and I get this error.

failed: provision alertmanager configuration: base config from Secret could not be parsed: undefined receiver \"null\" used in route

Also how can I have separate email for each alert? When it works it usually sends a groped alert. Can I just disable route section and have only receivers? Would that send alerts separately? group_by: ['...'] still sends by grouping..

  config:
    global:
      resolve_timeout: 5m
    route:
      group_by: ['job']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 30m
      receiver: 'null'
      routes:
      - match:
          alertname: Watchdog
        receiver: 'null'
    receivers:
    - name: 'null'
    route:
      group_by: ['...']
      receiver: 'email-alert'
    receivers:
    - name: 'email-alert'
      email_configs:
      - to: test@gmail.com
        from: test@gmail.com
        smarthost: postfix.test-internal:25
        require_tls: false

Here is the log entries:

level=info ts=2020-12-21T03:17:54.675369726Z caller=operator.go:1163 component=prometheusoperator msg="sync prometheus" key=monitoring/prometheus-kube-prometheus-prometheus
level=error ts=2020-12-21T03:17:54.678077463Z caller=klog.go:96 component=k8s_client_runtime func=ErrorDepth msg="Sync \"monitoring/prometheus-kube-prometheus-alertmanager\" failed: provision alertmanager configuration: base config from Secret could not be parsed: undefined receiver \"null\" used in route"
level=info ts=2020-12-21T03:17:57.297131904Z caller=operator.go:661 component=alertmanageroperator msg="sync alertmanager" key=monitoring/prometheus-kube-prometheus-alertmanager
level=info ts=2020-12-21T03:17:57.29721675Z caller=operator.go:1163 component=prometheusoperator msg="sync prometheus" key=monitoring/prometheus-kube-prometheus-prometheus
level=error ts=2020-12-21T03:17:57.301610335Z caller=klog.go:96 component=k8s_client_runtime func=ErrorDepth msg="Sync \"monitoring/prometheus-kube-prometheus-alertmanager\" failed: provision alertmanager configuration: base config from Secret could not be parsed: undefined receiver \"null\" used in route"
level=info ts=2020-12-21T03:17:59.906899712Z caller=operator.go:1163 component=prometheusoperator msg="sync prometheus" key=monitoring/prometheus-kube-prometheus-prometheus
level=info ts=2020-12-21T03:17:59.909936845Z caller=operator.go:661 component=alertmanageroperator msg="sync alertmanager" key=monitoring/prometheus-kube-prometheus-alertmanager
level=error ts=2020-12-21T03:17:59.915494013Z caller=klog.go:96 component=k8s_client_runtime func=ErrorDepth msg="Sync \"monitoring/prometheus-kube-prometheus-alertmanager\" failed: provision alertmanager configuration: base config from Secret could not be parsed: undefined receiver \"null\" used in route"
1 Answers

In YAML, null and "null" aren't the same thing.

  • null: represents NULL value
  • "null": represents a string equal to "null".

Try removing the qoutes:

      routes:
      - match:
          alertname: Watchdog
        receiver: null
    receivers:
    - name: null
Related