diff --git a/charts/kubezero-istio-gateway/Chart.yaml b/charts/kubezero-istio-gateway/Chart.yaml index e0d07fd4..b561f296 100644 --- a/charts/kubezero-istio-gateway/Chart.yaml +++ b/charts/kubezero-istio-gateway/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: kubezero-istio-gateway description: KubeZero Umbrella Chart for Istio gateways type: application -version: 0.24.7 +version: 0.26.1 home: https://kubezero.com icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png keywords: diff --git a/charts/kubezero-istio-gateway/README.md b/charts/kubezero-istio-gateway/README.md index c6a35f61..74d90c45 100644 --- a/charts/kubezero-istio-gateway/README.md +++ b/charts/kubezero-istio-gateway/README.md @@ -1,6 +1,6 @@ # kubezero-istio-gateway -![Version: 0.24.6](https://img.shields.io/badge/Version-0.24.6-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.26.1](https://img.shields.io/badge/Version-0.26.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) KubeZero Umbrella Chart for Istio gateways @@ -21,7 +21,7 @@ Kubernetes: `>= 1.30.0-0` | Repository | Name | Version | |------------|------|---------| | https://cdn.zero-downtime.net/charts/ | kubezero-lib | 0.2.1 | -| https://istio-release.storage.googleapis.com/charts | gateway | 1.24.6 | +| https://istio-release.storage.googleapis.com/charts | gateway | 1.26.1 | ## Values @@ -44,6 +44,7 @@ Kubernetes: `>= 1.30.0-0` | hardening.preserveExternalRequestId | bool | `false` | | | hardening.rejectUnderscoresHeaders | bool | `true` | | | hardening.unescapeSlashes | bool | `true` | | +| httpFilter.grpcWeb | bool | `false` | | | proxyProtocol | bool | `true` | | | telemetry.enabled | bool | `false` | | diff --git a/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml b/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml index 3ea40df2..23b19976 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 1.24.6 +appVersion: 1.26.1 description: Helm chart for deploying Istio gateways icon: https://istio.io/latest/favicons/android-192x192.png keywords: @@ -9,4 +9,4 @@ name: gateway sources: - https://github.com/istio/istio type: application -version: 1.24.6 +version: 1.26.1 diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.21.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.21.yaml deleted file mode 100644 index c8da4d2e..00000000 --- a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.21.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# WARNING: DO NOT EDIT, THIS FILE IS A COPY. -# The original version of this file is located at /manifests/helm-profiles directory. -# If you want to make a change in this file, edit the original one and run "make gen". - -pilot: - env: - # 1.22 behavioral changes - ENABLE_ENHANCED_RESOURCE_SCOPING: "false" - ENABLE_RESOLUTION_NONE_TARGET_PORT: "false" - - # 1.23 behavioral changes - ENABLE_DELIMITED_STATS_TAG_REGEX: "false" - - # 1.24 behavioral changes - ENABLE_INBOUND_RETRY_POLICY: "false" - EXCLUDE_UNSAFE_503_FROM_DEFAULT_RETRY: "false" - PREFER_DESTINATIONRULE_TLS_FOR_EXTERNAL_SERVICES: "false" - ENABLE_ENHANCED_DESTINATIONRULE_MERGE: "false" - PILOT_UNIFIED_SIDECAR_SCOPE: "false" - -meshConfig: - # 1.22 behavioral changes - defaultConfig: - proxyMetadata: - ISTIO_DELTA_XDS: "false" - # 1.23 behavioral changes - ENABLE_DELIMITED_STATS_TAG_REGEX: "false" - # 1.24 behaviour changes - ENABLE_DEFERRED_STATS_CREATION: "false" - BYPASS_OVERLOAD_MANAGER_FOR_STATIC_LISTENERS: "false" - tracing: - zipkin: - address: zipkin.istio-system:9411 diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.22.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.22.yaml deleted file mode 100644 index 70d8eb40..00000000 --- a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.22.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# WARNING: DO NOT EDIT, THIS FILE IS A COPY. -# The original version of this file is located at /manifests/helm-profiles directory. -# If you want to make a change in this file, edit the original one and run "make gen". - -pilot: - env: - # 1.23 behavioral changes - ENABLE_DELIMITED_STATS_TAG_REGEX: "false" - - # 1.24 behavioral changes - ENABLE_INBOUND_RETRY_POLICY: "false" - EXCLUDE_UNSAFE_503_FROM_DEFAULT_RETRY: "false" - PREFER_DESTINATIONRULE_TLS_FOR_EXTERNAL_SERVICES: "false" - ENABLE_ENHANCED_DESTINATIONRULE_MERGE: "false" - PILOT_UNIFIED_SIDECAR_SCOPE: "false" - -meshConfig: - defaultConfig: - proxyMetadata: - # 1.22 behavioral changes - ENABLE_DEFERRED_CLUSTER_CREATION: "false" - # 1.23 behavioral changes - ENABLE_DELIMITED_STATS_TAG_REGEX: "false" - # 1.24 behaviour changes - ENABLE_DEFERRED_STATS_CREATION: "false" - BYPASS_OVERLOAD_MANAGER_FOR_STATIC_LISTENERS: "false" diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.23.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.23.yaml index 636bb6f1..dac910ff 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.23.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.23.yaml @@ -17,3 +17,9 @@ meshConfig: # 1.24 behaviour changes ENABLE_DEFERRED_STATS_CREATION: "false" BYPASS_OVERLOAD_MANAGER_FOR_STATIC_LISTENERS: "false" + +ambient: + # Not present in <1.24, defaults to `true` in 1.25+ + reconcileIptablesOnStartup: false + # 1.26 behavioral changes + shareHostNetworkNamespace: true diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.24.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.24.yaml new file mode 100644 index 00000000..b211c826 --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.24.yaml @@ -0,0 +1,13 @@ +# WARNING: DO NOT EDIT, THIS FILE IS A COPY. +# The original version of this file is located at /manifests/helm-profiles directory. +# If you want to make a change in this file, edit the original one and run "make gen". + +pilot: + env: + # 1.24 behavioral changes + PILOT_ENABLE_IP_AUTOALLOCATE: "false" +ambient: + dnsCapture: false + reconcileIptablesOnStartup: false + # 1.26 behavioral changes + shareHostNetworkNamespace: true diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.25.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.25.yaml new file mode 100644 index 00000000..eb8827cd --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-compatibility-version-1.25.yaml @@ -0,0 +1,7 @@ +# WARNING: DO NOT EDIT, THIS FILE IS A COPY. +# The original version of this file is located at /manifests/helm-profiles directory. +# If you want to make a change in this file, edit the original one and run "make gen". + +ambient: + # 1.26 behavioral changes + shareHostNetworkNamespace: true diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-demo.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-demo.yaml index eadbde17..d6dc36dd 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/files/profile-demo.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-demo.yaml @@ -21,6 +21,10 @@ meshConfig: opentelemetry: port: 4317 service: opentelemetry-collector.observability.svc.cluster.local + - name: jaeger + opentelemetry: + port: 4317 + service: jaeger-collector.istio-system.svc.cluster.local cni: resources: diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-platform-gke.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-platform-gke.yaml new file mode 100644 index 00000000..dfe8a7d7 --- /dev/null +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-platform-gke.yaml @@ -0,0 +1,10 @@ +# WARNING: DO NOT EDIT, THIS FILE IS A COPY. +# The original version of this file is located at /manifests/helm-profiles directory. +# If you want to make a change in this file, edit the original one and run "make gen". + +cni: + cniBinDir: "" # intentionally unset for gke to allow template-based autodetection to work + resourceQuotas: + enabled: true +resourceQuotas: + enabled: true diff --git a/charts/kubezero-istio-gateway/charts/gateway/files/profile-platform-k3s.yaml b/charts/kubezero-istio-gateway/charts/gateway/files/profile-platform-k3s.yaml index f3f2884a..07820106 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/files/profile-platform-k3s.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/files/profile-platform-k3s.yaml @@ -4,4 +4,4 @@ cni: cniConfDir: /var/lib/rancher/k3s/agent/etc/cni/net.d - cniBinDir: /var/lib/rancher/k3s/data/current/bin/ + cniBinDir: /var/lib/rancher/k3s/data/cni diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml b/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml index 9db59d8b..d83ff3b4 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/deployment.yaml @@ -11,8 +11,8 @@ metadata: {{- .Values.annotations | toYaml | nindent 4 }} spec: {{- if not .Values.autoscaling.enabled }} - {{- with .Values.replicaCount }} - replicas: {{ . }} + {{- if and (hasKey .Values "replicaCount") (ne .Values.replicaCount nil) }} + replicas: {{ .Values.replicaCount }} {{- end }} {{- end }} {{- with .Values.strategy }} @@ -41,6 +41,9 @@ spec: {{ $key | quote }}: {{ $val | quote }} {{- end }} {{- end }} + {{- with .Values.networkGateway }} + topology.istio.io/network: "{{.}}" + {{- end }} spec: {{- with .Values.imagePullSecrets }} imagePullSecrets: diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/service.yaml b/charts/kubezero-istio-gateway/charts/gateway/templates/service.yaml index c013d812..99afcb71 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/templates/service.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/service.yaml @@ -21,6 +21,9 @@ spec: {{- if hasKey .Values.service "allocateLoadBalancerNodePorts" }} allocateLoadBalancerNodePorts: {{ .Values.service.allocateLoadBalancerNodePorts }} {{- end }} + {{- if hasKey .Values.service "loadBalancerClass" }} + loadBalancerClass: {{ .Values.service.loadBalancerClass }} + {{- end }} {{- end }} {{- if .Values.service.ipFamilyPolicy }} ipFamilyPolicy: {{ .Values.service.ipFamilyPolicy }} diff --git a/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml b/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml index 72d3adc5..606c5566 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/templates/zzz_profile.yaml @@ -24,11 +24,11 @@ Finally, we can set all of that under .Values so the chart behaves without aware {{- $defaults := $.Values._internal_defaults_do_not_set }} {{- $_ := unset $.Values "_internal_defaults_do_not_set" }} {{- $profile := dict }} -{{- with .Values.profile }} +{{- with (coalesce ($.Values).profile ($.Values.global).profile) }} {{- with $.Files.Get (printf "files/profile-%s.yaml" .)}} {{- $profile = (. | fromYaml) }} {{- else }} -{{ fail (cat "unknown profile" $.Values.profile) }} +{{ fail (cat "unknown profile" .) }} {{- end }} {{- end }} {{- with .Values.compatibilityVersion }} @@ -38,11 +38,11 @@ Finally, we can set all of that under .Values so the chart behaves without aware {{ fail (cat "unknown compatibility version" $.Values.compatibilityVersion) }} {{- end }} {{- end }} -{{- if ($.Values.global).platform }} -{{- with $.Files.Get (printf "files/profile-platform-%s.yaml" ($.Values.global).platform) }} +{{- with (coalesce ($.Values).platform ($.Values.global).platform) }} +{{- with $.Files.Get (printf "files/profile-platform-%s.yaml" .) }} {{- $ignore := mustMergeOverwrite $profile (. | fromYaml) }} {{- else }} -{{ fail (cat "unknown platform" ($.Values.global).platform) }} +{{ fail (cat "unknown platform" .) }} {{- end }} {{- end }} {{- if $profile }} @@ -52,6 +52,7 @@ Finally, we can set all of that under .Values so the chart behaves without aware {{- if true }} {{- $a := mustMergeOverwrite $defaults ($profile.global) ($.Values.global | default dict) }} {{- end }} +{{- $x := set $.Values "_original" (deepCopy $.Values) }} {{- $b := set $ "Values" (mustMergeOverwrite $defaults $.Values) }} {{/* diff --git a/charts/kubezero-istio-gateway/charts/gateway/values.yaml b/charts/kubezero-istio-gateway/charts/gateway/values.yaml index b02240df..4e65676b 100644 --- a/charts/kubezero-istio-gateway/charts/gateway/values.yaml +++ b/charts/kubezero-istio-gateway/charts/gateway/values.yaml @@ -64,6 +64,8 @@ _internal_defaults_do_not_set: ipFamilies: [] ## Whether to automatically allocate NodePorts (only for LoadBalancers). # allocateLoadBalancerNodePorts: false + ## Set LoadBalancer class (only for LoadBalancers). + # loadBalancerClass: "" resources: requests: @@ -96,7 +98,9 @@ _internal_defaults_do_not_set: readinessProbe: {} # Labels to apply to all resources - labels: {} + labels: + # By default, don't enroll gateways into the ambient dataplane + "istio.io/dataplane-mode": none # Annotations to apply to all resources annotations: {} diff --git a/charts/kubezero-istio/Chart.yaml b/charts/kubezero-istio/Chart.yaml index cf1fbc7b..6402c048 100644 --- a/charts/kubezero-istio/Chart.yaml +++ b/charts/kubezero-istio/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: kubezero-istio description: KubeZero Umbrella Chart for Istio type: application -version: 0.24.7 +version: 0.26.1 home: https://kubezero.com icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png keywords: diff --git a/charts/kubezero-istio/README.md b/charts/kubezero-istio/README.md index ec4f230c..c8730533 100644 --- a/charts/kubezero-istio/README.md +++ b/charts/kubezero-istio/README.md @@ -1,6 +1,6 @@ # kubezero-istio -![Version: 0.24.6](https://img.shields.io/badge/Version-0.24.6-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.24.7](https://img.shields.io/badge/Version-0.24.7-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) KubeZero Umbrella Chart for Istio @@ -22,9 +22,9 @@ Kubernetes: `>= 1.30.0-0` |------------|------|---------| | https://cdn.zero-downtime.net/charts/ | envoy-ratelimit | 0.1.2 | | https://cdn.zero-downtime.net/charts/ | kubezero-lib | 0.2.1 | -| https://istio-release.storage.googleapis.com/charts | base | 1.24.6 | -| https://istio-release.storage.googleapis.com/charts | istiod | 1.24.6 | -| https://kiali.org/helm-charts | kiali-server | 2.6.0 | +| https://istio-release.storage.googleapis.com/charts | base | 1.26.1 | +| https://istio-release.storage.googleapis.com/charts | istiod | 1.26.1 | +| https://kiali.org/helm-charts | kiali-server | 2.11.0 | ## Values diff --git a/charts/kubezero-istio/dashboards.yaml b/charts/kubezero-istio/dashboards.yaml index 7dc22535..1912f9d5 100644 --- a/charts/kubezero-istio/dashboards.yaml +++ b/charts/kubezero-istio/dashboards.yaml @@ -5,22 +5,22 @@ folder: Istio condition: '.Values.istiod.telemetry.enabled' dashboards: - name: istio-control-plane - url: https://grafana.com/api/dashboards/7645/revisions/239/download + url: https://grafana.com/api/dashboards/7645/revisions/259/download tags: - Istio - name: istio-mesh - url: https://grafana.com/api/dashboards/7639/revisions/239/download + url: https://grafana.com/api/dashboards/7639/revisions/259/download tags: - Istio - name: istio-service - url: https://grafana.com/api/dashboards/7636/revisions/239/download + url: https://grafana.com/api/dashboards/7636/revisions/259/download tags: - Istio - name: istio-workload - url: https://grafana.com/api/dashboards/7630/revisions/239/download + url: https://grafana.com/api/dashboards/7630/revisions/259/download tags: - Istio - name: istio-performance - url: https://grafana.com/api/dashboards/11829/revisions/239/download + url: https://grafana.com/api/dashboards/11829/revisions/259/download tags: - Istio diff --git a/charts/kubezero-istio/templates/grafana-dashboards.yaml b/charts/kubezero-istio/templates/grafana-dashboards.yaml index dd4077b2..457c8415 100644 --- a/charts/kubezero-istio/templates/grafana-dashboards.yaml +++ b/charts/kubezero-istio/templates/grafana-dashboards.yaml @@ -11,13 +11,13 @@ metadata: k8s-sidecar-target-directory: Istio binaryData: istio-control-plane.json.gz: - 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 istio-mesh.json.gz: - H4sIAAAAAAAC/+1cW1PjNhR+51eobh9gJptNQgKkM30pu213pttlIN19WJiMYiuJurJkJBlIqfvbK1l2fFNCCIGEqV/YtW7n6JzvfJGOZd3vAeAMh5gGoRTOj+CregbgPv6raij0kSp13l0Mz84/fXw/+O39nxdOI60mcISIrj/jzEdyikKRVXpIuBwHEjOqm2QVchbEg3pQQsFC7qKsLiDhBNMPnq4PLIOa+j8StXJi4waR+nvVMFPi6DrEHFkmlcqfcDiGFGaDY89anBrh13LFDeIimd1Rs9s8TJRo2MUFkCpjVYUFU6uofHFO0HIZNpPihcakVTPaRPaarWZrjblJOCKoKm1QLK7Obe7EEoI+CPU/8BGJKXgHxXTEIPdA0h20m51usxMPa4w6YIxIHKiO7bgwVtGCBpcRAgOBtMpjSASaazbh2DtjukvaWBVO0wGT51v13OnmCu5UQSv3PNPPyWNUtFA7g/VcuassTLAkBgyEjSABAwW/MXarccTZrd07OTSsFqMDJpUgHTlISAEwBao9cEkoJOJZrzFGxDtldIwnReN4aAxDIosmMzZmvFQYj3OH1DimzhmRMINF0sJnXqx73NLJ1UWNwvhKQebbBBDyKYAultoL7VZpdIUTDyMqPyZSplUFxJTdnjFM4zk5FCm4LVYjpFjGDkHXgciaRRXvL0RWr4SsoweA1bYDq5M9UuW5GxiTdC/neBb7vKQBQRNEvYrzIHGzuMkaQyEr7oJ3eetcFazjYREQOEuNbdhhiZEM1X/O6OGm3Y6ZKAsAyCdIFnUrqP5gAMSt0F3ATRyF1NsXoQ/2OZRoH2u+GabRMJQ6OO45ChhXNv3p30vHDP3PLZwFGiKXTvT1B/XDo/oOU7tfHRw0gFK6fVCdqiXUkxgHnxkJfVQNdSGh3Gisi9B1kRBAKw3YuI79p8Z+gJQLqIwfn4MBjlZjgMOaAdZggKfEfkOtNQNlUDR01fy+U016zeYCSgBvwcZpZiV+uUjC/Vx1fgF26d7dFRilJpVdW1C0O6vxSbfmk62sKIqsopt0F7JKstBgXG2KXMn4fms1UlBRKl6ADHo1Gew6GZysRga9mgx2hAx6GyeD3nOTwbmZsAr/MeM+1MVA/Q/8NhicAaHUx2qFsgIbMBUsCuiojJ37MmakO0VVephnqUazOJvYKNdmEHY+Q0Ue4PvUVU6haVQCacCZ2gNIjKqgBhUd5lok6LWqopNkWoOc9Uo6VLRYJgm52IdELBPTWXv0mKSWTaDEXkU8JqhcRIHP59qg19qmV896LfC7CmDqzl6tY/0d9Gp/u17t1159Fq/2t+vVfu3VzXs1SURu07OF5Mhrda01//hYKWbH03SR3uAYTy2RWR0mt3KMN2dvRtD9NokXwE6lcbS2mnKqFsRTRrzHq5du/eBIMBJKGzD0/kyiwAa1RXqVNqRqseNZBy7oR0NCrG2ixppiZ8pv7PZhyU6r2e85m5U94QjRh0W37VItpVcPA2Zr3KV2HxLTeA8zvGX8G2HQG95Avk0W+5Lo4eyklZIN3lZp3qbCGuzoY/oFe3K6TFi31dptsOpDGSKAz+ORxFBT7HlWTpibSfIQ7bSdauuk1hlg/zVhZa9cukKatH207HyPyfXaE6NHDyZGXzzrGB/RG/7FMI1Tj6MZ2LcBvLGcHRoWDj/Y9DGJy4W/p5eOrm2af2yNFtdkc7h0DoomMvnH6km1xIFCQioTwBWqTB77l3nv+3tgkxxFzQU1mU4giopiORqbw4/VZGMuzjaDh6nyHJtw6A+vQzVVTNB+q9lrgBQnBDXWgIoVFkMv5KaDjwnBArmMemI4Ct1vSK4BlhotRbQU8pcvA5R+DZTXCJT+ywOlRsrrREr/GZHyhLXIwYsc0Xq7FQ3rldHDwKxkipe8zdYvld9Ozs9OQZoWyb/c5pCK+UvoJStus0PxkVqYL5WapDxzRw+e/Lb855lEAghEJYDUAxy5GOEb5FVenw9Od/7tuXuzzbSPseQ5cmP7vdr8/mgH355reG7ftRcVLWq31mntOq1dp7XrxG2d1q7T2g+ntTtH9rT28f83rS3dQG3gzJpxONLrjHobt6kEd34/sEsJhtVQoRe9NSI2urEvLOCXfSWr9rq7sZ9/icsDuh07K5+sdnuAuTXhlPkBozqNkJC0eM57BBIZgIb+CHH9XTGC7hTwkFJMJ8AALX9HxeO/+dnaNznrfHhz8mifH9p93n+WL2+WfkhDFOXt3Ee6mtndFNINCSeKnw01j0JMvBLrVdlr3jeKwP79vRogilb7Pmb1cJJqSal+PfSCsXSviWI8fXBRNzpsmZ6OUEtYH2ZmPIxd7UjkK2coOs3iwngkM2bOz+kVK5ZrYFTtdYj4bMFdMPY7ZPby5tBLzcgohf3sYKUz5nEgOpTdvmmn20ZHsqTMKXT7W1ktTohIc5FJ2bDF211Mk9DwdRv24QmC3X6324UQdVo99/j48Lh3fIhO+t1xP7n7hSIZ/5wcH6UmhJMMe0aM1ulqL/oPVfgth/1IAAA= + H4sIAAAAAAAC/+1cW3PiNhR+z69Q3T4kMywLBEjoTF+a3bY70+1mErr7sMkwwhagriw5kpyEUve3V7ZsfBOXEAhk6pfsWrdzdM53PqRjWbMjAKzBAFPPl8L6EXxVzwDMor+qhkIXqVLr3fXg8urTx/f9397/eW3VkmoCh4iE9ZecuUhOkC/SSgcJm2NPYkbDJmmFnHrRoA6UUDCf2yit84g/xvSDE9Z7hkF1/R+xWhmxUYNA/b2t6SlxdOdjjgyTSuSPORxBCtPBsWMsTozwa7HiHnERz65bb9dPYyVqZnEepMpYZWHexCgqW5wRtFyGyaR4oTFp2YwmkZ16o97YYG4SDgkqS+vni8tzmzuxgKAPQv0PfERiAt5BMRkyyB0QdwfNeqtbb0bDaqP2GSMSe6pjMyqMVDSgwWaEQE+gUOURJALNNRtz7FyysEvSWBVOkgHj5wf13GpnCh5VQSPzPA2f48cgb6FmCuu5crdpmGBJNBgIG0IC+gp+I2yX44izB7N3MmhYL0b7TCpBYeQgIQXAFKj2wCa+kIinvUYYEeeC0REe543joBH0icybTNuY8UJhNM4jUuPoOmtI/BQWcQuXOZHuUUsrUxfUcuMrBZlrEkDIJw/aWIZeaDYKoyucOBhR+TGWMikrICbs4ZJhGs3JokjBbbEaPsUycgi680TaLCh5fyGyOgVkdVcAq2kGVit9pMpz9zAi6U7G8SzyeUEDgsaIOiXnQWKncZM2hkKW3AUfs9a5zVnHwcIjcJoYW7PDEiNpqv+c0sN9sxkxURoAkI+RzOuWU31lAESt0KPHdRz51DkWvguOOZToGId8M0iiYSDD4Jhx5DGubPrTvzeWHvqfBzj1QojcWMHXH9QPj+o7SOx+e3JSA0rp5kl5qoZQj2McfGbEd1E51IWEcquxLnzbRkKAUGnARlXsPzf2PaRcQGX0uAsG6K7HAKcVA2zAAM+J/Zpaa3rKoGhgq/l9p5p06vUFlADegq3TzFr8ch2H+5Xq/ALs0n58zDFKRSqHtqBottbjk3bFJ3tZUeRZJWzSXsgq8UKDcbUpsiXjx431SEFFqXgBMuhUZHDoZHC+Hhl0KjI4EDLobJ0MOrsmgys9YRX+I8ZdGBYD9T/wW79/CYRSH6sVyhpswFSwKKCjInZmRcxIe4LK9DDPUg2nUTaxVqxNIWx9hoo8wPeJq6xc06AAUo8ztQeQGJVBDUo6zLWI0WtUJUyShRpkrFfQoaTFMknIxi4kYpmY1sajRyS1bAIF9srjMUblIgrcnWu9TmOfXr3sNMDvKoCpPX21jnUP0Ku9/Xq1V3l1J17t7dervcqr2/dqnIjcp2dzyZHX6lpj/vGpUvSOp26jcIOjPbVEZnmYzMox2py9GUL72zhaAFulxsHGasqJWhBPGHGerl6y9YNDwYgvTcAI92cSeSaoLdKrsCFVix3HOHBOP+oTYmwT1DYUO1V+Yw+rJVuNeq9jbVf2mCNEV4tumqUaSm9XA2Zv3KV2HxLTaA8zeGD8G2HQGdxDvk8W+xLrYR2kleIN3l5p3qTCBuzoYvoFO3KyTFi70ThssIaHMoQHd+OR2FAT7DhGTpibSXIfHbSdKusk1ulj9zVh5ahYukaatNlddr5H53rNidHuysToi2cdoyN6g78YplHqcTgFxyaA15azQ83A4SfbPiZxs/D39MYKa+v6H1OjxTXpHG6sk7yJdP6xfFItdqCQkMoYcLkqncf+Zd57NgMmyUFQX1CT6gSCIC+Wo5E+/FhONmbibDt4mCjPsTGH7uDOV1PFBB036p0aSHBCUG0DqBhhMXB8rju4mBAskM2oIwZD3/6G5AZgqdCSR0suf/kyQOlVQHmNQOm9PFAqpLxOpPR2iJRnrEVOXuSI1tu9aFitjFYDs5QpXvI2O3yp/HZ8dXkBkrRI9uU2h1TMX0IvWXHrHYqL1MJ8qdQ45Zk5evDst+U/TyUSQCAqAaQO4MjGCN8jp/T6vH9x8G/P7ft9pn20Ja+QHdnv1eb3hwf49jyE5/5de13SonJrldau0tpVWrtK3FZp7SqtvTqt3eqa09pn/9+0trQ9tYHTa8bBMFxnVNu4bSW4s/uBQ0owrIeKcNFbIWKrG/vcAn7ZV7Jqr3sY+/mXuDyg3TKz8vl6twfoWxMumOsxGqYRYpIWu7xHIJYBqO8OEQ+/K0bQngDuU4rpGGigZe+oePo3P3v7JmeTD2/On+zzU7PPezv58mbphzREUd7BfaQbMrudQLom4Vjxs6bmoY+JU2C9MnvN+wYBOJ7N1ABBsN73MeuHk1RLSvXrES4YC/eaKMYLDy6GjU4buqcl1BLWhakZTyNXWxK5yhmKTtO40B5JjZnxc3LFiuEaGFV75yM+XXAXjPkOmaOsOcKlZqCVwm56sNIa8SgQLcoe3jSTbaMlWVxm5br9rawWJUSkvsikaNj87S66ia/5ugl78BzBdq/dbkOIWo2OfXZ2etY5O0XnvfaoF9/9QpGMfk7OuokJ4TjFnhYT6nR7FPwHgIlFUf1IAAA= istio-service.json.gz: - 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 istio-workload.json.gz: - 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 istio-performance.json.gz: - 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 {{- end }} diff --git a/charts/kubezero-metrics/Chart.yaml b/charts/kubezero-metrics/Chart.yaml index 5a0378f8..c15c639e 100644 --- a/charts/kubezero-metrics/Chart.yaml +++ b/charts/kubezero-metrics/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: kubezero-metrics description: KubeZero Umbrella Chart for Prometheus, Grafana and Alertmanager as well as all Kubernetes integrations. type: application -version: 0.11.1 +version: 0.12.0 home: https://kubezero.com icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png keywords: @@ -19,7 +19,7 @@ dependencies: version: 0.2.1 repository: https://cdn.zero-downtime.net/charts/ - name: kube-prometheus-stack - version: 69.8.2 + version: 75.2.1 repository: https://prometheus-community.github.io/helm-charts - name: prometheus-adapter version: 4.14.1 diff --git a/charts/kubezero-metrics/README.md b/charts/kubezero-metrics/README.md index b6d717c5..f7a7b156 100644 --- a/charts/kubezero-metrics/README.md +++ b/charts/kubezero-metrics/README.md @@ -1,6 +1,6 @@ # kubezero-metrics -![Version: 0.10.4](https://img.shields.io/badge/Version-0.10.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) +![Version: 0.11.1](https://img.shields.io/badge/Version-0.11.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) KubeZero Umbrella Chart for Prometheus, Grafana and Alertmanager as well as all Kubernetes integrations. @@ -18,10 +18,10 @@ Kubernetes: `>= 1.30.0-0` | Repository | Name | Version | |------------|------|---------| -| https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | -| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 69.2.3 | -| https://prometheus-community.github.io/helm-charts | prometheus-adapter | 4.11.0 | -| https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 3.0.0 | +| https://cdn.zero-downtime.net/charts/ | kubezero-lib | 0.2.1 | +| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 75.2.1 | +| https://prometheus-community.github.io/helm-charts | prometheus-adapter | 4.14.1 | +| https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 3.4.0 | ## Values @@ -141,7 +141,7 @@ Kubernetes: `>= 1.30.0-0` | kube-prometheus-stack.kubeEtcd.enabled | bool | `true` | | | kube-prometheus-stack.kubeEtcd.service.port | int | `2381` | | | kube-prometheus-stack.kubeEtcd.service.targetPort | int | `2381` | | -| kube-prometheus-stack.kubeProxy.enabled | bool | `true` | | +| kube-prometheus-stack.kubeProxy.enabled | bool | `false` | | | kube-prometheus-stack.kubeScheduler.enabled | bool | `true` | | | kube-prometheus-stack.kubeScheduler.service.port | int | `10259` | | | kube-prometheus-stack.kubeScheduler.service.targetPort | int | `10259` | | @@ -159,7 +159,7 @@ Kubernetes: `>= 1.30.0-0` | kube-prometheus-stack.prometheus-node-exporter.prometheus.monitor.relabelings[0].sourceLabels[0] | string | `"__meta_kubernetes_pod_node_name"` | | | kube-prometheus-stack.prometheus-node-exporter.prometheus.monitor.relabelings[0].targetLabel | string | `"instance"` | | | kube-prometheus-stack.prometheus-node-exporter.resources.requests.cpu | string | `"20m"` | | -| kube-prometheus-stack.prometheus-node-exporter.resources.requests.memory | string | `"16Mi"` | | +| kube-prometheus-stack.prometheus-node-exporter.resources.requests.memory | string | `"24Mi"` | | | kube-prometheus-stack.prometheus.enabled | bool | `true` | | | kube-prometheus-stack.prometheus.prometheusSpec.logFormat | string | `"json"` | | | kube-prometheus-stack.prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues | bool | `false` | | @@ -174,9 +174,7 @@ Kubernetes: `>= 1.30.0-0` | kube-prometheus-stack.prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues | bool | `false` | | | kube-prometheus-stack.prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.accessModes[0] | string | `"ReadWriteOnce"` | | | kube-prometheus-stack.prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.resources.requests.storage | string | `"16Gi"` | | -| kube-prometheus-stack.prometheusOperator.admissionWebhooks.patch.nodeSelector."node-role.kubernetes.io/control-plane" | string | `""` | | -| kube-prometheus-stack.prometheusOperator.admissionWebhooks.patch.tolerations[0].effect | string | `"NoSchedule"` | | -| kube-prometheus-stack.prometheusOperator.admissionWebhooks.patch.tolerations[0].key | string | `"node-role.kubernetes.io/control-plane"` | | +| kube-prometheus-stack.prometheusOperator.admissionWebhooks.certManager.enabled | bool | `true` | | | kube-prometheus-stack.prometheusOperator.enabled | bool | `true` | | | kube-prometheus-stack.prometheusOperator.logFormat | string | `"json"` | | | kube-prometheus-stack.prometheusOperator.nodeSelector."node-role.kubernetes.io/control-plane" | string | `""` | | diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json index 2fb4d617..3551928e 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-cluster.json @@ -267,7 +267,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\"}) by (namespace)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\"}) by (namespace)", "legendFormat": "__auto" } ], @@ -344,7 +344,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\"}) by (namespace)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\"}) by (namespace)", "format": "table", "instant": true }, @@ -362,7 +362,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\"}) by (namespace) / sum(namespace_cpu:kube_pod_container_resource_requests:sum{cluster=\"$cluster\"}) by (namespace)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\"}) by (namespace) / sum(namespace_cpu:kube_pod_container_resource_requests:sum{cluster=\"$cluster\"}) by (namespace)", "format": "table", "instant": true }, @@ -380,7 +380,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\"}) by (namespace) / sum(namespace_cpu:kube_pod_container_resource_limits:sum{cluster=\"$cluster\"}) by (namespace)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\"}) by (namespace) / sum(namespace_cpu:kube_pod_container_resource_limits:sum{cluster=\"$cluster\"}) by (namespace)", "format": "table", "instant": true } diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json index d04196ac..a82905e7 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-namespace.json @@ -42,7 +42,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}) / sum(kube_pod_container_resource_requests{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"})", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}) / sum(kube_pod_container_resource_requests{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"})", "instant": true } ], @@ -77,7 +77,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}) / sum(kube_pod_container_resource_limits{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"})", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}) / sum(kube_pod_container_resource_limits{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"})", "instant": true } ], @@ -249,7 +249,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", "legendFormat": "__auto" }, { @@ -324,7 +324,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", "format": "table", "instant": true }, @@ -342,7 +342,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", "format": "table", "instant": true }, @@ -360,7 +360,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits{cluster=\"$cluster\", namespace=\"$namespace\"}) by (pod)", "format": "table", "instant": true } diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json index 9fddbc1e..df185990 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-node.json @@ -109,7 +109,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", node=~\"$node\"}) by (pod)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", node=~\"$node\"}) by (pod)", "legendFormat": "{{pod}}" } ], @@ -168,7 +168,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", node=~\"$node\"}) by (pod)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", node=~\"$node\"}) by (pod)", "format": "table", "instant": true }, @@ -186,7 +186,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", node=~\"$node\"}) by (pod) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests{cluster=\"$cluster\", node=~\"$node\"}) by (pod)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", node=~\"$node\"}) by (pod) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests{cluster=\"$cluster\", node=~\"$node\"}) by (pod)", "format": "table", "instant": true }, @@ -204,7 +204,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", node=~\"$node\"}) by (pod) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits{cluster=\"$cluster\", node=~\"$node\"}) by (pod)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", node=~\"$node\"}) by (pod) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits{cluster=\"$cluster\", node=~\"$node\"}) by (pod)", "format": "table", "instant": true } diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json index daec9690..a945c33b 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-pod.json @@ -109,7 +109,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{namespace=\"$namespace\", pod=\"$pod\", cluster=\"$cluster\", container!=\"\"}) by (container)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{namespace=\"$namespace\", pod=\"$pod\", cluster=\"$cluster\", container!=\"\"}) by (container)", "legendFormat": "__auto" }, { @@ -257,7 +257,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container)", "format": "table", "instant": true }, @@ -275,7 +275,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container)", "format": "table", "instant": true }, @@ -293,7 +293,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container)", + "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container) / sum(cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits{cluster=\"$cluster\", namespace=\"$namespace\", pod=\"$pod\", container!=\"\"}) by (container)", "format": "table", "instant": true } diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json index 3c8e4343..6577c0bc 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workload.json @@ -57,7 +57,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n", + "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n", "legendFormat": "__auto" } ], @@ -116,7 +116,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n", + "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n", "format": "table", "instant": true }, @@ -134,7 +134,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n/sum(\n kube_pod_container_resource_requests{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n", + "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n/sum(\n kube_pod_container_resource_requests{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n", "format": "table", "instant": true }, @@ -152,7 +152,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n/sum(\n kube_pod_container_resource_limits{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n", + "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n/sum(\n kube_pod_container_resource_limits{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"}\n * on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload=\"$workload\", workload_type=~\"$type\"}\n) by (pod)\n", "format": "table", "instant": true } diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json index 25387f9a..e5435e8b 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-resources-workloads-namespace.json @@ -109,7 +109,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n", + "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n", "legendFormat": "{{workload}} - {{workload_type}}" }, { @@ -205,7 +205,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n", + "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n", "format": "table", "instant": true }, @@ -223,7 +223,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n/sum(\n kube_pod_container_resource_requests{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n", + "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n/sum(\n kube_pod_container_resource_requests{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n", "format": "table", "instant": true }, @@ -241,7 +241,7 @@ "type": "prometheus", "uid": "${datasource}" }, - "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster=\"$cluster\", namespace=\"$namespace\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n/sum(\n kube_pod_container_resource_limits{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n", + "expr": "sum(\n node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m{cluster=\"$cluster\", namespace=\"$namespace\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n/sum(\n kube_pod_container_resource_limits{job=\"kube-state-metrics\", cluster=\"$cluster\", namespace=\"$namespace\", resource=\"cpu\"}\n* on(namespace,pod)\n group_left(workload, workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\", namespace=\"$namespace\", workload_type=~\"$type\"}\n) by (workload, workload_type)\n", "format": "table", "instant": true } diff --git a/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-node-rsrc-use.json b/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-node-rsrc-use.json index d8630438..160401a1 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-node-rsrc-use.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/k8s-windows-node-rsrc-use.json @@ -599,7 +599,7 @@ "hide": 0, "label": "instance", "name": "instance", - "query": "label_values(windows_system_system_up_time{cluster=\"$cluster\"}, instance)", + "query": "label_values(windows_system_boot_time_timestamp_seconds{cluster=\"$cluster\"}, instance)", "refresh": 2, "type": "query" } diff --git a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json index 4c54a8cd..79e159bd 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-pod.json @@ -53,6 +53,7 @@ "y": 0 }, "id": 1, + "interval": "1m", "pluginVersion": "v11.4.0", "targets": [ { @@ -106,6 +107,7 @@ "y": 0 }, "id": 2, + "interval": "1m", "pluginVersion": "v11.4.0", "targets": [ { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json index f2b045de..d7abceef 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/namespace-by-workload.json @@ -35,6 +35,7 @@ "y": 0 }, "id": 1, + "interval": "1m", "options": { "displayMode": "basic", "showUnfilled": false @@ -74,6 +75,7 @@ "y": 0 }, "id": 2, + "interval": "1m", "options": { "displayMode": "basic", "showUnfilled": false diff --git a/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json b/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json index 904df1b2..cfe4c961 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/pod-total.json @@ -53,6 +53,7 @@ "y": 0 }, "id": 1, + "interval": "1m", "pluginVersion": "v11.4.0", "targets": [ { @@ -106,6 +107,7 @@ "y": 0 }, "id": 2, + "interval": "1m", "pluginVersion": "v11.4.0", "targets": [ { diff --git a/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json b/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json index 2276cc23..5f67a258 100644 --- a/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json +++ b/charts/kubezero-metrics/jsonnet/dashboards/workload-total.json @@ -35,6 +35,7 @@ "y": 0 }, "id": 1, + "interval": "1m", "options": { "displayMode": "basic", "showUnfilled": false @@ -74,6 +75,7 @@ "y": 0 }, "id": 2, + "interval": "1m", "options": { "displayMode": "basic", "showUnfilled": false @@ -113,6 +115,7 @@ "y": 9 }, "id": 3, + "interval": "1m", "options": { "displayMode": "basic", "showUnfilled": false @@ -152,6 +155,7 @@ "y": 9 }, "id": 4, + "interval": "1m", "options": { "displayMode": "basic", "showUnfilled": false diff --git a/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json b/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json index 370a75d1..546f3d25 100644 --- a/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json +++ b/charts/kubezero-metrics/jsonnet/jsonnetfile.lock.json @@ -18,7 +18,7 @@ "subdir": "contrib/mixin" } }, - "version": "f30cbaac111aa01a310fe75360c759cdd4d9cd14", + "version": "5dfd6e05a4bd8e09debe31742dee4221ff391d0d", "sum": "XmXkOCriQIZmXwlIIFhqlJMa0e6qGWdxZD+ZDYaN0Po=" }, { @@ -48,7 +48,7 @@ "subdir": "gen/grafonnet-latest" } }, - "version": "d20e609202733790caf5b554c9945d049f243ae3", + "version": "5a8f3d6aa89b7e7513528371d2d1265aedc844bc", "sum": "V9vAj21qJOc2DlMPDgB1eEjSQU4A+sAA4AXuJ6bd4xc=" }, { @@ -58,7 +58,7 @@ "subdir": "gen/grafonnet-v10.0.0" } }, - "version": "d20e609202733790caf5b554c9945d049f243ae3", + "version": "5a8f3d6aa89b7e7513528371d2d1265aedc844bc", "sum": "xdcrJPJlpkq4+5LpGwN4tPAuheNNLXZjE6tDcyvFjr0=" }, { @@ -68,7 +68,7 @@ "subdir": "gen/grafonnet-v11.4.0" } }, - "version": "d20e609202733790caf5b554c9945d049f243ae3", + "version": "5a8f3d6aa89b7e7513528371d2d1265aedc844bc", "sum": "aVAX09paQYNOoCSKVpuk1exVIyBoMt/C50QJI+Q/3nA=" }, { @@ -78,8 +78,18 @@ "subdir": "grafana-builder" } }, - "version": "d6c38bb26f576b128cadca4137d73a037afdd872", - "sum": "yxqWcq/N3E/a/XreeU6EuE6X7kYPnG0AspAQFKOjASo=" + "version": "c014522d7d2c9ccba70556ec75a31cdde8907fe1", + "sum": "G7B6E5sqWirDbMWRhifbLRfGgRFbIh9WCYa6X3kMh6g=" + }, + { + "source": { + "git": { + "remote": "https://github.com/grafana/jsonnet-libs.git", + "subdir": "mixin-utils" + } + }, + "version": "c014522d7d2c9ccba70556ec75a31cdde8907fe1", + "sum": "iu4NT+YOgpxQnxElKML76cSxgTA0cwTmFfI0hOfHHmw=" }, { "source": { @@ -98,8 +108,8 @@ "subdir": "" } }, - "version": "1199b50e9d2ff53d4bb5fb2304ad1fb69d38e609", - "sum": "LfbgcJbilu4uBdKYZSvmkoOTPwEAzg10L3/VqKAIWtA=" + "version": "4eee017d21cb63a303925d1dcd9fc5c496809b46", + "sum": "Kh0GbIycNmJPzk6IOMXn1BbtLNyaiiimclYk7+mvsns=" }, { "source": { @@ -108,8 +118,8 @@ "subdir": "" } }, - "version": "e27267571be06c2bdc3d2fd8dbd70161cd709cb4", - "sum": "je1RPCp2aFNefYs5Q57Q5wDm93p8pL4pdBtA5rC7jLA=" + "version": "98e85ddf870783424a921de5efda8d3f827b5580", + "sum": "eMj9kk9Zf4YgAK8/mJ3BnmpfMW3GDkAQlqZQut8Lidc=" }, { "source": { @@ -118,7 +128,7 @@ "subdir": "jsonnet/kube-state-metrics" } }, - "version": "2a95d4649b2fea55799032fb9c0b571c4ba7f776", + "version": "dbf6e9b4e2f9e1ab744a23aad87665214c4d9205", "sum": "3bioG7CfTfY9zeu5xU4yon6Zt3kYvNkyl492nOhQxnM=" }, { @@ -128,7 +138,7 @@ "subdir": "jsonnet/kube-state-metrics-mixin" } }, - "version": "2a95d4649b2fea55799032fb9c0b571c4ba7f776", + "version": "dbf6e9b4e2f9e1ab744a23aad87665214c4d9205", "sum": "qclI7LwucTjBef3PkGBkKxF0mfZPbHnn4rlNWKGtR4c=" }, { @@ -138,8 +148,8 @@ "subdir": "jsonnet/kube-prometheus" } }, - "version": "1eea946a1532f1e8cccfceea98d907bf3a10b1d9", - "sum": "17LhiwefVfoNDsF3DcFZw/UL4PMU7YpNNUaOdaYd1gE=" + "version": "03cb9b9319c2057728570875561fe331f7ee61c3", + "sum": "cNj7EBtOA0BlSSoas2dSYnIzvKHLi/gNIIONd77DU+M=" }, { "source": { @@ -148,7 +158,7 @@ "subdir": "jsonnet/mixin" } }, - "version": "465bcbaf2a727c942e7f923aacfb9dff9af8d4a1", + "version": "71440266018206a8d2cdc840ab10edca12b0cdbe", "sum": "gi+knjdxs2T715iIQIntrimbHRgHnpM8IFBJDD1gYfs=", "name": "prometheus-operator-mixin" }, @@ -159,8 +169,8 @@ "subdir": "jsonnet/prometheus-operator" } }, - "version": "465bcbaf2a727c942e7f923aacfb9dff9af8d4a1", - "sum": "LctDdofQostvviE5y8vpRKWGGO1ZKO3dgJe7P9xifW0=" + "version": "71440266018206a8d2cdc840ab10edca12b0cdbe", + "sum": "dtH2oiXvUttHg2fz6uITHKuZflkQ832ddkdnhVu0drY=" }, { "source": { @@ -169,8 +179,8 @@ "subdir": "doc/alertmanager-mixin" } }, - "version": "b5d1a64ad5bb0ff879705714d1e40cea82efbd5c", - "sum": "Mf4h1BYLle2nrgjf/HXrBbl0Zk8N+xaoEM017o0BC+k=", + "version": "0ce3cfb962db3cbb1649d3e816a49a13c4036cd1", + "sum": "j5prvRrJdoCv7n45l5Uy2ghl1IDb9BBUqjwCDs4ZJoQ=", "name": "alertmanager" }, { @@ -180,8 +190,8 @@ "subdir": "docs/node-mixin" } }, - "version": "11365f97bef6cb0e6259d536a7e21c49e3f5c065", - "sum": "xYj6VYFT/eafsbleNlC+Z2VfLy1CndyYrJs9BcTmnX8=" + "version": "2179f0a34d2d7b6212f3a1c647d5aca44ffa33e5", + "sum": "NcpQ0Hz0qciUqmOYoAR0X8GUK5pH/QiUXm1aDNgvua0=" }, { "source": { @@ -190,8 +200,8 @@ "subdir": "documentation/prometheus-mixin" } }, - "version": "509b978f0d675b4c9b3ccf8c0fc06961b0f03e8f", - "sum": "2c+wttfee9TwuQJZIkNV7Tekem74Qgc7iZ842P28rNw=", + "version": "f69c83f5f1dce5f0b2f90172d5f6f9e2bda91fec", + "sum": "lT5n+8i4q20LuvlmtIs/GXdlX6fQiwwuZkeOtnAPT50=", "name": "prometheus" }, { @@ -201,8 +211,8 @@ "subdir": "jsonnet/controller-gen" } }, - "version": "d723f4d1a066dd657e9d09c46a158519dda0faa8", - "sum": "cxAPQovFkM16zNB5/94O+sk/n3SETk6ao6Oas2Sa6RE=", + "version": "a80a1021000b5c19dfd17cd20e62364f6675dceb", + "sum": "O3c9Uurei8MWAY0Ad7DOL1fMqSgdHyHB7MpHsxSITKM=", "name": "pyrra" }, { @@ -212,7 +222,7 @@ "subdir": "mixin" } }, - "version": "346d18bb0f8011c63d7106de494cf3b9253161a1", + "version": "933f04f55efba2ec599501df0ae58714714384d0", "sum": "ieCD4eMgGbOlrI8GmckGPHBGQDcLasE1rULYq56W/bs=", "name": "thanos-mixin" } diff --git a/charts/kubezero-metrics/jsonnet/rules/alertmanager-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/alertmanager-prometheusRule index 81d93800..e9939713 100644 --- a/charts/kubezero-metrics/jsonnet/rules/alertmanager-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/alertmanager-prometheusRule @@ -7,7 +7,7 @@ "app.kubernetes.io/instance": "main", "app.kubernetes.io/name": "alertmanager", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "0.28.0", + "app.kubernetes.io/version": "0.28.1", "prometheus": "k8s", "role": "alert-rules" }, @@ -52,7 +52,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/alertmanager/alertmanagerfailedtosendalerts", "summary": "An Alertmanager instance failed to send notifications." }, - "expr": "(\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\"}[5m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\"}[5m])\n)\n> 0.01\n", + "expr": "(\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\"}[15m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\"}[15m])\n)\n> 0.01\n", "for": "5m", "labels": { "severity": "warning" @@ -65,7 +65,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/alertmanager/alertmanagerclusterfailedtosendalerts", "summary": "All Alertmanager instances in a cluster failed to send notifications to a critical integration." }, - "expr": "min by (namespace,service, integration) (\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration=~`.*`}[5m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration=~`.*`}[5m])\n)\n> 0.01\n", + "expr": "min by (namespace,service, integration) (\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration=~`.*`}[15m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration=~`.*`}[15m])\n)\n> 0.01\n", "for": "5m", "labels": { "severity": "critical" @@ -78,7 +78,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/alertmanager/alertmanagerclusterfailedtosendalerts", "summary": "All Alertmanager instances in a cluster failed to send notifications to a non-critical integration." }, - "expr": "min by (namespace,service, integration) (\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration!~`.*`}[5m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration!~`.*`}[5m])\n)\n> 0.01\n", + "expr": "min by (namespace,service, integration) (\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration!~`.*`}[15m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration!~`.*`}[15m])\n)\n> 0.01\n", "for": "5m", "labels": { "severity": "warning" diff --git a/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule index 6b17e46e..eb9f217b 100644 --- a/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/kubernetes-prometheusRule @@ -88,7 +88,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetreplicasmismatch", "summary": "StatefulSet has not matched the expected number of replicas." }, - "expr": "(\n kube_statefulset_status_replicas_ready{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas{job=\"kube-state-metrics\"}\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[10m])\n ==\n 0\n)\n", + "expr": "(\n kube_statefulset_status_replicas_ready{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[10m])\n ==\n 0\n)\n", "for": "15m", "labels": { "severity": "warning" @@ -114,7 +114,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetupdatenotrolledout", "summary": "StatefulSet update has not been rolled out." }, - "expr": "(\n max by(namespace, statefulset, job, cluster) (\n kube_statefulset_status_current_revision{job=\"kube-state-metrics\"}\n unless\n kube_statefulset_status_update_revision{job=\"kube-state-metrics\"}\n )\n *\n (\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}\n )\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n", + "expr": "(\n max by(namespace, statefulset, job, cluster) (\n kube_statefulset_status_current_revision{job=\"kube-state-metrics\"}\n unless\n kube_statefulset_status_update_revision{job=\"kube-state-metrics\"}\n )\n * on(namespace, statefulset, job, cluster)\n (\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}\n )\n) and on(namespace, statefulset, job, cluster) (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n", "for": "15m", "labels": { "severity": "warning" @@ -222,6 +222,19 @@ "labels": { "severity": "warning" } + }, + { + "alert": "KubePdbNotEnoughHealthyPods", + "annotations": { + "description": "PDB {{ $labels.cluster }}/{{ $labels.namespace }}/{{ $labels.poddisruptionbudget }} expects {{ $value }} more healthy pods. The desired number of healthy pods has not been met for at least 15m.", + "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubepdbnotenoughhealthypods", + "summary": "PDB does not have enough healthy pods." + }, + "expr": "(\n kube_poddisruptionbudget_status_desired_healthy{job=\"kube-state-metrics\"}\n -\n kube_poddisruptionbudget_status_current_healthy{job=\"kube-state-metrics\"}\n)\n> 0\n", + "for": "15m", + "labels": { + "severity": "warning" + } } ] }, @@ -244,7 +257,7 @@ { "alert": "KubeMemoryQuotaOvercommit", "annotations": { - "description": "Cluster {{ $labels.cluster }} has overcommitted memory resource requests for Namespaces.", + "description": "Cluster {{ $labels.cluster }} has overcommitted memory resource requests for Namespaces.", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubememoryquotaovercommit", "summary": "Cluster has overcommitted memory resource requests." }, @@ -300,7 +313,7 @@ "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/cputhrottlinghigh", "summary": "Processes experience elevated CPU throttling." }, - "expr": "sum(increase(container_cpu_cfs_throttled_periods_total{container!=\"\", job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n /\nsum(increase(container_cpu_cfs_periods_total{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n > ( 25 / 100 )\n", + "expr": "sum(increase(container_cpu_cfs_throttled_periods_total{container!=\"\", job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n / on (cluster, namespace, pod, container, instance) group_left\nsum(increase(container_cpu_cfs_periods_total{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n > ( 25 / 100 )\n", "for": "15m", "labels": { "severity": "info" @@ -585,6 +598,19 @@ "severity": "warning" } }, + { + "alert": "KubeNodePressure", + "annotations": { + "description": "{{ $labels.node }} on cluster {{ $labels.cluster }} has active Condition {{ $labels.condition }}. This is caused by resource usage exceeding eviction thresholds.", + "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodepressure", + "summary": "Node has as active Condition." + }, + "expr": "kube_node_status_condition{job=\"kube-state-metrics\",condition=~\"(MemoryPressure|DiskPressure|PIDPressure)\",status=\"true\"} == 1\nand on (cluster, node)\nkube_node_spec_unschedulable{job=\"kube-state-metrics\"} == 0\n", + "for": "10m", + "labels": { + "severity": "info" + } + }, { "alert": "KubeNodeUnreachable", "annotations": { @@ -624,6 +650,19 @@ "severity": "warning" } }, + { + "alert": "KubeNodeEviction", + "annotations": { + "description": "Node {{ $labels.node }} on {{ $labels.cluster }} is evicting Pods due to {{ $labels.eviction_signal }}. Eviction occurs when eviction thresholds are crossed, typically caused by Pods exceeding RAM/ephemeral-storage limits.", + "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodeeviction", + "summary": "Node is evicting pods." + }, + "expr": "sum(rate(kubelet_evictions{job=\"kubelet\", metrics_path=\"/metrics\"}[15m])) by(cluster, eviction_signal, instance)\n* on (cluster, instance) group_left(node)\nmax by (cluster, instance, node) (\n kubelet_node_name{job=\"kubelet\", metrics_path=\"/metrics\"}\n)\n> 0\n", + "for": "0s", + "labels": { + "severity": "info" + } + }, { "alert": "KubeletPlegDurationHigh", "annotations": { @@ -814,21 +853,21 @@ "record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d" }, { - "expr": "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"})\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"})\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n", + "expr": "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"} or vector(0))\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"} or vector(0))\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"} or vector(0))\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"} or vector(0))\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n", "labels": { "verb": "all" }, "record": "apiserver_request:availability30d" }, { - "expr": "1 - (\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n # too slow\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\"})\n", + "expr": "1 - (\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n # too slow\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"} or vector(0))\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"} or vector(0))\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"} or vector(0))\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\"})\n", "labels": { "verb": "read" }, "record": "apiserver_request:availability30d" }, { - "expr": "1 - (\n (\n # too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\"})\n", + "expr": "1 - (\n (\n # too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"} or vector(0))\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\"})\n", "labels": { "verb": "write" }, @@ -993,6 +1032,10 @@ { "name": "k8s.rules.container_cpu_usage_seconds_total", "rules": [ + { + "expr": "sum by (cluster, namespace, pod, container) (\n rate(container_cpu_usage_seconds_total{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", image!=\"\"}[5m])\n) * on (cluster, namespace, pod) group_left(node) topk by (cluster, namespace, pod) (\n 1, max by(cluster, namespace, pod, node) (kube_pod_info{node!=\"\"})\n)\n", + "record": "node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m" + }, { "expr": "sum by (cluster, namespace, pod, container) (\n irate(container_cpu_usage_seconds_total{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", image!=\"\"}[5m])\n) * on (cluster, namespace, pod) group_left(node) topk by (cluster, namespace, pod) (\n 1, max by(cluster, namespace, pod, node) (kube_pod_info{node!=\"\"})\n)\n", "record": "node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate" @@ -1091,7 +1134,14 @@ "name": "k8s.rules.pod_owner", "rules": [ { - "expr": "max by (cluster, namespace, workload, pod) (\n label_replace(\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"ReplicaSet\"},\n \"replicaset\", \"$1\", \"owner_name\", \"(.*)\"\n ) * on(replicaset, namespace) group_left(owner_name) topk by(replicaset, namespace) (\n 1, max by (replicaset, namespace, owner_name) (\n kube_replicaset_owner{job=\"kube-state-metrics\"}\n )\n ),\n \"workload\", \"$1\", \"owner_name\", \"(.*)\"\n )\n)\n", + "expr": "max by (cluster, namespace, workload, pod) (\n label_replace(\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"ReplicaSet\"},\n \"replicaset\", \"$1\", \"owner_name\", \"(.*)\"\n ) * on (cluster, replicaset, namespace) group_left(owner_name) topk by(cluster, replicaset, namespace) (\n 1, max by (cluster, replicaset, namespace, owner_name) (\n kube_replicaset_owner{job=\"kube-state-metrics\", owner_kind=\"\"}\n )\n ),\n \"workload\", \"$1\", \"replicaset\", \"(.*)\"\n )\n)\n", + "labels": { + "workload_type": "replicaset" + }, + "record": "namespace_workload_pod:kube_pod_owner:relabel" + }, + { + "expr": "max by (cluster, namespace, workload, pod) (\n label_replace(\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"ReplicaSet\"},\n \"replicaset\", \"$1\", \"owner_name\", \"(.*)\"\n ) * on(replicaset, namespace, cluster) group_left(owner_name) topk by(cluster, replicaset, namespace) (\n 1, max by (cluster, replicaset, namespace, owner_name) (\n kube_replicaset_owner{job=\"kube-state-metrics\", owner_kind=\"Deployment\"}\n )\n ),\n \"workload\", \"$1\", \"owner_name\", \"(.*)\"\n )\n)\n", "labels": { "workload_type": "deployment" }, @@ -1105,18 +1155,36 @@ "record": "namespace_workload_pod:kube_pod_owner:relabel" }, { - "expr": "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"StatefulSet\"},\n \"workload\", \"$1\", \"owner_name\", \"(.*)\"\n )\n)\n", + "expr": "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"StatefulSet\"},\n \"workload\", \"$1\", \"owner_name\", \"(.*)\")\n)\n", "labels": { "workload_type": "statefulset" }, "record": "namespace_workload_pod:kube_pod_owner:relabel" }, { - "expr": "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"Job\"},\n \"workload\", \"$1\", \"owner_name\", \"(.*)\"\n )\n)\n", + "expr": "group by (cluster, namespace, workload, pod) (\n label_join(\n group by (cluster, namespace, job_name, pod, owner_name) (\n label_join(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"Job\"}\n , \"job_name\", \"\", \"owner_name\")\n )\n * on (cluster, namespace, job_name) group_left()\n group by (cluster, namespace, job_name) (\n kube_job_owner{job=\"kube-state-metrics\", owner_kind=~\"Pod|\"}\n )\n , \"workload\", \"\", \"owner_name\")\n)\n", "labels": { "workload_type": "job" }, "record": "namespace_workload_pod:kube_pod_owner:relabel" + }, + { + "expr": "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"\", owner_name=\"\"},\n \"workload\", \"$1\", \"pod\", \"(.+)\")\n)\n", + "labels": { + "workload_type": "barepod" + }, + "record": "namespace_workload_pod:kube_pod_owner:relabel" + }, + { + "expr": "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"Node\"},\n \"workload\", \"$1\", \"pod\", \"(.+)\")\n)\n", + "labels": { + "workload_type": "staticpod" + }, + "record": "namespace_workload_pod:kube_pod_owner:relabel" + }, + { + "expr": "group by (cluster, namespace, workload, workload_type, pod) (\n label_join(\n label_join(\n group by (cluster, namespace, job_name, pod) (\n label_join(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"Job\"}\n , \"job_name\", \"\", \"owner_name\")\n )\n * on (cluster, namespace, job_name) group_left(owner_kind, owner_name)\n group by (cluster, namespace, job_name, owner_kind, owner_name) (\n kube_job_owner{job=\"kube-state-metrics\", owner_kind!=\"Pod\", owner_kind!=\"\"}\n )\n , \"workload\", \"\", \"owner_name\")\n , \"workload_type\", \"\", \"owner_kind\")\n \n OR\n\n label_replace(\n label_replace(\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"ReplicaSet\"}\n , \"replicaset\", \"$1\", \"owner_name\", \"(.+)\"\n )\n * on(cluster, namespace, replicaset) group_left(owner_kind, owner_name)\n group by (cluster, namespace, replicaset, owner_kind, owner_name) (\n kube_replicaset_owner{job=\"kube-state-metrics\", owner_kind!=\"Deployment\", owner_kind!=\"\"}\n )\n , \"workload\", \"$1\", \"owner_name\", \"(.+)\")\n OR\n label_replace(\n group by (cluster, namespace, pod, owner_name, owner_kind) (\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind!=\"ReplicaSet\", owner_kind!=\"DaemonSet\", owner_kind!=\"StatefulSet\", owner_kind!=\"Job\", owner_kind!=\"Node\", owner_kind!=\"\"}\n )\n , \"workload\", \"$1\", \"owner_name\", \"(.+)\"\n )\n , \"workload_type\", \"$1\", \"owner_kind\", \"(.+)\")\n)\n", + "record": "namespace_workload_pod:kube_pod_owner:relabel" } ] }, @@ -1238,144 +1306,6 @@ "record": "node_quantile:kubelet_pleg_relist_duration_seconds:histogram_quantile" } ] - }, - { - "name": "windows.node.rules", - "rules": [ - { - "expr": "count by (cluster) (\n windows_system_system_up_time{job=\"kubernetes-windows-exporter\"}\n)\n", - "record": "node:windows_node:sum" - }, - { - "expr": "count by (cluster, instance) (sum by (cluster, instance, core) (\n windows_cpu_time_total{job=\"kubernetes-windows-exporter\"}\n))\n", - "record": "node:windows_node_num_cpu:sum" - }, - { - "expr": "1 - avg by (cluster) (rate(windows_cpu_time_total{job=\"kubernetes-windows-exporter\",mode=\"idle\"}[1m]))\n", - "record": ":windows_node_cpu_utilisation:avg1m" - }, - { - "expr": "1 - avg by (cluster, instance) (\n rate(windows_cpu_time_total{job=\"kubernetes-windows-exporter\",mode=\"idle\"}[1m])\n)\n", - "record": "node:windows_node_cpu_utilisation:avg1m" - }, - { - "expr": "1 -\nsum by (cluster) (windows_memory_available_bytes{job=\"kubernetes-windows-exporter\"})\n/\nsum by (cluster) (windows_os_visible_memory_bytes{job=\"kubernetes-windows-exporter\"})\n", - "record": ":windows_node_memory_utilisation:" - }, - { - "expr": "sum by (cluster) (windows_memory_available_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_cache_bytes{job=\"kubernetes-windows-exporter\"})\n", - "record": ":windows_node_memory_MemFreeCached_bytes:sum" - }, - { - "expr": "(windows_memory_cache_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_modified_page_list_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_standby_cache_core_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_standby_cache_normal_priority_bytes{job=\"kubernetes-windows-exporter\"} + windows_memory_standby_cache_reserve_bytes{job=\"kubernetes-windows-exporter\"})\n", - "record": "node:windows_node_memory_totalCached_bytes:sum" - }, - { - "expr": "sum by (cluster) (windows_os_visible_memory_bytes{job=\"kubernetes-windows-exporter\"})\n", - "record": ":windows_node_memory_MemTotal_bytes:sum" - }, - { - "expr": "sum by (cluster, instance) (\n (windows_memory_available_bytes{job=\"kubernetes-windows-exporter\"})\n)\n", - "record": "node:windows_node_memory_bytes_available:sum" - }, - { - "expr": "sum by (cluster, instance) (\n windows_os_visible_memory_bytes{job=\"kubernetes-windows-exporter\"}\n)\n", - "record": "node:windows_node_memory_bytes_total:sum" - }, - { - "expr": "(node:windows_node_memory_bytes_total:sum - node:windows_node_memory_bytes_available:sum)\n/\nscalar(sum(node:windows_node_memory_bytes_total:sum))\n", - "record": "node:windows_node_memory_utilisation:ratio" - }, - { - "expr": "1 - (node:windows_node_memory_bytes_available:sum / node:windows_node_memory_bytes_total:sum)\n", - "record": "node:windows_node_memory_utilisation:" - }, - { - "expr": "irate(windows_memory_swap_page_operations_total{job=\"kubernetes-windows-exporter\"}[5m])\n", - "record": "node:windows_node_memory_swap_io_pages:irate" - }, - { - "expr": "avg by (cluster) (irate(windows_logical_disk_read_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_logical_disk_write_seconds_total{job=\"kubernetes-windows-exporter\"}[1m])\n )\n", - "record": ":windows_node_disk_utilisation:avg_irate" - }, - { - "expr": "avg by (cluster, instance) (\n (irate(windows_logical_disk_read_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_logical_disk_write_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n", - "record": "node:windows_node_disk_utilisation:avg_irate" - }, - { - "expr": "max by (cluster,instance,volume)(\n (windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"}\n- windows_logical_disk_free_bytes{job=\"kubernetes-windows-exporter\"})\n/ windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"}\n)\n", - "record": "node:windows_node_filesystem_usage:" - }, - { - "expr": "max by (cluster, instance, volume) (windows_logical_disk_free_bytes{job=\"kubernetes-windows-exporter\"} / windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"})\n", - "record": "node:windows_node_filesystem_avail:" - }, - { - "expr": "sum by (cluster) (irate(windows_net_bytes_total{job=\"kubernetes-windows-exporter\"}[1m]))\n", - "record": ":windows_node_net_utilisation:sum_irate" - }, - { - "expr": "sum by (cluster, instance) (\n (irate(windows_net_bytes_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n", - "record": "node:windows_node_net_utilisation:sum_irate" - }, - { - "expr": "sum by (cluster) (irate(windows_net_packets_received_discarded_total{job=\"kubernetes-windows-exporter\"}[1m])) +\nsum by (cluster) (irate(windows_net_packets_outbound_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]))\n", - "record": ":windows_node_net_saturation:sum_irate" - }, - { - "expr": "sum by (cluster, instance) (\n (irate(windows_net_packets_received_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_net_packets_outbound_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n", - "record": "node:windows_node_net_saturation:sum_irate" - } - ] - }, - { - "name": "windows.pod.rules", - "rules": [ - { - "expr": "windows_container_available{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", - "record": "windows_pod_container_available" - }, - { - "expr": "windows_container_cpu_usage_seconds_total{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", - "record": "windows_container_total_runtime" - }, - { - "expr": "windows_container_memory_usage_commit_bytes{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", - "record": "windows_container_memory_usage" - }, - { - "expr": "windows_container_memory_usage_private_working_set_bytes{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", - "record": "windows_container_private_working_set_usage" - }, - { - "expr": "windows_container_network_receive_bytes_total{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", - "record": "windows_container_network_received_bytes_total" - }, - { - "expr": "windows_container_network_transmit_bytes_total{job=\"kubernetes-windows-exporter\", container_id != \"\"} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job=\"kube-state-metrics\", container_id != \"\"}) by(container, container_id, pod, namespace, cluster)\n", - "record": "windows_container_network_transmitted_bytes_total" - }, - { - "expr": "max by (cluster, namespace, pod, container) (\n kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"}\n) * on(container,pod,namespace,cluster) (windows_pod_container_available)\n", - "record": "kube_pod_windows_container_resource_memory_request" - }, - { - "expr": "kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"} * on(container,pod,namespace,cluster) (windows_pod_container_available)\n", - "record": "kube_pod_windows_container_resource_memory_limit" - }, - { - "expr": "max by (cluster, namespace, pod, container) (\n kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"}\n) * on(container,pod,namespace,cluster) (windows_pod_container_available)\n", - "record": "kube_pod_windows_container_resource_cpu_cores_request" - }, - { - "expr": "kube_pod_container_resource_limits{resource=\"cpu\",job=\"kube-state-metrics\"} * on(container,pod,namespace,cluster) (windows_pod_container_available)\n", - "record": "kube_pod_windows_container_resource_cpu_cores_limit" - }, - { - "expr": "sum by (cluster, namespace, pod, container) (\n rate(windows_container_total_runtime{}[5m])\n)\n", - "record": "namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate" - } - ] } ] } diff --git a/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule index aec9c4cb..061d94e7 100644 --- a/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/node-exporter-prometheusRule @@ -6,7 +6,7 @@ "app.kubernetes.io/component": "exporter", "app.kubernetes.io/name": "node-exporter", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "1.8.2", + "app.kubernetes.io/version": "1.9.1", "prometheus": "k8s", "role": "alert-rules" }, @@ -327,6 +327,19 @@ "severity": "warning" } }, + { + "alert": "NodeSystemdServiceCrashlooping", + "annotations": { + "description": "Systemd service {{ $labels.name }} has being restarted too many times at {{ $labels.instance }} for the last 15 minutes. Please check if service is crash looping.", + "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/node/nodesystemdservicecrashlooping", + "summary": "Systemd service keeps restaring, possibly crash looping." + }, + "expr": "increase(node_systemd_service_restart_total{job=\"node-exporter\"}[5m]) > 2\n", + "for": "15m", + "labels": { + "severity": "warning" + } + }, { "alert": "NodeBondingDegraded", "annotations": { diff --git a/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule index 175523a4..ba63a888 100644 --- a/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/prometheus-operator-prometheusRule @@ -6,7 +6,7 @@ "app.kubernetes.io/component": "controller", "app.kubernetes.io/name": "prometheus-operator", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "0.80.0", + "app.kubernetes.io/version": "0.83.0", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule b/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule index eaa2752d..8aaa7bdd 100644 --- a/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule +++ b/charts/kubezero-metrics/jsonnet/rules/prometheus-prometheusRule @@ -7,7 +7,7 @@ "app.kubernetes.io/instance": "k8s", "app.kubernetes.io/name": "prometheus", "app.kubernetes.io/part-of": "kube-prometheus", - "app.kubernetes.io/version": "3.1.0", + "app.kubernetes.io/version": "3.4.0", "prometheus": "k8s", "role": "alert-rules" }, diff --git a/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml b/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml index a80d709c..473945aa 100644 --- a/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml +++ b/charts/kubezero-metrics/templates/grafana-dashboards-k8s.yaml @@ -22,30 +22,30 @@ binaryData: controller-manager.json.gz: H4sIAAAAAAAC/+2aXVPbOBSG7/kVHk8vYCYwSUgK2ZlesLDL7Gxps13avWiZjGKfOFpky5VkIJvJ/vY9ku34I4akWQIN9Q1EXyc6R68eHTua7liWDS5VZMjA/skaESahoSsZDa4l1nzGgmVNzV+sJvJM8NDltwG2KRGZzqaFBg6LXPhEhCw3XQOEl9SHcr0iXvYVcc9oCCIABdJOKq9yvYUH6mdGguv8TOM2qsz87d8zA1njJDRtLpHjISfCTYzPdhLzdkgCYBXeukQRySPhmPF9wX1QY4hytkcUmHvKgxH1sMs088SFEYmYkoVarI8CqrSxgAdgzxtmyafZ3LAnqNvnxeH2GItHjax8i+VOrnyH5WauPNHlBdPUxepWbuEUiBvC9KxafuYaDxXlQWkGDmdcXHAXyj5k5kMWeTT4BELicN3tptU66Bw07dJKFpe+EKSlcTe94C4Uul1G/m4UTlF+Ej1588V+lXz8Yjesv/kQa7Su9h0eKMEZA7Hvk4B4usNsr2iTBlKRQCVKXVifq0XFfQwXlYY2VKKxxsYV5aCv3C/VGkOMvQ+JQ5WWQavZKDbLMb/tc1x8aZYSbkDY5S64L95FjMlyOHLLXRA1D+WjaLrdLIm6s5qo2+uJmoEHgVuOK5GXCRXz0IpDTphTlG9sh0j1jisdMjvXclUY61IZMjJJ91BM3kIPbHbAB6NCW1BvrIrteuXeplMuyjQXJsU5UzQse+Un3ytp4LEHCfQs+1gQBbu3XFx/jSCCAXFdOVBcEbbe9m5Y8YZ24M2/ODAt4L7//Gow0F82SJVytbdnDSfWbmI8G9mwAuJDiROxZH7lwidmmabp/GYzazpNh5qCHj2b2auw5C903PpDe26duK71Aee3CBeFJ6kEQdMz8sdCDNoU6nEgs+zkPKqGzGENmZcFGRdCNf7R+HKmna7hUoLL04Cl1akmS6cmyxaTZUxRx54g/uBrhI8QlMFu86DXa1gVyEnAE2E1zm4gAeGCmc4wcq5BPTeKGhaDvafm0VucYOBMaiJt5onqeAmS2q1qJHVrJL2EZEeAVAOHUQzBQADSR6r0uWpdrDQc9FvXtQ8O7oHMwwhp393ZVXH+3v09XNPfwy31t7Omv50t9be7pr/dgr/3H3r6FbV10v/N+hBPvH7M31gm3npdOvaOVzz2XtfH3ovOxCv48UTZeMPC7aGH9t//eflQcq67rZaJ654rJty4a9ScO0nKbfV6aoxZeBypGkTP8kqgfVwNoqMaRDWINgui81+enkPnUGPomzA0nOTuRGz0TcBht5pExzWJtphEoeAOSImMkdTVsPHB52IyMLpakyz3vW9cxonsbeFKrLgwM62BsKnfQY+XPCPdB4ReDYQtBoLJPlIqOGE0Tzb+z22Lb/gF4pEhcdr/aEUSp1Fz4qk4UXi58hAoMj9rUmwhKTw+8LjgkaLB954qnM/nuQIG5rd/BYwwLRqbd/TNeKQtnTH4JIvyoTntijeWS7eVY2MKfBQKziFDhc3wMTC3GvnrtJEQsaIKCySBgaPArRK5gjsTnIQ9xQji1oog31qpwTE1Ystn/owMwezKM9SGlYgj165/1I3vUM+lk2vFBzkxSdLMRS1hgD3QxLDzldmt7LnFstbzpF0u2dStdpVbiVarXKpomvtjxg9MVKW+Y7zsNnHDSqztFf1PBZafm9Rgzl3EzsUk/v7HCUd+lZM7+ieMLSgrC1W656piVdV2b7DWu5CdvbB4zBia/1c7STQNDLL9ORLmsLYDfrvfSi9FIamTOrsw7B996V3f+748tZPKNAeZu2NdxO7EHSJzCtpHbWhCszuEUbfZ60F31Oz0hs3uyHU67R64HXtn9h+WgDjLjzEAAA== k8s-resources-cluster.json.gz: - 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 k8s-resources-namespace.json.gz: - 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 k8s-resources-node.json.gz: - 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 k8s-resources-pod.json.gz: - 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 k8s-resources-workload.json.gz: - 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 k8s-resources-workloads-namespace.json.gz: - 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 kubelet.json.gz: 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 namespace-by-pod.json.gz: - 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 namespace-by-workload.json.gz: - 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 persistentvolumesusage.json.gz: H4sIAAAAAAAC/+1ZTW/jNhC951cIRA924d3aSbqJC/TSLPbSNhug2VzqwKClscyGIlWSipMG/u/lhySTkmKnddZN0ACBEc2Qw+HjzJuh9HAQRQgSovCMAvohmmMqYWCElLAbqSW/64coerC/WozlR8HzhC+Z1ilR2MFWQ1hMiwSusJBN1Q1AfkkyaMoVTtdLuJHFDAQDBRKVwmtvtEhB/UQxu/E9dTqirP/o57WBtfI+t7oEy8WMY5GUxlcHpXmUYwa0Y7cJVljyQsR2/oXgGagFFJ7tOQGanHE2J6ke8rDeSQJzXFAlA6mWx4VUPGtIrSFKP+c4JupeK0fDQaiWC7684IRZg4jBLQjUHKJ3cV5QWsHvaVf+UFQwooyV2b2Hs4MjGIxSQZILHm4BLfTjydoeWhp3Tz2B8X/YskUSM86LFgXiFlPjxyhb48lzRThrLEkhBZY0kcTysoxaP6gcyJjGYWQ5O1iqc64MSMjTXAdzEyJziu9/5Yk9dJcZwQitjiEDZkEUJF2oUG/O6pfK5eAkvHNAinOqSN7cVVauKwlL9cIbTienRUrYFQipETNTbkej98fvh6iRMSEQwWJb49uOgrtcGH1vwqJIFlm0JGrBC9UjTCrMYhhETHvdj3qK5ze90SDqmTymoKa3nBYZTPUwJacxdvE9tYH3oOlC6iD4cYK+Kf+doEH0B59pSTnfCBjOQId2DGZg/WA0udm6nseUWyammGRmlHucoFW/3zc+v9vRcXyLCTVxsGfP9V94Ei4RPnGRYRt8XyQk0W/GKuqKsR3O+hWitRmqTwKgBVW7xlR15MqadhOiLxKn0K4nSpc0CYJUJFoi/1WrB6dctItHRRpqIUCzD00kepT9M3xnC8wwlBJDIaHMs/boingmNVIKWsVIQd5m4KhhJtiTLjcArGHIjtB1ogCvqnRubJt1LjBLYZP5053sC0g2GR+3jAfP11urtc6C2NSc56jXH7znu39Qvw+31u+9FyUdzm2iKnlqwmzJqujqpRSluiRtdOy/oFFbcr6bsJeH2LeGsVok7w5ctdqs3Xg9xUUK+6P0l3MhYJzB17kPnHTzydHbfeAV3wd26BGJGSWnhe5f99QfPqGRdk49dye9663JefWKbkv7P9sn3JRs+9864K11ws14uwC8XQD+ZxeARwr28Wu7AGzsZPfNVNt76z2S/bP31Ju50m+q6/fuAuaGYYz+aOjOF8l4ARleB9DR2IqDbwX+dwK3EoolQbVdBZluypRumepUQFTj4cWclyBxIYTr3oIwlBrmWEHS1VAquLM5WdJ0iGCV8bW2s99bEEugHuPqflQfrZn4UWdAVKaApzdH7D5k1Aniaf8sQNxboujKGI11CibVkS9cfxqpLTYT3y9K2xOz2tZh17bKWO7aUoeq3o+dP7Woyie9WW4kymoQleb7ISBV8PnOSi6U/6XCA8k59Dz4dB77eZXCXQixLuW/x+hJFLPyOOaFY3dRM56jozPDeF04OlD2COLjPL16hKifE+qDqrlYOWZ0n2FLTpwL++ZBX/yX70aLikoVL2UomPaXeTtg7kqXZ6gUlgVgjX3kwC+pvLA9AxqPxrPxIT6F0+HxaJZ8/+EEz8eQ4NnoMD49HsboYPU3ucReP4geAAA= pod-total.json.gz: - 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 proxy.json.gz: H4sIAAAAAAAC/+1b0VLbOBR95ys8nj7AbJpJQoBkZ/rQpbvMzrY0SykvhfEo9o2tRbZcSYZkmey3ryTbsey4kFBCN6xfILpXknWvjo6Olehux7Js8LBAYwL2z9YEEQ4tZSQ4uubS8kUWLOtO/5VmxN8xGnv0NpI+wRJdWXtw5JLEgwvEeNV1DRCf4xCqdoH84hFpzWQMLAIB3M6MV0Zt5oP4haDo2hxp6sNCj9/+o+igcM5i7fMQD8YUMS/rfL6TdW/HKAJSE62HBOI0Ya5uP2I0BBFAYvQ9wUC8YxpNsC+r3BWReDBBCRG8ZJX2JMJCdRbRCOyFY559mi869hn2RrTc3A5k8ahVlG9luW+Up7LcMcozVV7qGnvS3DUmTgC7QUSNqhsWodFYYBpVRuBSQtkH6kE1hqL7mCQ+ji6AcdlcVbvpdtv9dseuzGR56ktJejDvuhZMY6b8PAl3k/hOwo/LSN5c2q+yj5d2y/qLjqVF4ep1zOh0dmnP98rd4IgLFIkMnEtTcrUMss/xMrhkHyKDVWvjIHJleDSsWHVHhHyMkYuFmvlup1V284Dejqicb65nD26A2dUqcimcJoTwajqMGS7hmMb8SWBsDlbjuL8ajnuPwzEBHyKvmlfEzzMiNHkqTTkibhmxaT+Ii1MqVMpsw3NVauthHhM0y5dNSralGtLtQggahTbDfiDKfjVz7/Mhl2FqpElQSgSOq1GF2XM5jnxyL+n8kKXLkIBdtUD1+nT4LHKd9CNLCHDHS2QNOR6Hg0sjjzsuTSKx8nJvWekCd+HNP7JuXpA88OWV46iHOzlyrvYq1JCi5DfKQpTOjKxtr8IQZ2rk1icZinWm2izRhZDbIQeG843u/0UaG6KM7oqcsd9wxhZzRoAljn2GQudrIvdtTGC30x4OW2vzyDhxr+HHEMndXd58Pl+XUN7LJ0XuzBoORWD9maWgYZgNyZLeA/L6qJ5i+g3FvCxZIt8pbym7VoyiuCeUg95KZXKaxmGNijgaibI5iVKlj5LhHv44aPjjBUoU67HEslGpYo1n1m5ep2UReHL1Ukc6jYx5RhkzeEDFdPv1NHTY0NBLkDEMuHBcgmUKHAZfE1nkjqACkXpKWYNRWq6MX9l67fajlEtvOrXr8r0tce8/Mu79LY+7/8i4+1se98Ej4z4oxf3tvVJ9g2W9Hf1unaUBNOp8k6/3h5WNcbDixnjUbIwvWp/XMMn3q/JvUYtcEaru6OOn8/skuqq2mjxXNVeU5nKZiAXVNJr82U4Geg99b9/r1jPPoGGehnme6jygZWXcc/Lr81PPCTTMsxbzjGfGD6M2eh7QG9STz7Ahny0mH8kGLnAuaYVjT/FLCCFlM0fj6rtlzPyJDw0/6ME1HFBRHwFlYiMcMFiRA4owGxLYQhLQIiNnAjdOFprinnOSdVigRkM8MTEcjz5bCUd+ow+ejRtK5yT3kkO3IYctJgefOj5lNBE4+g8qgpPF0FZY+Ysf9zOYSMET6DP3TtrS5m4AISoSu6+FbflCQuUyQtqZgFBiQ46hYAebyHc6YwLMX8snjKUgKs0JBwKuAK8O1wKmOjkZ3ZQzKFdTAqa3FnYB1vgyNT1BY9AL8Z2Eg5XhwfBHKMyuSCzQYnjlKxqbZQJyGT4ywT4okrBNY3HpYtFjFd4muT6M0jysXl1YGTzrQqpxLeLR7R2dVa6uENRcFmhZWQd75ZBzTJnD4Yp+jasVRhrSR96TAUTIRT677Z/MZ62RG3PKs/s4bwlZglmRt3wB1iWuzrdG5haJe/hCRnE8sUKS6zOq/1/tZLnVbFAs0AnTG7Qd0dvX3SB7hGTnzGaXmv2tLrWoSx7nx3ZmzI9K1XBTW6I3O/twvwe9wwMPOr3h4aDv9jvjXtcdHx2OXdSfDPv2zvxfItUZ9WI1AAA= scheduler.json.gz: H4sIAAAAAAAC/+1bXW/bNhR9z68QhD4kmBtEtvM1oA9duhXD+pG1aV7aQKCka4kLJaoklcQzvN8+iqIsSlYSO7O9OdNLG/KSFO/h4dERLU12LMuGAAvkEbB/tEaIcOjllQQn11zWfJUFy5qof2U14m8YTQN6m8iYYJlqrCI48UkWwCVivBm6BkgvcAzNeoHC6hJFy8wDloAAbuvKK6M1C0H8RFBybc60iGGh5m//Vg1QBcepigWIRx5FLNCDT3f08HaKEiAt2QZIIE4z5qv+54zGICLIjLFHGEhwRpMRDmWTSZVJACOUEcFrtbI+S7DIB0toAvYsMNV/TWcDhwwH57Te3Y5k8bhXlW9leWiU72T5wCiP8/Lc0DiQ1Y6xcALYDSL5rJy4So2mAtOkMQOfEsre0wCaOVTDpyQLcXIJjMvuebMbx9kf7h/YjZWsL30NpEdxV63gLmV5nGfxbpZOJP24zOTVN/uF/vOb3bP+oJ6syXn1kvsRBBnJ66d79aFwwgVKhCbo3LJczRPtSzpPMDmG0NTqrZ1IvkyRxo1aNRAhH1PkY5GvvnPQq4d5RG/PqVxzrlYQboDZzSZyO3zICOFNOIxVrnGZpnwlVDYnq7g8XIzL/adxmUAISdDEFfELLYamVhWQI+LXWVuMg7j4QEUOmW1Ermp9A8xTgsbl1ikEt9ZChn2IQbHQZjiMRD2er9y7csp1mhowCUqJwGkzq1hfl+MkJA8Kz7+yfRkSsDvbny70wdUlOV83yGRczsbl4NMk4K5Ps0QsteF7VrHFfXj1l2xfFqQSfH3huvnl3ZI7V3t7lje2dvWYVc+GZhT0+YWyGKklm5QTmk6tyaTsJAsyG7ttrVaLmYeT4BmApdPYAGAGwRAJKcMiircdvSona5bTBqC8oSSLn9OWLRKyFzECnyvIP8k5zbsCIZ0vB4ZLT/v/8gZrcgbOgtZg0FmDLbYGEZY8DhmK3e+ZtOeYwO7B/ulpz3qCZ/Ay/xqWVKB/LkA9i8Def8g4LIPovY5iC6Fck61YBs7F/MYWYrsJ07EM0Au4kS1E+WmWhMiJJf7YOj0VkfW7hq7zKOs5vzh55CjuuN2jDDuP8hyOLxhw4foESwhcBt8zWeSuoAKR1Tz29HwJQl7X39+/R3Yelpb+3d3angU3lvzgickPnkPywycmP3wOyR8+MfnDWvL33zXzn46s1+e/Wp+KLLrH+XUe9R817pUni90rD7t75bN+nm9Rk9W493vlxZLbIu9x/vHzxUNuPm+2mIHPW06nC2mO3CtipjfvOq++qfPE/mO/mjvDdv056vSn05+16M/bnzcvP2+hU5+l1McbG68mrfWsoO+0C9BxJ0BbLEApoz5wLqWF4yDXmBhiysau4tWKfh19TB+qM8WFNOK9mmEnBA0bElEm1iIEJwsKwUknBFssBMpslGrgp9nMW6zw5KTNTKxYHM7Ov1gZR2FnFDamD7WTk4cE4rQTiC0WiJC6IWU0EzhZ1hlsyBi8nU1vgc0/e9WewUian0gdyR8UPe188jGqwB0o6tY/D2h8GlAMJiCW/BD5D/vlytpEPuMZi2C+u54xVhCpti4cCPgCgjZuC7hT4GjFqSMod1QGZrSVehFWHDP9PUEeqM34RlLC0pww4gmK9QcLM8YYUfm4xsbaTM5TSAIcQq4TtllZfQIxG7FJcVNfH2dqmVa/LS1N0baUWkKzfFR/V6HK8xf673l1v2fpQfbqaZe8MqfEcxU2PnYwoCgu+wAKiJDLcoX3fzCvtQQ+5rLrL2ReEzJHtQq7chO2gdcWWxK9GXg1KZm2vzF5D6jtCKr/r3Y0lkoBqk05Yuq+bCf09qUT6UtIVdZ1dq3bn/lnJfknFhdntq6sv9ig+WNn6j5n9+HIO0IDb+gFwcgZ9o+9ATo8RMgZOI5/dHhk70z/BtqVarDoNAAA workload-total.json.gz: - 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 diff --git a/charts/kubezero-metrics/templates/rules/alertmanager.yaml b/charts/kubezero-metrics/templates/rules/alertmanager.yaml index c287d309..3887e7c5 100644 --- a/charts/kubezero-metrics/templates/rules/alertmanager.yaml +++ b/charts/kubezero-metrics/templates/rules/alertmanager.yaml @@ -38,7 +38,7 @@ spec: description: Alertmanager {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.pod{{`}}`}} failed to send {{`{{`}} $value | humanizePercentage {{`}}`}} of notifications to {{`{{`}} $labels.integration {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/alertmanager/alertmanagerfailedtosendalerts summary: An Alertmanager instance failed to send notifications. - expr: "(\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\"}[5m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\"}[5m])\n)\n> 0.01\n" + expr: "(\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\"}[15m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\"}[15m])\n)\n> 0.01\n" for: 5m labels: severity: warning @@ -47,7 +47,7 @@ spec: description: The minimum notification failure rate to {{`{{`}} $labels.integration {{`}}`}} sent from any instance in the {{`{{`}}$labels.job{{`}}`}} cluster is {{`{{`}} $value | humanizePercentage {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/alertmanager/alertmanagerclusterfailedtosendalerts summary: All Alertmanager instances in a cluster failed to send notifications to a critical integration. - expr: "min by (namespace,service, integration) (\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration=~`.*`}[5m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration=~`.*`}[5m])\n)\n> 0.01\n" + expr: "min by (namespace,service, integration) (\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration=~`.*`}[15m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration=~`.*`}[15m])\n)\n> 0.01\n" for: 5m labels: severity: critical @@ -56,7 +56,7 @@ spec: description: The minimum notification failure rate to {{`{{`}} $labels.integration {{`}}`}} sent from any instance in the {{`{{`}}$labels.job{{`}}`}} cluster is {{`{{`}} $value | humanizePercentage {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/alertmanager/alertmanagerclusterfailedtosendalerts summary: All Alertmanager instances in a cluster failed to send notifications to a non-critical integration. - expr: "min by (namespace,service, integration) (\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration!~`.*`}[5m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration!~`.*`}[5m])\n)\n> 0.01\n" + expr: "min by (namespace,service, integration) (\n rate(alertmanager_notifications_failed_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration!~`.*`}[15m])\n/\n ignoring (reason) group_left rate(alertmanager_notifications_total{job=\"alertmanager-main\",namespace=\"monitoring\", integration!~`.*`}[15m])\n)\n> 0.01\n" for: 5m labels: severity: warning diff --git a/charts/kubezero-metrics/templates/rules/kubernetes.yaml b/charts/kubezero-metrics/templates/rules/kubernetes.yaml index 4f54335c..9ee0bdbc 100644 --- a/charts/kubezero-metrics/templates/rules/kubernetes.yaml +++ b/charts/kubezero-metrics/templates/rules/kubernetes.yaml @@ -65,7 +65,7 @@ spec: description: StatefulSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.statefulset {{`}}`}} has not matched the expected number of replicas for longer than 15 minutes on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetreplicasmismatch summary: StatefulSet has not matched the expected number of replicas. - expr: "(\n kube_statefulset_status_replicas_ready{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas{job=\"kube-state-metrics\"}\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[10m])\n ==\n 0\n)\n" + expr: "(\n kube_statefulset_status_replicas_ready{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[10m])\n ==\n 0\n)\n" for: 15m labels: severity: warning @@ -83,7 +83,7 @@ spec: description: StatefulSet {{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.statefulset {{`}}`}} update has not been rolled out on cluster {{`{{`}} $labels.cluster {{`}}`}}. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetupdatenotrolledout summary: StatefulSet update has not been rolled out. - expr: "(\n max by(namespace, statefulset, job, cluster) (\n kube_statefulset_status_current_revision{job=\"kube-state-metrics\"}\n unless\n kube_statefulset_status_update_revision{job=\"kube-state-metrics\"}\n )\n *\n (\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}\n )\n) and (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n" + expr: "(\n max by(namespace, statefulset, job, cluster) (\n kube_statefulset_status_current_revision{job=\"kube-state-metrics\"}\n unless\n kube_statefulset_status_update_revision{job=\"kube-state-metrics\"}\n )\n * on(namespace, statefulset, job, cluster)\n (\n kube_statefulset_replicas{job=\"kube-state-metrics\"}\n !=\n kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}\n )\n) and on(namespace, statefulset, job, cluster) (\n changes(kube_statefulset_status_replicas_updated{job=\"kube-state-metrics\"}[5m])\n ==\n 0\n)\n" for: 15m labels: severity: warning @@ -164,6 +164,15 @@ spec: for: 15m labels: severity: warning + - alert: KubePdbNotEnoughHealthyPods + annotations: + description: PDB {{`{{`}} $labels.cluster {{`}}`}}/{{`{{`}} $labels.namespace {{`}}`}}/{{`{{`}} $labels.poddisruptionbudget {{`}}`}} expects {{`{{`}} $value {{`}}`}} more healthy pods. The desired number of healthy pods has not been met for at least 15m. + runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubepdbnotenoughhealthypods + summary: PDB does not have enough healthy pods. + expr: "(\n kube_poddisruptionbudget_status_desired_healthy{job=\"kube-state-metrics\"}\n -\n kube_poddisruptionbudget_status_current_healthy{job=\"kube-state-metrics\"}\n)\n> 0\n" + for: 15m + labels: + severity: warning - name: kubernetes-resources rules: - alert: KubeCPUQuotaOvercommit @@ -177,7 +186,7 @@ spec: severity: warning - alert: KubeMemoryQuotaOvercommit annotations: - description: Cluster {{`{{`}} $labels.cluster {{`}}`}} has overcommitted memory resource requests for Namespaces. + description: Cluster {{`{{`}} $labels.cluster {{`}}`}} has overcommitted memory resource requests for Namespaces. runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubememoryquotaovercommit summary: Cluster has overcommitted memory resource requests. expr: "sum(min without(resource) (kube_resourcequota{job=\"kube-state-metrics\", type=\"hard\", resource=~\"(memory|requests.memory)\"})) by (cluster)\n /\nsum(kube_node_status_allocatable{resource=\"memory\", job=\"kube-state-metrics\"}) by (cluster)\n > 1.5\n" @@ -216,7 +225,7 @@ spec: description: '{{`{{`}} $value | humanizePercentage {{`}}`}} throttling of CPU in namespace {{`{{`}} $labels.namespace {{`}}`}} for container {{`{{`}} $labels.container {{`}}`}} in pod {{`{{`}} $labels.pod {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}}.' runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/cputhrottlinghigh summary: Processes experience elevated CPU throttling. - expr: "sum(increase(container_cpu_cfs_throttled_periods_total{container!=\"\", job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n /\nsum(increase(container_cpu_cfs_periods_total{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n > ( 25 / 100 )\n" + expr: "sum(increase(container_cpu_cfs_throttled_periods_total{container!=\"\", job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n / on (cluster, namespace, pod, container, instance) group_left\nsum(increase(container_cpu_cfs_periods_total{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", }[5m])) without (id, metrics_path, name, image, endpoint, job, node)\n > ( 25 / 100 )\n" for: 15m labels: severity: info @@ -462,6 +471,21 @@ spec: for: 15m labels: severity: warning + - alert: KubeNodePressure + annotations: + description: '{{`{{`}} $labels.node {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}} has active Condition {{`{{`}} $labels.condition {{`}}`}}. This is caused by resource usage exceeding eviction thresholds.' + runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodepressure + summary: Node has as active Condition. + expr: 'kube_node_status_condition{job="kube-state-metrics",condition=~"(MemoryPressure|DiskPressure|PIDPressure)",status="true"} == 1 + + and on (cluster, node) + + kube_node_spec_unschedulable{job="kube-state-metrics"} == 0 + + ' + for: 10m + labels: + severity: info - alert: KubeNodeUnreachable annotations: description: '{{`{{`}} $labels.node {{`}}`}} is unreachable and some workloads may be rescheduled on cluster {{`{{`}} $labels.cluster {{`}}`}}.' @@ -497,6 +521,15 @@ spec: for: 15m labels: severity: warning + - alert: KubeNodeEviction + annotations: + description: Node {{`{{`}} $labels.node {{`}}`}} on {{`{{`}} $labels.cluster {{`}}`}} is evicting Pods due to {{`{{`}} $labels.eviction_signal {{`}}`}}. Eviction occurs when eviction thresholds are crossed, typically caused by Pods exceeding RAM/ephemeral-storage limits. + runbook_url: https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubenodeeviction + summary: Node is evicting pods. + expr: "sum(rate(kubelet_evictions{job=\"kubelet\", metrics_path=\"/metrics\"}[15m])) by(cluster, eviction_signal, instance)\n* on (cluster, instance) group_left(node)\nmax by (cluster, instance, node) (\n kubelet_node_name{job=\"kubelet\", metrics_path=\"/metrics\"}\n)\n> 0\n" + for: 0s + labels: + severity: info - alert: KubeletPlegDurationHigh annotations: description: The Kubelet Pod Lifecycle Event Generator has a 99th percentile duration of {{`{{`}} $value {{`}}`}} seconds on node {{`{{`}} $labels.node {{`}}`}} on cluster {{`{{`}} $labels.cluster {{`}}`}}. @@ -653,16 +686,16 @@ spec: ' record: cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d - - expr: "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"})\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"\ - LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"})\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n" + - expr: "1 - (\n (\n # write too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"} or vector(0))\n ) +\n (\n # read too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"} or vector(0))\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"} or vector(0))\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"\ + LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"} or vector(0))\n )\n ) +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d)\n" labels: verb: all record: apiserver_request:availability30d - - expr: "1 - (\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n # too slow\n (\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"})\n or\n vector(0)\n )\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\"})\n" + - expr: "1 - (\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"LIST|GET\"})\n -\n (\n # too slow\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=~\"resource|\",le=~\"1(\\\\.0)?\"} or vector(0))\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"namespace\",le=~\"5(\\\\.0)?\"} or vector(0))\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=~\"30(\\\\.0)?\"} or vector(0))\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"read\"})\n" labels: verb: read record: apiserver_request:availability30d - - expr: "1 - (\n (\n # too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"})\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\"})\n" + - expr: "1 - (\n (\n # too slow\n sum by (cluster) (cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d{verb=~\"POST|PUT|PATCH|DELETE\"})\n -\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"POST|PUT|PATCH|DELETE\",le=~\"1(\\\\.0)?\"} or vector(0))\n )\n +\n # errors\n sum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\",code=~\"5..\"} or vector(0))\n)\n/\nsum by (cluster) (code:apiserver_request_total:increase30d{verb=\"write\"})\n" labels: verb: write record: apiserver_request:availability30d @@ -777,6 +810,8 @@ spec: record: cluster_quantile:apiserver_request_sli_duration_seconds:histogram_quantile - name: k8s.rules.container_cpu_usage_seconds_total rules: + - expr: "sum by (cluster, namespace, pod, container) (\n rate(container_cpu_usage_seconds_total{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", image!=\"\"}[5m])\n) * on (cluster, namespace, pod) group_left(node) topk by (cluster, namespace, pod) (\n 1, max by(cluster, namespace, pod, node) (kube_pod_info{node!=\"\"})\n)\n" + record: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate5m - expr: "sum by (cluster, namespace, pod, container) (\n irate(container_cpu_usage_seconds_total{job=\"kubelet\", metrics_path=\"/metrics/cadvisor\", image!=\"\"}[5m])\n) * on (cluster, namespace, pod) group_left(node) topk by (cluster, namespace, pod) (\n 1, max by(cluster, namespace, pod, node) (kube_pod_info{node!=\"\"})\n)\n" record: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate - name: k8s.rules.container_memory_working_set_bytes @@ -821,7 +856,11 @@ spec: record: namespace_cpu:kube_pod_container_resource_limits:sum - name: k8s.rules.pod_owner rules: - - expr: "max by (cluster, namespace, workload, pod) (\n label_replace(\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"ReplicaSet\"},\n \"replicaset\", \"$1\", \"owner_name\", \"(.*)\"\n ) * on(replicaset, namespace) group_left(owner_name) topk by(replicaset, namespace) (\n 1, max by (replicaset, namespace, owner_name) (\n kube_replicaset_owner{job=\"kube-state-metrics\"}\n )\n ),\n \"workload\", \"$1\", \"owner_name\", \"(.*)\"\n )\n)\n" + - expr: "max by (cluster, namespace, workload, pod) (\n label_replace(\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"ReplicaSet\"},\n \"replicaset\", \"$1\", \"owner_name\", \"(.*)\"\n ) * on (cluster, replicaset, namespace) group_left(owner_name) topk by(cluster, replicaset, namespace) (\n 1, max by (cluster, replicaset, namespace, owner_name) (\n kube_replicaset_owner{job=\"kube-state-metrics\", owner_kind=\"\"}\n )\n ),\n \"workload\", \"$1\", \"replicaset\", \"(.*)\"\n )\n)\n" + labels: + workload_type: replicaset + record: namespace_workload_pod:kube_pod_owner:relabel + - expr: "max by (cluster, namespace, workload, pod) (\n label_replace(\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"ReplicaSet\"},\n \"replicaset\", \"$1\", \"owner_name\", \"(.*)\"\n ) * on(replicaset, namespace, cluster) group_left(owner_name) topk by(cluster, replicaset, namespace) (\n 1, max by (cluster, replicaset, namespace, owner_name) (\n kube_replicaset_owner{job=\"kube-state-metrics\", owner_kind=\"Deployment\"}\n )\n ),\n \"workload\", \"$1\", \"owner_name\", \"(.*)\"\n )\n)\n" labels: workload_type: deployment record: namespace_workload_pod:kube_pod_owner:relabel @@ -829,14 +868,25 @@ spec: labels: workload_type: daemonset record: namespace_workload_pod:kube_pod_owner:relabel - - expr: "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"StatefulSet\"},\n \"workload\", \"$1\", \"owner_name\", \"(.*)\"\n )\n)\n" + - expr: "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"StatefulSet\"},\n \"workload\", \"$1\", \"owner_name\", \"(.*)\")\n)\n" labels: workload_type: statefulset record: namespace_workload_pod:kube_pod_owner:relabel - - expr: "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"Job\"},\n \"workload\", \"$1\", \"owner_name\", \"(.*)\"\n )\n)\n" + - expr: "group by (cluster, namespace, workload, pod) (\n label_join(\n group by (cluster, namespace, job_name, pod, owner_name) (\n label_join(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"Job\"}\n , \"job_name\", \"\", \"owner_name\")\n )\n * on (cluster, namespace, job_name) group_left()\n group by (cluster, namespace, job_name) (\n kube_job_owner{job=\"kube-state-metrics\", owner_kind=~\"Pod|\"}\n )\n , \"workload\", \"\", \"owner_name\")\n)\n" labels: workload_type: job record: namespace_workload_pod:kube_pod_owner:relabel + - expr: "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"\", owner_name=\"\"},\n \"workload\", \"$1\", \"pod\", \"(.+)\")\n)\n" + labels: + workload_type: barepod + record: namespace_workload_pod:kube_pod_owner:relabel + - expr: "max by (cluster, namespace, workload, pod) (\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"Node\"},\n \"workload\", \"$1\", \"pod\", \"(.+)\")\n)\n" + labels: + workload_type: staticpod + record: namespace_workload_pod:kube_pod_owner:relabel + - expr: "group by (cluster, namespace, workload, workload_type, pod) (\n label_join(\n label_join(\n group by (cluster, namespace, job_name, pod) (\n label_join(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"Job\"}\n , \"job_name\", \"\", \"owner_name\")\n )\n * on (cluster, namespace, job_name) group_left(owner_kind, owner_name)\n group by (cluster, namespace, job_name, owner_kind, owner_name) (\n kube_job_owner{job=\"kube-state-metrics\", owner_kind!=\"Pod\", owner_kind!=\"\"}\n )\n , \"workload\", \"\", \"owner_name\")\n , \"workload_type\", \"\", \"owner_kind\")\n \n OR\n\n label_replace(\n label_replace(\n label_replace(\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind=\"ReplicaSet\"}\n , \"replicaset\", \"$1\", \"owner_name\", \"(.+)\"\n )\n * on(cluster, namespace, replicaset) group_left(owner_kind, owner_name)\n group by (cluster, namespace, replicaset, owner_kind,\ + \ owner_name) (\n kube_replicaset_owner{job=\"kube-state-metrics\", owner_kind!=\"Deployment\", owner_kind!=\"\"}\n )\n , \"workload\", \"$1\", \"owner_name\", \"(.+)\")\n OR\n label_replace(\n group by (cluster, namespace, pod, owner_name, owner_kind) (\n kube_pod_owner{job=\"kube-state-metrics\", owner_kind!=\"ReplicaSet\", owner_kind!=\"DaemonSet\", owner_kind!=\"StatefulSet\", owner_kind!=\"Job\", owner_kind!=\"Node\", owner_kind!=\"\"}\n )\n , \"workload\", \"$1\", \"owner_name\", \"(.+)\"\n )\n , \"workload_type\", \"$1\", \"owner_kind\", \"(.+)\")\n)\n" + record: namespace_workload_pod:kube_pod_owner:relabel - name: kube-scheduler.rules rules: - expr: 'histogram_quantile(0.99, sum(rate(scheduler_e2e_scheduling_duration_seconds_bucket{job="kube-scheduler"}[5m])) without(instance, pod)) @@ -925,122 +975,4 @@ spec: labels: quantile: '0.5' record: node_quantile:kubelet_pleg_relist_duration_seconds:histogram_quantile - - name: windows.node.rules - rules: - - expr: "count by (cluster) (\n windows_system_system_up_time{job=\"kubernetes-windows-exporter\"}\n)\n" - record: node:windows_node:sum - - expr: "count by (cluster, instance) (sum by (cluster, instance, core) (\n windows_cpu_time_total{job=\"kubernetes-windows-exporter\"}\n))\n" - record: node:windows_node_num_cpu:sum - - expr: '1 - avg by (cluster) (rate(windows_cpu_time_total{job="kubernetes-windows-exporter",mode="idle"}[1m])) - - ' - record: :windows_node_cpu_utilisation:avg1m - - expr: "1 - avg by (cluster, instance) (\n rate(windows_cpu_time_total{job=\"kubernetes-windows-exporter\",mode=\"idle\"}[1m])\n)\n" - record: node:windows_node_cpu_utilisation:avg1m - - expr: '1 - - - sum by (cluster) (windows_memory_available_bytes{job="kubernetes-windows-exporter"}) - - / - - sum by (cluster) (windows_os_visible_memory_bytes{job="kubernetes-windows-exporter"}) - - ' - record: ':windows_node_memory_utilisation:' - - expr: 'sum by (cluster) (windows_memory_available_bytes{job="kubernetes-windows-exporter"} + windows_memory_cache_bytes{job="kubernetes-windows-exporter"}) - - ' - record: :windows_node_memory_MemFreeCached_bytes:sum - - expr: '(windows_memory_cache_bytes{job="kubernetes-windows-exporter"} + windows_memory_modified_page_list_bytes{job="kubernetes-windows-exporter"} + windows_memory_standby_cache_core_bytes{job="kubernetes-windows-exporter"} + windows_memory_standby_cache_normal_priority_bytes{job="kubernetes-windows-exporter"} + windows_memory_standby_cache_reserve_bytes{job="kubernetes-windows-exporter"}) - - ' - record: node:windows_node_memory_totalCached_bytes:sum - - expr: 'sum by (cluster) (windows_os_visible_memory_bytes{job="kubernetes-windows-exporter"}) - - ' - record: :windows_node_memory_MemTotal_bytes:sum - - expr: "sum by (cluster, instance) (\n (windows_memory_available_bytes{job=\"kubernetes-windows-exporter\"})\n)\n" - record: node:windows_node_memory_bytes_available:sum - - expr: "sum by (cluster, instance) (\n windows_os_visible_memory_bytes{job=\"kubernetes-windows-exporter\"}\n)\n" - record: node:windows_node_memory_bytes_total:sum - - expr: '(node:windows_node_memory_bytes_total:sum - node:windows_node_memory_bytes_available:sum) - - / - - scalar(sum(node:windows_node_memory_bytes_total:sum)) - - ' - record: node:windows_node_memory_utilisation:ratio - - expr: '1 - (node:windows_node_memory_bytes_available:sum / node:windows_node_memory_bytes_total:sum) - - ' - record: 'node:windows_node_memory_utilisation:' - - expr: 'irate(windows_memory_swap_page_operations_total{job="kubernetes-windows-exporter"}[5m]) - - ' - record: node:windows_node_memory_swap_io_pages:irate - - expr: "avg by (cluster) (irate(windows_logical_disk_read_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_logical_disk_write_seconds_total{job=\"kubernetes-windows-exporter\"}[1m])\n )\n" - record: :windows_node_disk_utilisation:avg_irate - - expr: "avg by (cluster, instance) (\n (irate(windows_logical_disk_read_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_logical_disk_write_seconds_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n" - record: node:windows_node_disk_utilisation:avg_irate - - expr: "max by (cluster,instance,volume)(\n (windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"}\n- windows_logical_disk_free_bytes{job=\"kubernetes-windows-exporter\"})\n/ windows_logical_disk_size_bytes{job=\"kubernetes-windows-exporter\"}\n)\n" - record: 'node:windows_node_filesystem_usage:' - - expr: 'max by (cluster, instance, volume) (windows_logical_disk_free_bytes{job="kubernetes-windows-exporter"} / windows_logical_disk_size_bytes{job="kubernetes-windows-exporter"}) - - ' - record: 'node:windows_node_filesystem_avail:' - - expr: 'sum by (cluster) (irate(windows_net_bytes_total{job="kubernetes-windows-exporter"}[1m])) - - ' - record: :windows_node_net_utilisation:sum_irate - - expr: "sum by (cluster, instance) (\n (irate(windows_net_bytes_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n" - record: node:windows_node_net_utilisation:sum_irate - - expr: 'sum by (cluster) (irate(windows_net_packets_received_discarded_total{job="kubernetes-windows-exporter"}[1m])) + - - sum by (cluster) (irate(windows_net_packets_outbound_discarded_total{job="kubernetes-windows-exporter"}[1m])) - - ' - record: :windows_node_net_saturation:sum_irate - - expr: "sum by (cluster, instance) (\n (irate(windows_net_packets_received_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]) +\n irate(windows_net_packets_outbound_discarded_total{job=\"kubernetes-windows-exporter\"}[1m]))\n)\n" - record: node:windows_node_net_saturation:sum_irate - - name: windows.pod.rules - rules: - - expr: 'windows_container_available{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) - - ' - record: windows_pod_container_available - - expr: 'windows_container_cpu_usage_seconds_total{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) - - ' - record: windows_container_total_runtime - - expr: 'windows_container_memory_usage_commit_bytes{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) - - ' - record: windows_container_memory_usage - - expr: 'windows_container_memory_usage_private_working_set_bytes{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) - - ' - record: windows_container_private_working_set_usage - - expr: 'windows_container_network_receive_bytes_total{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) - - ' - record: windows_container_network_received_bytes_total - - expr: 'windows_container_network_transmit_bytes_total{job="kubernetes-windows-exporter", container_id != ""} * on(container_id, cluster) group_left(container, pod, namespace) max(kube_pod_container_info{job="kube-state-metrics", container_id != ""}) by(container, container_id, pod, namespace, cluster) - - ' - record: windows_container_network_transmitted_bytes_total - - expr: "max by (cluster, namespace, pod, container) (\n kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"}\n) * on(container,pod,namespace,cluster) (windows_pod_container_available)\n" - record: kube_pod_windows_container_resource_memory_request - - expr: 'kube_pod_container_resource_limits{resource="memory",job="kube-state-metrics"} * on(container,pod,namespace,cluster) (windows_pod_container_available) - - ' - record: kube_pod_windows_container_resource_memory_limit - - expr: "max by (cluster, namespace, pod, container) (\n kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"}\n) * on(container,pod,namespace,cluster) (windows_pod_container_available)\n" - record: kube_pod_windows_container_resource_cpu_cores_request - - expr: 'kube_pod_container_resource_limits{resource="cpu",job="kube-state-metrics"} * on(container,pod,namespace,cluster) (windows_pod_container_available) - - ' - record: kube_pod_windows_container_resource_cpu_cores_limit - - expr: "sum by (cluster, namespace, pod, container) (\n rate(windows_container_total_runtime{}[5m])\n)\n" - record: namespace_pod_container:windows_container_cpu_usage_seconds_total:sum_rate diff --git a/charts/kubezero-metrics/templates/rules/node-exporter.yaml b/charts/kubezero-metrics/templates/rules/node-exporter.yaml index 9cefe333..f09fff53 100644 --- a/charts/kubezero-metrics/templates/rules/node-exporter.yaml +++ b/charts/kubezero-metrics/templates/rules/node-exporter.yaml @@ -270,6 +270,17 @@ spec: for: 5m labels: severity: warning + - alert: NodeSystemdServiceCrashlooping + annotations: + description: Systemd service {{`{{`}} $labels.name {{`}}`}} has being restarted too many times at {{`{{`}} $labels.instance {{`}}`}} for the last 15 minutes. Please check if service is crash looping. + runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodesystemdservicecrashlooping + summary: Systemd service keeps restaring, possibly crash looping. + expr: 'increase(node_systemd_service_restart_total{job="node-exporter"}[5m]) > 2 + + ' + for: 15m + labels: + severity: warning - alert: NodeBondingDegraded annotations: description: Bonding interface {{`{{`}} $labels.master {{`}}`}} on {{`{{`}} $labels.instance {{`}}`}} is in degraded state due to one or more slave failures. diff --git a/charts/kubezero/values.yaml b/charts/kubezero/values.yaml index a0bbdf85..7ba0286f 100644 --- a/charts/kubezero/values.yaml +++ b/charts/kubezero/values.yaml @@ -66,13 +66,13 @@ storage: istio: enabled: false namespace: istio-system - targetRevision: 0.24.6 + targetRevision: 0.26.1 istio-ingress: enabled: false chart: kubezero-istio-gateway namespace: istio-ingress - targetRevision: 0.24.6 + targetRevision: 0.26.1 gateway: service: {} @@ -80,7 +80,7 @@ istio-private-ingress: enabled: false chart: kubezero-istio-gateway namespace: istio-ingress - targetRevision: 0.24.6 + targetRevision: 0.26.1 gateway: service: {} @@ -103,7 +103,7 @@ operators: metrics: enabled: false namespace: monitoring - targetRevision: 0.11.0 + targetRevision: 0.12.0 istio: grafana: {} prometheus: {}