42 lines
1.7 KiB
YAML
42 lines
1.7 KiB
YAML
apiVersion: monitoring.coreos.com/v1
|
|
kind: PrometheusRule
|
|
metadata:
|
|
name: cpu-capacity
|
|
namespace: prometheus
|
|
labels:
|
|
release: prometheus
|
|
spec:
|
|
groups:
|
|
- name: cpu-capacity
|
|
rules:
|
|
- alert: KubeCPUOvercommit
|
|
# The upstream HA branch also fires on single-control-plane clusters.
|
|
# Only require largest-node failover capacity when the control plane is HA.
|
|
expr: |-
|
|
(
|
|
(
|
|
sum by (cluster) (namespace_cpu:kube_pod_container_resource_requests:sum)
|
|
- sum by (cluster) (kube_node_status_allocatable{job="kube-state-metrics",resource="cpu"})
|
|
) > 0
|
|
and on (cluster)
|
|
count by (cluster) (max by (cluster,node) (kube_node_role{job="kube-state-metrics",role="control-plane"})) < 3
|
|
)
|
|
or
|
|
(
|
|
(
|
|
sum by (cluster) (namespace_cpu:kube_pod_container_resource_requests:sum)
|
|
- (
|
|
sum by (cluster) (kube_node_status_allocatable{job="kube-state-metrics",resource="cpu"})
|
|
- max by (cluster) (kube_node_status_allocatable{job="kube-state-metrics",resource="cpu"})
|
|
)
|
|
) > 0
|
|
and on (cluster)
|
|
count by (cluster) (max by (cluster,node) (kube_node_role{job="kube-state-metrics",role="control-plane"})) >= 3
|
|
)
|
|
for: 10m
|
|
labels:
|
|
severity: warning
|
|
annotations:
|
|
summary: Cluster has overcommitted CPU resource requests.
|
|
description: "CPU requests exceed usable capacity by {{ $value }} cores (total capacity for a non-HA control plane; largest-node failure capacity for HA)."
|