groups: - name: EKS-VM-Stack-Node-Alerts rules: - alert: EKS-VM-Stack-Node-CPU-Crossed-80% expr: 100 - (avg(irate(node_cpu_seconds_total{job=~'node_exporter_eks', mode="idle", name=~'.*vm.*|.*grafana.*'}[1m])) by (name, private_ip) * 100) > 80 for: 1m labels: severity: critical bu: infra team: sre service: vm-stack-node env: prd priority: p0 annotations: summary: Kubernetes Node out of CPU (instance {{ $labels.private_ip }}) description: "{{ $labels.name }}/{{ $labels.private_ip }} is out of CPU\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - alert: EKS-VM-Stack-Node-Memory-Crossed-80% expr: 100 * (1 - ((avg_over_time(node_memory_MemFree_bytes{job=~'node_exporter_eks', name=~'.*vm.*|.*grafana.*'}[1m]) + avg_over_time(node_memory_Cached_bytes{job=~'node_exporter_eks', name=~'.*vm.*|.*grafana.*'}[1m]) + avg_over_time(node_memory_Buffers_bytes{job=~'node_exporter_eks', name=~'.*vm.*|.*grafana.*'}[1m])) / avg_over_time(node_memory_MemTotal_bytes{job=~'node_exporter_eks', name=~'.*vm.*|.*grafana.*'}[1m]))) > 80 for: 1m labels: severity: critical bu: infra team: sre service: vm-stack-node env: prd priority: p0 annotations: summary: Kubernetes Node out of Memory (instance {{ $labels.private_ip }}) description: "{{ $labels.name }}/{{ $labels.private_ip }} is out of Memory\n VALUE = {{ $value }}\n LABELS = {{ $labels }}" - alert: EKS-VM-Stack-Node-DiskSpace-Crossed-80% expr: 100 - ((node_filesystem_avail_bytes{mountpoint="/",fstype!="rootfs", job=~"node_exporter_eks", name=~'.*vm.*|.*grafana.*'} * 100) / node_filesystem_size_bytes{mountpoint="/",fstype!="rootfs", job=~"node_exporter_eks", name=~'.*vm.*|.*grafana.*'}) > 80 for: 1m labels: severity: critical bu: infra team: sre service: vm-stack-node env: prd priority: p0 annotations: summary: Kubernetes Node running out of Disk Space (instance {{ $labels.private_ip }}) description: "{{ $labels.name }}/{{ $labels.private_ip }} is running out of Disk Space\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"