github.com/verrazzano/verrazzano@v1.7.0/platform-operator/thirdparty/charts/prometheus-community/kube-prometheus-stack/templates/prometheus/rules-1.14/kubernetes-resources.yaml (about) 1 {{- /* 2 Generated from 'kubernetes-resources' group from https://raw.githubusercontent.com/prometheus-operator/kube-prometheus/main/manifests/kubernetesControlPlane-prometheusRule.yaml 3 Do not change in-place! In order to change this file first read following link: 4 https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack/hack 5 */ -}} 6 {{- $kubeTargetVersion := default .Capabilities.KubeVersion.GitVersion .Values.kubeTargetVersionOverride }} 7 {{- if and (semverCompare ">=1.14.0-0" $kubeTargetVersion) (semverCompare "<9.9.9-9" $kubeTargetVersion) .Values.defaultRules.create .Values.defaultRules.rules.kubernetesResources }} 8 apiVersion: monitoring.coreos.com/v1 9 kind: PrometheusRule 10 metadata: 11 name: {{ printf "%s-%s" (include "kube-prometheus-stack.fullname" .) "kubernetes-resources" | trunc 63 | trimSuffix "-" }} 12 namespace: {{ template "kube-prometheus-stack.namespace" . }} 13 labels: 14 app: {{ template "kube-prometheus-stack.name" . }} 15 {{ include "kube-prometheus-stack.labels" . | indent 4 }} 16 {{- if .Values.defaultRules.labels }} 17 {{ toYaml .Values.defaultRules.labels | indent 4 }} 18 {{- end }} 19 {{- if .Values.defaultRules.annotations }} 20 annotations: 21 {{ toYaml .Values.defaultRules.annotations | indent 4 }} 22 {{- end }} 23 spec: 24 groups: 25 - name: kubernetes-resources 26 rules: 27 {{- if not (.Values.defaultRules.disabled.KubeCPUOvercommit | default false) }} 28 - alert: KubeCPUOvercommit 29 annotations: 30 {{- if .Values.defaultRules.additionalRuleAnnotations }} 31 {{ toYaml .Values.defaultRules.additionalRuleAnnotations | indent 8 }} 32 {{- end }} 33 description: Cluster has overcommitted CPU resource requests for Pods by {{`{{`}} $value {{`}}`}} CPU shares and cannot tolerate node failure. 34 runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/kubecpuovercommit 35 summary: Cluster has overcommitted CPU resource requests. 36 expr: |- 37 sum(namespace_cpu:kube_pod_container_resource_requests:sum{}) - (sum(kube_node_status_allocatable{resource="cpu", job="kube-state-metrics"}) - max(kube_node_status_allocatable{resource="cpu", job="kube-state-metrics"})) > 0 38 and 39 (sum(kube_node_status_allocatable{resource="cpu", job="kube-state-metrics"}) - max(kube_node_status_allocatable{resource="cpu", job="kube-state-metrics"})) > 0 40 for: 10m 41 labels: 42 severity: warning 43 {{- if .Values.defaultRules.additionalRuleLabels }} 44 {{ toYaml .Values.defaultRules.additionalRuleLabels | indent 8 }} 45 {{- end }} 46 {{- end }} 47 {{- if not (.Values.defaultRules.disabled.KubeMemoryOvercommit | default false) }} 48 - alert: KubeMemoryOvercommit 49 annotations: 50 {{- if .Values.defaultRules.additionalRuleAnnotations }} 51 {{ toYaml .Values.defaultRules.additionalRuleAnnotations | indent 8 }} 52 {{- end }} 53 description: Cluster has overcommitted memory resource requests for Pods by {{`{{`}} $value | humanize {{`}}`}} bytes and cannot tolerate node failure. 54 runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/kubememoryovercommit 55 summary: Cluster has overcommitted memory resource requests. 56 expr: |- 57 sum(namespace_memory:kube_pod_container_resource_requests:sum{}) - (sum(kube_node_status_allocatable{resource="memory", job="kube-state-metrics"}) - max(kube_node_status_allocatable{resource="memory", job="kube-state-metrics"})) > 0 58 and 59 (sum(kube_node_status_allocatable{resource="memory", job="kube-state-metrics"}) - max(kube_node_status_allocatable{resource="memory", job="kube-state-metrics"})) > 0 60 for: 10m 61 labels: 62 severity: warning 63 {{- if .Values.defaultRules.additionalRuleLabels }} 64 {{ toYaml .Values.defaultRules.additionalRuleLabels | indent 8 }} 65 {{- end }} 66 {{- end }} 67 {{- if not (.Values.defaultRules.disabled.KubeCPUQuotaOvercommit | default false) }} 68 - alert: KubeCPUQuotaOvercommit 69 annotations: 70 {{- if .Values.defaultRules.additionalRuleAnnotations }} 71 {{ toYaml .Values.defaultRules.additionalRuleAnnotations | indent 8 }} 72 {{- end }} 73 description: Cluster has overcommitted CPU resource requests for Namespaces. 74 runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/kubecpuquotaovercommit 75 summary: Cluster has overcommitted CPU resource requests. 76 expr: |- 77 sum(min without(resource) (kube_resourcequota{job="kube-state-metrics", type="hard", resource=~"(cpu|requests.cpu)"})) 78 / 79 sum(kube_node_status_allocatable{resource="cpu", job="kube-state-metrics"}) 80 > 1.5 81 for: 5m 82 labels: 83 severity: warning 84 {{- if .Values.defaultRules.additionalRuleLabels }} 85 {{ toYaml .Values.defaultRules.additionalRuleLabels | indent 8 }} 86 {{- end }} 87 {{- end }} 88 {{- if not (.Values.defaultRules.disabled.KubeMemoryQuotaOvercommit | default false) }} 89 - alert: KubeMemoryQuotaOvercommit 90 annotations: 91 {{- if .Values.defaultRules.additionalRuleAnnotations }} 92 {{ toYaml .Values.defaultRules.additionalRuleAnnotations | indent 8 }} 93 {{- end }} 94 description: Cluster has overcommitted memory resource requests for Namespaces. 95 runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/kubememoryquotaovercommit 96 summary: Cluster has overcommitted memory resource requests. 97 expr: |- 98 sum(min without(resource) (kube_resourcequota{job="kube-state-metrics", type="hard", resource=~"(memory|requests.memory)"})) 99 / 100 sum(kube_node_status_allocatable{resource="memory", job="kube-state-metrics"}) 101 > 1.5 102 for: 5m 103 labels: 104 severity: warning 105 {{- if .Values.defaultRules.additionalRuleLabels }} 106 {{ toYaml .Values.defaultRules.additionalRuleLabels | indent 8 }} 107 {{- end }} 108 {{- end }} 109 {{- if not (.Values.defaultRules.disabled.KubeQuotaAlmostFull | default false) }} 110 - alert: KubeQuotaAlmostFull 111 annotations: 112 {{- if .Values.defaultRules.additionalRuleAnnotations }} 113 {{ toYaml .Values.defaultRules.additionalRuleAnnotations | indent 8 }} 114 {{- end }} 115 description: Namespace {{`{{`}} $labels.namespace {{`}}`}} is using {{`{{`}} $value | humanizePercentage {{`}}`}} of its {{`{{`}} $labels.resource {{`}}`}} quota. 116 runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/kubequotaalmostfull 117 summary: Namespace quota is going to be full. 118 expr: |- 119 kube_resourcequota{job="kube-state-metrics", type="used"} 120 / ignoring(instance, job, type) 121 (kube_resourcequota{job="kube-state-metrics", type="hard"} > 0) 122 > 0.9 < 1 123 for: 15m 124 labels: 125 severity: info 126 {{- if .Values.defaultRules.additionalRuleLabels }} 127 {{ toYaml .Values.defaultRules.additionalRuleLabels | indent 8 }} 128 {{- end }} 129 {{- end }} 130 {{- if not (.Values.defaultRules.disabled.KubeQuotaFullyUsed | default false) }} 131 - alert: KubeQuotaFullyUsed 132 annotations: 133 {{- if .Values.defaultRules.additionalRuleAnnotations }} 134 {{ toYaml .Values.defaultRules.additionalRuleAnnotations | indent 8 }} 135 {{- end }} 136 description: Namespace {{`{{`}} $labels.namespace {{`}}`}} is using {{`{{`}} $value | humanizePercentage {{`}}`}} of its {{`{{`}} $labels.resource {{`}}`}} quota. 137 runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/kubequotafullyused 138 summary: Namespace quota is fully used. 139 expr: |- 140 kube_resourcequota{job="kube-state-metrics", type="used"} 141 / ignoring(instance, job, type) 142 (kube_resourcequota{job="kube-state-metrics", type="hard"} > 0) 143 == 1 144 for: 15m 145 labels: 146 severity: info 147 {{- if .Values.defaultRules.additionalRuleLabels }} 148 {{ toYaml .Values.defaultRules.additionalRuleLabels | indent 8 }} 149 {{- end }} 150 {{- end }} 151 {{- if not (.Values.defaultRules.disabled.KubeQuotaExceeded | default false) }} 152 - alert: KubeQuotaExceeded 153 annotations: 154 {{- if .Values.defaultRules.additionalRuleAnnotations }} 155 {{ toYaml .Values.defaultRules.additionalRuleAnnotations | indent 8 }} 156 {{- end }} 157 description: Namespace {{`{{`}} $labels.namespace {{`}}`}} is using {{`{{`}} $value | humanizePercentage {{`}}`}} of its {{`{{`}} $labels.resource {{`}}`}} quota. 158 runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/kubequotaexceeded 159 summary: Namespace quota has exceeded the limits. 160 expr: |- 161 kube_resourcequota{job="kube-state-metrics", type="used"} 162 / ignoring(instance, job, type) 163 (kube_resourcequota{job="kube-state-metrics", type="hard"} > 0) 164 > 1 165 for: 15m 166 labels: 167 severity: warning 168 {{- if .Values.defaultRules.additionalRuleLabels }} 169 {{ toYaml .Values.defaultRules.additionalRuleLabels | indent 8 }} 170 {{- end }} 171 {{- end }} 172 {{- if not (.Values.defaultRules.disabled.CPUThrottlingHigh | default false) }} 173 - alert: CPUThrottlingHigh 174 annotations: 175 {{- if .Values.defaultRules.additionalRuleAnnotations }} 176 {{ toYaml .Values.defaultRules.additionalRuleAnnotations | indent 8 }} 177 {{- end }} 178 description: '{{`{{`}} $value | humanizePercentage {{`}}`}} throttling of CPU in namespace {{`{{`}} $labels.namespace {{`}}`}} for container {{`{{`}} $labels.container {{`}}`}} in pod {{`{{`}} $labels.pod {{`}}`}}.' 179 runbook_url: {{ .Values.defaultRules.runbookUrl }}/kubernetes/cputhrottlinghigh 180 summary: Processes experience elevated CPU throttling. 181 expr: |- 182 sum(increase(container_cpu_cfs_throttled_periods_total{container!="", }[5m])) by (container, pod, namespace, verrazzano_cluster) 183 / 184 sum(increase(container_cpu_cfs_periods_total{}[5m])) by (container, pod, namespace, verrazzano_cluster) 185 > ( 25 / 100 ) 186 for: 15m 187 labels: 188 severity: info 189 {{- if .Values.defaultRules.additionalRuleLabels }} 190 {{ toYaml .Values.defaultRules.additionalRuleLabels | indent 8 }} 191 {{- end }} 192 {{- end }} 193 {{- end }}