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 }}