Pod CPU 利用率告警
告警指标:container-cpu-usage
告警等级:P2 >= 0.85, P1 >= 0.95
对应措施:通知开发同学查看 cpu load 高的具体原因,一般都是 gc 回收机不了内存导致的,如果是用户负载过高,则扩容。
告警表达式:sum(rate(container_cpu_usage_seconds_total{container=~"app1|app2|app3"}[2m])) by (pod,namespace) / (sum(container_spec_cpu_quota{container=~"app1|app2|app3"}) by (pod,namespace) / sum(container_spec_cpu_period{container=~"app1|app2|app3"}) by (pod,namespace))
Pod Memory 使用率告警
告警指标:container-memory-usage
告警等级:P2 >= 0.90, P1 >= 0.98
对应措施:通知开发同学查看 memory 占用高的具体原因,一般都是 gc 回收集不了内存,或者堆外内存泄漏导致的。
告警表达式:container_memory_usage_bytes{container=~"container1|container2|container3"} /container_spec_memory_limit_bytes{container=~"container1|container2|container3"}
Pod 实例状态告警
告警指标:pod_instance_status
告警等级:P1 == 0.00
对应措施:检查 pod 挂掉的原因,并重新拉起该 pod
告警表达式:up{service=~"container1|container2|container3"}
Pod 重启告警
告警指标:pod_restart_count_rate
告警等级:P1 > 0.00
对应措施:检查 pod重启的原因,一般有两个:一是 OOM killed;二是容器 Readiness、Liveness 探针异常。
告警表达式:irate(kube_pod_container_status_restarts_total{container=~"container1|container2|container3"}[2m])