groups:
- name: node-exporter.rules
  rules:
  - alert: KubePodCrashLooping
    annotations:
      message: Pod {{ $labels.namespace }}/{{ $labels.pod }} ({{ $labels.container
        }}) is restarting {{ printf "%.2f" $value }} times in 1 hours.
      runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepodcrashlooping
    expr: |
      increase(kube_pod_container_status_restarts_total{pod=~"node-exporter-.*"}[1h]) > 5
    for: 15m
    labels:
      component: node-exporter
      oncall_team: premium
      service: node-exporter
      severity: major
      response_class: ticket
      type: shoot
      tier: next-gen
  - alert: KubePodNotReady
    annotations:
      message: Pod {{ $labels.namespace }}/{{ $labels.pod }} (shared_pool_id={{ $labels.label_tags_tidbcloud_com_shared_pool
        }}) has been in a non-ready state for longer than 15 minutes.
      runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepodnotready
    expr: |
      max by (namespace, pod, label_tags_tidbcloud_com_shared_pool) (
        max by(namespace, pod) (
          kube_pod_status_phase{job="kube-state-metrics", phase=~"Pending|Unknown", pod=~"node-exporter-.*"}
        )
        * on(namespace, pod) group_left(label_tags_tidbcloud_com_shared_pool)
        max by(namespace, pod, label_tags_tidbcloud_com_shared_pool) (
          kube_pod_labels{job="kube-state-metrics", label_tags_tidbcloud_com_shared_pool!=""}
        )
      ) > 0
    for: 15m
    labels:
      component: node-exporter
      oncall_team: premium
      service: node-exporter
      severity: major
      response_class: ticket
      type: shoot
      tier: next-gen
