groups:
- name: kubernetes-storage
  rules:
  - alert: KubePersistentVolumeFillingUp
    annotations:
      message: Please contact customer by TSE immediately. The PersistentVolume claimed by {{ $labels.persistentvolumeclaim
        }} in Namespace {{ $labels.namespace }} is only {{ $value | humanizePercentage
        }} free.
      runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepersistentvolumefillingup
    expr: |
      kubelet_volume_stats_available_bytes{job="kubelet",persistentvolumeclaim!~".*victoria-metrics-agent.*|.*vmagent.*|.*ng-monitoring.*|.*index-acceleration|vmstorage-volume-clinic-victoria-metrics-cluster-vmstorage.*|tikv-db-tikv-.*|.*-coprocessor-tikv-worker-.*|.*tiflash.*",provider_type!~"aws-free-tier|alicloud-serverless", o11y_biz_type!~".*-tidbcloud-nextgen"}
        /
      kubelet_volume_stats_capacity_bytes{job="kubelet",persistentvolumeclaim!~".*victoria-metrics-agent.*|.*vmagent.*|.*ng-monitoring.*|.*index-acceleration|vmstorage-volume-clinic-victoria-metrics-cluster-vmstorage.*|tikv-db-tikv-.*|.*-coprocessor-tikv-worker-.*|.*tiflash.*",provider_type!~"aws-free-tier|alicloud-serverless", o11y_biz_type!~".*-tidbcloud-nextgen"}
        < 0.1
    for: 10m
    labels:
      component: resilience
      oncall_team: resilience
      severity: critical
      response_class: page
  - alert: KubePersistentVolumeFillingUp
    annotations:
      message: Please contact customer by TSE today. Based on recent sampling, the PersistentVolume claimed by {{ $labels.persistentvolumeclaim
        }} in Namespace {{ $labels.namespace }} is expected to fill up within 7
        days. Currently {{ $value | humanizePercentage }} is available.
      runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepersistentvolumefillingup
    expr: |
      (
        kubelet_volume_stats_available_bytes{job="kubelet",persistentvolumeclaim!~".*victoria-metrics-agent.*|.*vmagent.*|.*ng-monitoring.*|tikv-db-tikv-.*|.*-coprocessor-tikv-worker-.*|.*tiflash.*",provider_type!~"aws-free-tier|alicloud-serverless", o11y_biz_type!~".*-tidbcloud-nextgen"}
          /
        kubelet_volume_stats_capacity_bytes{job="kubelet",persistentvolumeclaim!~".*victoria-metrics-agent.*|.*vmagent.*|.*ng-monitoring.*|tikv-db-tikv-.*|.*-coprocessor-tikv-worker-.*|.*tiflash.*",provider_type!~"aws-free-tier|alicloud-serverless", o11y_biz_type!~".*-tidbcloud-nextgen"}
      ) < 0.2
      and
      predict_linear(kubelet_volume_stats_available_bytes{job="kubelet",persistentvolumeclaim!~"o11y-vmagent-victoria-metrics-agent|tikv-db-tikv-.*|.*-coprocessor-tikv-worker-.*|.*tiflash.*",provider_type!~"aws-free-tier|alicloud-serverless", o11y_biz_type!~".*-tidbcloud-nextgen"}[6h], 7 * 24 * 3600) < 0
    for: 10m
    labels:
      component: resilience
      oncall_team: resilience
      severity: major
      response_class: ticket
  - alert: KubePersistentVolumeErrors
    annotations:
      message: The persistent volume {{ $labels.persistentvolume }} has status {{
        $labels.phase }}.
      runbook_url: https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubepersistentvolumeerrors
    expr: |
      kube_persistentvolume_status_phase{phase=~"Failed|Pending",job="kube-state-metrics"} > 0
    for: 5m
    labels:
      component: kubernetes
      oncall_team: dedicated_service
      severity: critical
      response_class: page
