feat: version bump for cert-manager, metrics, istio, storage

This commit is contained in:
Stefan Reimer 2024-10-21 14:41:14 +00:00
parent 608d638704
commit 8dde055cbf
110 changed files with 13343 additions and 3281 deletions

View File

@ -2,7 +2,7 @@ apiVersion: v2
name: kubezero-istio-gateway name: kubezero-istio-gateway
description: KubeZero Umbrella Chart for Istio gateways description: KubeZero Umbrella Chart for Istio gateways
type: application type: application
version: 0.22.3 version: 0.23.2
home: https://kubezero.com home: https://kubezero.com
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
keywords: keywords:

View File

@ -1,6 +1,6 @@
# kubezero-istio-gateway # kubezero-istio-gateway
![Version: 0.22.3-1](https://img.shields.io/badge/Version-0.22.3--1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![Version: 0.23.2](https://img.shields.io/badge/Version-0.23.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
KubeZero Umbrella Chart for Istio gateways KubeZero Umbrella Chart for Istio gateways
@ -21,7 +21,7 @@ Kubernetes: `>= 1.26.0-0`
| Repository | Name | Version | | Repository | Name | Version |
|------------|------|---------| |------------|------|---------|
| https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | | https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 |
| https://istio-release.storage.googleapis.com/charts | gateway | 1.22.3 | | https://istio-release.storage.googleapis.com/charts | gateway | 1.23.2 |
## Values ## Values

View File

@ -1,5 +1,5 @@
apiVersion: v2 apiVersion: v2
appVersion: 1.22.3 appVersion: 1.23.2
description: Helm chart for deploying Istio gateways description: Helm chart for deploying Istio gateways
icon: https://istio.io/latest/favicons/android-192x192.png icon: https://istio.io/latest/favicons/android-192x192.png
keywords: keywords:
@ -9,4 +9,4 @@ name: gateway
sources: sources:
- https://github.com/istio/istio - https://github.com/istio/istio
type: application type: application
version: 1.22.3 version: 1.23.2

View File

@ -12,7 +12,6 @@ global:
pilot: pilot:
env: env:
PILOT_ENABLE_AMBIENT: "true" PILOT_ENABLE_AMBIENT: "true"
CA_TRUSTED_NODE_ACCOUNTS: "istio-system/ztunnel,kube-system/ztunnel"
cni: cni:
ambient: ambient:
enabled: true enabled: true

View File

@ -15,10 +15,12 @@ pilot:
ENABLE_RESOLUTION_NONE_TARGET_PORT: "false" ENABLE_RESOLUTION_NONE_TARGET_PORT: "false"
meshConfig: meshConfig:
# 1.22 behavioral changes
defaultConfig: defaultConfig:
proxyMetadata: proxyMetadata:
# 1.22 behavioral changes
ISTIO_DELTA_XDS: "false" ISTIO_DELTA_XDS: "false"
# 1.23 behavioral changes
ENABLE_DELIMITED_STATS_TAG_REGEX: "false"
tracing: tracing:
zipkin: zipkin:
address: zipkin.istio-system:9411 address: zipkin.istio-system:9411

View File

@ -7,11 +7,17 @@ pilot:
# 1.22 behavioral changes # 1.22 behavioral changes
ENABLE_ENHANCED_RESOURCE_SCOPING: "false" ENABLE_ENHANCED_RESOURCE_SCOPING: "false"
ENABLE_RESOLUTION_NONE_TARGET_PORT: "false" ENABLE_RESOLUTION_NONE_TARGET_PORT: "false"
# 1.23 behavioral changes
ENABLE_DELIMITED_STATS_TAG_REGEX: "false"
meshConfig: meshConfig:
# 1.22 behavioral changes # 1.22 behavioral changes
defaultConfig:
proxyMetadata: proxyMetadata:
ISTIO_DELTA_XDS: "false" ISTIO_DELTA_XDS: "false"
defaultConfig: # 1.23 behavioral changes
ENABLE_DELIMITED_STATS_TAG_REGEX: "false"
tracing: tracing:
zipkin: zipkin:
address: zipkin.istio-system:9411 address: zipkin.istio-system:9411

View File

@ -0,0 +1,16 @@
# 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"
meshConfig:
defaultConfig:
proxyMetadata:
# 1.22 behavioral changes
ENABLE_DEFERRED_CLUSTER_CREATION: "false"
# 1.23 behavioral changes
ENABLE_DELIMITED_STATS_TAG_REGEX: "false"

View File

@ -27,7 +27,6 @@ pilot:
# Allow sidecars/ingress to send/receive HBONE. This is required for interop. # Allow sidecars/ingress to send/receive HBONE. This is required for interop.
PILOT_ENABLE_SENDING_HBONE: "true" PILOT_ENABLE_SENDING_HBONE: "true"
PILOT_ENABLE_SIDECAR_LISTENING_HBONE: "true" PILOT_ENABLE_SIDECAR_LISTENING_HBONE: "true"
CA_TRUSTED_NODE_ACCOUNTS: "istio-system/ztunnel,kube-system/ztunnel"
platform: openshift platform: openshift
variant: distroless variant: distroless
seLinuxOptions: seLinuxOptions:

View File

@ -7,7 +7,7 @@
{{- end }} {{- end }}
{{/* {{/*
Create chart name and version as used by the chart label. Create chart name and version as used by the helm.sh/chart label.
*/}} */}}
{{- define "gateway.chart" -}} {{- define "gateway.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
@ -16,39 +16,29 @@ Create chart name and version as used by the chart label.
{{- define "gateway.labels" -}} {{- define "gateway.labels" -}}
helm.sh/chart: {{ include "gateway.chart" . }} helm.sh/chart: {{ include "gateway.chart" . }}
{{ include "gateway.selectorLabels" . }} {{ include "gateway.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/name: {{ include "gateway.name" . }} app.kubernetes.io/name: {{ include "gateway.name" . }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- range $key, $val := .Values.labels }} {{- range $key, $val := .Values.labels }}
{{- if not (or (eq $key "app") (eq $key "istio")) }} {{- if and (ne $key "app") (ne $key "istio") }}
{{ $key | quote }}: {{ $val | quote }}
{{- end }}
{{- end }}
{{- end }}
{{- define "gateway.podLabels" -}}
{{ include "gateway.selectorLabels" . }}
{{- range $key, $val := .Values.labels }}
{{- if not (or (eq $key "app") (eq $key "istio")) }}
{{ $key | quote }}: {{ $val | quote }} {{ $key | quote }}: {{ $val | quote }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- define "gateway.selectorLabels" -}} {{- define "gateway.selectorLabels" -}}
{{- if hasKey .Values.labels "app" }} app: {{ (.Values.labels.app | quote) | default (include "gateway.name" .) }}
{{- with .Values.labels.app }}app: {{.|quote}} istio: {{ (.Values.labels.istio | quote) | default (include "gateway.name" . | trimPrefix "istio-") }}
{{- end }} {{- end }}
{{- else }}app: {{ include "gateway.name" . }}
{{- end }} {{/*
{{- if hasKey .Values.labels "istio" }} Keep sidecar injection labels together
{{- with .Values.labels.istio }} https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/#controlling-the-injection-policy
istio: {{.|quote}} */}}
{{- end}} {{- define "gateway.sidecarInjectionLabels" -}}
{{- else }} sidecar.istio.io/inject: "true"
istio: {{ include "gateway.name" . | trimPrefix "istio-" }} {{- with .Values.revision }}
istio.io/rev: {{ . | quote }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@ -26,11 +26,15 @@ spec:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
{{- end }} {{- end }}
labels: labels:
sidecar.istio.io/inject: "true" {{- include "gateway.sidecarInjectionLabels" . | nindent 8 }}
{{- with .Values.revision }} {{- include "gateway.selectorLabels" . | nindent 8 }}
istio.io/rev: {{ . | quote }} app.kubernetes.io/name: {{ include "gateway.name" . }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- range $key, $val := .Values.labels }}
{{- if and (ne $key "app") (ne $key "istio") }}
{{ $key | quote }}: {{ $val | quote }}
{{- end }}
{{- end }} {{- end }}
{{- include "gateway.podLabels" . | nindent 8 }}
spec: spec:
{{- with .Values.imagePullSecrets }} {{- with .Values.imagePullSecrets }}
imagePullSecrets: imagePullSecrets:

View File

@ -15,6 +15,7 @@ However, we can workaround this by placing all of (1) under a specific key (.Val
We can then merge the profile onto the defaults, then the user settings onto that. We can then merge the profile onto the defaults, then the user settings onto that.
Finally, we can set all of that under .Values so the chart behaves without awareness. Finally, we can set all of that under .Values so the chart behaves without awareness.
*/}} */}}
{{- $globals := $.Values.global | default dict | deepCopy }}
{{- $defaults := $.Values.defaults }} {{- $defaults := $.Values.defaults }}
{{- $_ := unset $.Values "defaults" }} {{- $_ := unset $.Values "defaults" }}
{{- $profile := dict }} {{- $profile := dict }}
@ -35,4 +36,8 @@ Finally, we can set all of that under .Values so the chart behaves without aware
{{- if $profile }} {{- if $profile }}
{{- $a := mustMergeOverwrite $defaults $profile }} {{- $a := mustMergeOverwrite $defaults $profile }}
{{- end }} {{- end }}
# Flatten globals, if defined on a per-chart basis
{{- if false }}
{{- $a := mustMergeOverwrite $defaults $globals }}
{{- end }}
{{- $b := set $ "Values" (mustMergeOverwrite $defaults $.Values) }} {{- $b := set $ "Values" (mustMergeOverwrite $defaults $.Values) }}

View File

@ -99,10 +99,10 @@
"type": "object", "type": "object",
"properties": { "properties": {
"cpu": { "cpu": {
"type": "string" "type": ["string", "null"]
}, },
"memory": { "memory": {
"type": "string" "type": ["string", "null"]
} }
} }
}, },
@ -110,10 +110,10 @@
"type": "object", "type": "object",
"properties": { "properties": {
"cpu": { "cpu": {
"type": "string" "type": ["string", "null"]
}, },
"memory": { "memory": {
"type": "string" "type": ["string", "null"]
} }
} }
} }

View File

@ -1,3 +1,5 @@
# "defaults" is a workaround for Helm limitations. Users should NOT set ".defaults" explicitly, but rather directly set the fields internally.
# For instance, instead of `--set defaults.foo=bar`, just set `--set foo=bar`.
defaults: defaults:
# Name allows overriding the release name. Generally this should not be set # Name allows overriding the release name. Generally this should not be set
name: "" name: ""

View File

@ -2,7 +2,7 @@ apiVersion: v2
name: kubezero-istio name: kubezero-istio
description: KubeZero Umbrella Chart for Istio description: KubeZero Umbrella Chart for Istio
type: application type: application
version: 0.22.3 version: 0.23.2
home: https://kubezero.com home: https://kubezero.com
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
keywords: keywords:

View File

@ -1,6 +1,6 @@
# kubezero-istio # kubezero-istio
![Version: 0.22.3-1](https://img.shields.io/badge/Version-0.22.3--1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![Version: 0.23.2](https://img.shields.io/badge/Version-0.23.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
KubeZero Umbrella Chart for Istio KubeZero Umbrella Chart for Istio
@ -21,9 +21,9 @@ Kubernetes: `>= 1.26.0-0`
| Repository | Name | Version | | Repository | Name | Version |
|------------|------|---------| |------------|------|---------|
| https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | | https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 |
| https://istio-release.storage.googleapis.com/charts | base | 1.22.3 | | https://istio-release.storage.googleapis.com/charts | base | 1.23.2 |
| https://istio-release.storage.googleapis.com/charts | istiod | 1.22.3 | | https://istio-release.storage.googleapis.com/charts | istiod | 1.23.2 |
| https://kiali.org/helm-charts | kiali-server | 1.88.0 | | https://kiali.org/helm-charts | kiali-server | 1.89.7 |
## Values ## Values

View File

@ -5,18 +5,22 @@ folder: Istio
condition: '.Values.istiod.telemetry.enabled' condition: '.Values.istiod.telemetry.enabled'
dashboards: dashboards:
- name: istio-control-plane - name: istio-control-plane
url: https://grafana.com/api/dashboards/7645/revisions/201/download url: https://grafana.com/api/dashboards/7645/revisions/229/download
tags: tags:
- Istio - Istio
- name: istio-mesh - name: istio-mesh
url: https://grafana.com/api/dashboards/7639/revisions/201/download url: https://grafana.com/api/dashboards/7639/revisions/229/download
tags: tags:
- Istio - Istio
- name: istio-service - name: istio-service
url: https://grafana.com/api/dashboards/7636/revisions/201/download url: https://grafana.com/api/dashboards/7636/revisions/229/download
tags: tags:
- Istio - Istio
- name: istio-workload - name: istio-workload
url: https://grafana.com/api/dashboards/7630/revisions/201/download url: https://grafana.com/api/dashboards/7630/revisions/229/download
tags:
- Istio
- name: istio-performance
url: https://grafana.com/api/dashboards/11829/revisions/229/download
tags: tags:
- Istio - Istio

File diff suppressed because one or more lines are too long

View File

@ -19,7 +19,7 @@ dependencies:
version: ">= 0.1.6" version: ">= 0.1.6"
repository: https://cdn.zero-downtime.net/charts/ repository: https://cdn.zero-downtime.net/charts/
- name: kube-prometheus-stack - name: kube-prometheus-stack
version: 61.9.0 version: 65.3.1
repository: https://prometheus-community.github.io/helm-charts repository: https://prometheus-community.github.io/helm-charts
- name: prometheus-adapter - name: prometheus-adapter
version: 4.11.0 version: 4.11.0

View File

@ -1,6 +1,6 @@
# kubezero-metrics # kubezero-metrics
![Version: 0.10.0](https://img.shields.io/badge/Version-0.10.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![Version: 0.10.1](https://img.shields.io/badge/Version-0.10.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. KubeZero Umbrella Chart for Prometheus, Grafana and Alertmanager as well as all Kubernetes integrations.
@ -19,9 +19,9 @@ Kubernetes: `>= 1.26.0`
| Repository | Name | Version | | Repository | Name | Version |
|------------|------|---------| |------------|------|---------|
| https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 | | https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 |
| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 61.3.2 | | https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 65.3.1 |
| https://prometheus-community.github.io/helm-charts | prometheus-adapter | 4.10.0 | | https://prometheus-community.github.io/helm-charts | prometheus-adapter | 4.11.0 |
| https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 2.14.0 | | https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 2.15.0 |
## Values ## Values

View File

@ -7,7 +7,7 @@ annotations:
url: https://github.com/prometheus-operator/kube-prometheus url: https://github.com/prometheus-operator/kube-prometheus
artifacthub.io/operator: "true" artifacthub.io/operator: "true"
apiVersion: v2 apiVersion: v2
appVersion: v0.75.1 appVersion: v0.77.1
dependencies: dependencies:
- condition: crds.enabled - condition: crds.enabled
name: crds name: crds
@ -16,19 +16,19 @@ dependencies:
- condition: kubeStateMetrics.enabled - condition: kubeStateMetrics.enabled
name: kube-state-metrics name: kube-state-metrics
repository: https://prometheus-community.github.io/helm-charts repository: https://prometheus-community.github.io/helm-charts
version: 5.21.* version: 5.26.*
- condition: nodeExporter.enabled - condition: nodeExporter.enabled
name: prometheus-node-exporter name: prometheus-node-exporter
repository: https://prometheus-community.github.io/helm-charts repository: https://prometheus-community.github.io/helm-charts
version: 4.37.* version: 4.39.*
- condition: grafana.enabled - condition: grafana.enabled
name: grafana name: grafana
repository: https://grafana.github.io/helm-charts repository: https://grafana.github.io/helm-charts
version: 8.3.* version: 8.5.*
- condition: windowsMonitoring.enabled - condition: windowsMonitoring.enabled
name: prometheus-windows-exporter name: prometheus-windows-exporter
repository: https://prometheus-community.github.io/helm-charts repository: https://prometheus-community.github.io/helm-charts
version: 0.3.* version: 0.7.*
description: kube-prometheus-stack collects Kubernetes manifests, Grafana dashboards, description: kube-prometheus-stack collects Kubernetes manifests, Grafana dashboards,
and Prometheus rules combined with documentation and scripts to provide easy to and Prometheus rules combined with documentation and scripts to provide easy to
operate end-to-end Kubernetes cluster monitoring with Prometheus using the Prometheus operate end-to-end Kubernetes cluster monitoring with Prometheus using the Prometheus
@ -62,4 +62,4 @@ sources:
- https://github.com/prometheus-community/helm-charts - https://github.com/prometheus-community/helm-charts
- https://github.com/prometheus-operator/kube-prometheus - https://github.com/prometheus-operator/kube-prometheus
type: application type: application
version: 61.3.2 version: 65.3.1

View File

@ -82,6 +82,83 @@ _See [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) for command documen
A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions. A major chart version change (like v1.2.3 -> v2.0.0) indicates that there is an incompatible breaking change needing manual actions.
### From 64.x to 65.x
This version upgrades Prometheus-Operator to v0.77.1
Run these commands to update the CRDs before applying the upgrade.
```console
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml
```
### From 63.x to 64.x
v64 reverts the v63 release.
All changes mentioned in the v63 release notes must be reverted.
### From 62.x to 63.x
Simplify setting empty selectors, by deprecating `*SelectorNilUsesHelmValues` properties.
Instead, setting `*Selector.matchLabels=null` will create an empty selector.
If you set one of the following properties to `false`, you will have to convert them:
- `prometheus.prometheusSpec.podMonitorSelectorNilUsesHelmValues`
- `prometheus.prometheusSpec.probeSelectorNilUsesHelmValues`
- `prometheus.prometheusSpec.ruleSelectorNilUsesHelmValues`
- `prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues`
- `prometheus.prometheusSpec.scrapeConfigSelectorNilUsesHelmValues`
- `thanosRuler.thanosRulerSpec.ruleSelectorNilUsesHelmValues`
For example:
```yaml
prometheus:
prometheusSpec:
scrapeConfigSelectorNilUsesHelmValues: false
```
Becomes:
```yaml
prometheus:
prometheusSpec:
scrapeConfigSelector:
matchLabels: null
```
Note that `externalPrefixNilUsesHelmValues` remains as is.
### From 61.x to 62.x
This version upgrades Prometheus-Operator to v0.76.0
Run these commands to update the CRDs before applying the upgrade.
```console
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.76.0/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml
```
### From 60.x to 61.x ### From 60.x to 61.x
This version upgrades Prometheus-Operator to v0.75.0 This version upgrades Prometheus-Operator to v0.75.0

View File

@ -1,11 +1,11 @@
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml # https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.15.0 controller-gen.kubebuilder.io/version: v0.16.1
operator.prometheus.io/version: 0.75.1 operator.prometheus.io/version: 0.77.1
argocd.argoproj.io/sync-options: ServerSideApply=true argocd.argoproj.io/sync-options: ServerSideApply=true
name: podmonitors.monitoring.coreos.com name: podmonitors.monitoring.coreos.com
spec: spec:
@ -24,7 +24,15 @@ spec:
- name: v1 - name: v1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
description: PodMonitor defines monitoring for a set of pods. description: |-
The `PodMonitor` custom resource definition (CRD) defines how `Prometheus` and `PrometheusAgent` can scrape metrics from a group of pods.
Among other things, it allows to specify:
* The pods to scrape via label selectors.
* The container ports to scrape.
* Authentication credentials to use.
* Target and metric relabeling.
`Prometheus` and `PrometheusAgent` objects select `PodMonitor` objects using label and namespace selectors.
properties: properties:
apiVersion: apiVersion:
description: |- description: |-
@ -51,13 +59,15 @@ spec:
`attachMetadata` defines additional metadata which is added to the `attachMetadata` defines additional metadata which is added to the
discovered targets. discovered targets.
It requires Prometheus >= v2.35.0.
It requires Prometheus >= v2.37.0.
properties: properties:
node: node:
description: |- description: |-
When set to true, Prometheus must have the `get` permission on the When set to true, Prometheus attaches node metadata to the discovered
`Nodes` objects. targets.
The Prometheus service account must have the `list` and `watch`
permissions on the `Nodes` objects.
type: boolean type: boolean
type: object type: object
bodySizeLimit: bodySizeLimit:
@ -65,7 +75,6 @@ spec:
When defined, bodySizeLimit specifies a job level limit on the size When defined, bodySizeLimit specifies a job level limit on the size
of uncompressed response body that will be accepted by Prometheus. of uncompressed response body that will be accepted by Prometheus.
It requires Prometheus >= v2.28.0. It requires Prometheus >= v2.28.0.
pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$ pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$
type: string type: string
@ -75,12 +84,10 @@ spec:
`jobLabel` selects the label from the associated Kubernetes `Pod` `jobLabel` selects the label from the associated Kubernetes `Pod`
object which will be used as the `job` label for all metrics. object which will be used as the `job` label for all metrics.
For example if `jobLabel` is set to `foo` and the Kubernetes `Pod` For example if `jobLabel` is set to `foo` and the Kubernetes `Pod`
object is labeled with `foo: bar`, then Prometheus adds the `job="bar"` object is labeled with `foo: bar`, then Prometheus adds the `job="bar"`
label to all ingested metrics. label to all ingested metrics.
If the value of this field is empty, the `job` label of the metrics If the value of this field is empty, the `job` label of the metrics
defaults to the namespace and name of the PodMonitor object (e.g. `<namespace>/<name>`). defaults to the namespace and name of the PodMonitor object (e.g. `<namespace>/<name>`).
type: string type: string
@ -89,7 +96,6 @@ spec:
Per-scrape limit on the number of targets dropped by relabeling Per-scrape limit on the number of targets dropped by relabeling
that will be kept in memory. 0 means no limit. that will be kept in memory. 0 means no limit.
It requires Prometheus >= v2.47.0. It requires Prometheus >= v2.47.0.
format: int64 format: int64
type: integer type: integer
@ -97,7 +103,6 @@ spec:
description: |- description: |-
Per-scrape limit on number of labels that will be accepted for a sample. Per-scrape limit on number of labels that will be accepted for a sample.
It requires Prometheus >= v2.27.0. It requires Prometheus >= v2.27.0.
format: int64 format: int64
type: integer type: integer
@ -105,7 +110,6 @@ spec:
description: |- description: |-
Per-scrape limit on length of labels name that will be accepted for a sample. Per-scrape limit on length of labels name that will be accepted for a sample.
It requires Prometheus >= v2.27.0. It requires Prometheus >= v2.27.0.
format: int64 format: int64
type: integer type: integer
@ -113,14 +117,13 @@ spec:
description: |- description: |-
Per-scrape limit on length of labels value that will be accepted for a sample. Per-scrape limit on length of labels value that will be accepted for a sample.
It requires Prometheus >= v2.27.0. It requires Prometheus >= v2.27.0.
format: int64 format: int64
type: integer type: integer
namespaceSelector: namespaceSelector:
description: |- description: |-
Selector to select which namespaces the Kubernetes `Pods` objects `namespaceSelector` defines in which namespace(s) Prometheus should discover the pods.
are discovered from. By default, the pods are discovered in the same namespace as the `PodMonitor` object but it is possible to select pods across different/all namespaces.
properties: properties:
any: any:
description: |- description: |-
@ -134,7 +137,7 @@ spec:
type: array type: array
type: object type: object
podMetricsEndpoints: podMetricsEndpoints:
description: List of endpoints part of this PodMonitor. description: Defines how to scrape metrics from the selected pods.
items: items:
description: |- description: |-
PodMetricsEndpoint defines an endpoint serving Prometheus metrics to be scraped by PodMetricsEndpoint defines an endpoint serving Prometheus metrics to be scraped by
@ -145,7 +148,6 @@ spec:
`authorization` configures the Authorization header credentials to use when `authorization` configures the Authorization header credentials to use when
scraping the target. scraping the target.
Cannot be set at the same time as `basicAuth`, or `oauth2`. Cannot be set at the same time as `basicAuth`, or `oauth2`.
properties: properties:
credentials: credentials:
@ -161,9 +163,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -176,10 +176,8 @@ spec:
description: |- description: |-
Defines the authentication type. The value is case-insensitive. Defines the authentication type. The value is case-insensitive.
"Basic" is not a supported value. "Basic" is not a supported value.
Default: "Bearer" Default: "Bearer"
type: string type: string
type: object type: object
@ -188,7 +186,6 @@ spec:
`basicAuth` configures the Basic Authentication credentials to use when `basicAuth` configures the Basic Authentication credentials to use when
scraping the target. scraping the target.
Cannot be set at the same time as `authorization`, or `oauth2`. Cannot be set at the same time as `authorization`, or `oauth2`.
properties: properties:
password: password:
@ -206,9 +203,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -232,9 +227,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -250,7 +243,6 @@ spec:
token for scraping targets. The secret needs to be in the same namespace token for scraping targets. The secret needs to be in the same namespace
as the PodMonitor object and readable by the Prometheus Operator. as the PodMonitor object and readable by the Prometheus Operator.
Deprecated: use `authorization` instead. Deprecated: use `authorization` instead.
properties: properties:
key: key:
@ -263,9 +255,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -282,10 +272,8 @@ spec:
When true, the pods which are not running (e.g. either in Failed or When true, the pods which are not running (e.g. either in Failed or
Succeeded state) are dropped during the target discovery. Succeeded state) are dropped during the target discovery.
If unset, the filtering is enabled. If unset, the filtering is enabled.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
type: boolean type: boolean
followRedirects: followRedirects:
@ -307,7 +295,6 @@ spec:
description: |- description: |-
Interval at which Prometheus scrapes the metrics from the target. Interval at which Prometheus scrapes the metrics from the target.
If empty, Prometheus uses the global scrape interval. If empty, Prometheus uses the global scrape interval.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string type: string
@ -320,7 +307,6 @@ spec:
RelabelConfig allows dynamic rewriting of the label set for targets, alerts, RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
scraped samples and remote write samples. scraped samples and remote write samples.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
properties: properties:
action: action:
@ -328,11 +314,9 @@ spec:
description: |- description: |-
Action to perform based on the regex matching. Action to perform based on the regex matching.
`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
Default: "Replace" Default: "Replace"
enum: enum:
- replace - replace
@ -362,7 +346,6 @@ spec:
description: |- description: |-
Modulus to take of the hash of the source label values. Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`. Only applicable when the action is `HashMod`.
format: int64 format: int64
type: integer type: integer
@ -374,7 +357,6 @@ spec:
Replacement value against which a Replace action is performed if the Replacement value against which a Replace action is performed if the
regular expression matches. regular expression matches.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
separator: separator:
@ -396,11 +378,9 @@ spec:
description: |- description: |-
Label to which the resulting string is written in a replacement. Label to which the resulting string is written in a replacement.
It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
`KeepEqual` and `DropEqual` actions. `KeepEqual` and `DropEqual` actions.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
type: object type: object
@ -409,10 +389,8 @@ spec:
description: |- description: |-
`oauth2` configures the OAuth2 settings to use when scraping the target. `oauth2` configures the OAuth2 settings to use when scraping the target.
It requires Prometheus >= 2.27.0. It requires Prometheus >= 2.27.0.
Cannot be set at the same time as `authorization`, or `basicAuth`. Cannot be set at the same time as `authorization`, or `basicAuth`.
properties: properties:
clientId: clientId:
@ -433,9 +411,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the ConfigMap or its key must be defined description: Specify whether the ConfigMap or its key must be defined
@ -457,9 +433,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -484,9 +458,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -502,185 +474,65 @@ spec:
`endpointParams` configures the HTTP parameters to append to the token `endpointParams` configures the HTTP parameters to append to the token
URL. URL.
type: object type: object
noProxy:
description: |-
`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
that should be excluded from proxying. IP and domain names can
contain port numbers.
It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
type: string
proxyConnectHeader:
additionalProperties:
items:
description: SecretKeySelector selects a key of a Secret.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: array
description: |-
ProxyConnectHeader optionally specifies headers to send to
proxies during CONNECT requests.
It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
type: object
x-kubernetes-map-type: atomic
proxyFromEnvironment:
description: |-
Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
type: boolean
proxyUrl:
description: '`proxyURL` defines the HTTP proxy server to use.'
pattern: ^http(s)?://.+$
type: string
scopes: scopes:
description: '`scopes` defines the OAuth2 scopes used for the token request.' description: '`scopes` defines the OAuth2 scopes used for the token request.'
items: items:
type: string type: string
type: array type: array
tokenUrl:
description: '`tokenURL` configures the URL to fetch the token from.'
minLength: 1
type: string
required:
- clientId
- clientSecret
- tokenUrl
type: object
params:
additionalProperties:
items:
type: string
type: array
description: '`params` define optional HTTP URL parameters.'
type: object
path:
description: |-
HTTP path from which to scrape for metrics.
If empty, Prometheus uses the default value (e.g. `/metrics`).
type: string
port:
description: |-
Name of the Pod port which this endpoint refers to.
It takes precedence over `targetPort`.
type: string
proxyUrl:
description: |-
`proxyURL` configures the HTTP Proxy URL (e.g.
"http://proxyserver:2195") to go through when scraping the target.
type: string
relabelings:
description: |-
`relabelings` configures the relabeling rules to apply the target's
metadata labels.
The Operator automatically adds relabelings for a few standard Kubernetes fields.
The original scrape job's name is available via the `__tmp_prometheus_job_name` label.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
items:
description: |-
RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
scraped samples and remote write samples.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
properties:
action:
default: replace
description: |-
Action to perform based on the regex matching.
`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
Default: "Replace"
enum:
- replace
- Replace
- keep
- Keep
- drop
- Drop
- hashmod
- HashMod
- labelmap
- LabelMap
- labeldrop
- LabelDrop
- labelkeep
- LabelKeep
- lowercase
- Lowercase
- uppercase
- Uppercase
- keepequal
- KeepEqual
- dropequal
- DropEqual
type: string
modulus:
description: |-
Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`.
format: int64
type: integer
regex:
description: Regular expression against which the extracted value is matched.
type: string
replacement:
description: |-
Replacement value against which a Replace action is performed if the
regular expression matches.
Regex capture groups are available.
type: string
separator:
description: Separator is the string between concatenated SourceLabels.
type: string
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is
concatenated using the configured Separator and matched against the
configured regular expression.
items:
description: |-
LabelName is a valid Prometheus label name which may only contain ASCII
letters, numbers, as well as underscores.
pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
type: string
type: array
targetLabel:
description: |-
Label to which the resulting string is written in a replacement.
It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
`KeepEqual` and `DropEqual` actions.
Regex capture groups are available.
type: string
type: object
type: array
scheme:
description: |-
HTTP scheme to use for scraping.
`http` and `https` are the expected values unless you rewrite the
`__scheme__` label via relabeling.
If empty, Prometheus uses the default value `http`.
enum:
- http
- https
type: string
scrapeTimeout:
description: |-
Timeout after which Prometheus considers the scrape to be failed.
If empty, Prometheus uses the global scrape timeout unless it is less
than the target's scrape interval value in which the latter is used.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string
targetPort:
anyOf:
- type: integer
- type: string
description: |-
Name or number of the target port of the `Pod` object behind the Service, the
port must be specified with container port property.
Deprecated: use 'port' instead.
x-kubernetes-int-or-string: true
tlsConfig: tlsConfig:
description: TLS configuration to use when scraping the target. description: |-
TLS configuration to use when connecting to the OAuth2 server.
It requires Prometheus >= v2.43.0.
properties: properties:
ca: ca:
description: Certificate authority used when verifying server certificates. description: Certificate authority used when verifying server certificates.
@ -698,9 +550,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the ConfigMap or its key must be defined description: Specify whether the ConfigMap or its key must be defined
@ -722,9 +572,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -750,9 +598,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the ConfigMap or its key must be defined description: Specify whether the ConfigMap or its key must be defined
@ -774,9 +620,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -802,9 +646,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -813,6 +655,334 @@ spec:
- key - key
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
maxVersion:
description: |-
Maximum acceptable TLS version.
It requires Prometheus >= v2.41.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
minVersion:
description: |-
Minimum acceptable TLS version.
It requires Prometheus >= v2.35.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
serverName:
description: Used to verify the hostname for the targets.
type: string
type: object
tokenUrl:
description: '`tokenURL` configures the URL to fetch the token from.'
minLength: 1
type: string
required:
- clientId
- clientSecret
- tokenUrl
type: object
params:
additionalProperties:
items:
type: string
type: array
description: '`params` define optional HTTP URL parameters.'
type: object
path:
description: |-
HTTP path from which to scrape for metrics.
If empty, Prometheus uses the default value (e.g. `/metrics`).
type: string
port:
description: |-
Name of the Pod port which this endpoint refers to.
It takes precedence over `targetPort`.
type: string
proxyUrl:
description: |-
`proxyURL` configures the HTTP Proxy URL (e.g.
"http://proxyserver:2195") to go through when scraping the target.
type: string
relabelings:
description: |-
`relabelings` configures the relabeling rules to apply the target's
metadata labels.
The Operator automatically adds relabelings for a few standard Kubernetes fields.
The original scrape job's name is available via the `__tmp_prometheus_job_name` label.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
items:
description: |-
RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
scraped samples and remote write samples.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
properties:
action:
default: replace
description: |-
Action to perform based on the regex matching.
`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
Default: "Replace"
enum:
- replace
- Replace
- keep
- Keep
- drop
- Drop
- hashmod
- HashMod
- labelmap
- LabelMap
- labeldrop
- LabelDrop
- labelkeep
- LabelKeep
- lowercase
- Lowercase
- uppercase
- Uppercase
- keepequal
- KeepEqual
- dropequal
- DropEqual
type: string
modulus:
description: |-
Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`.
format: int64
type: integer
regex:
description: Regular expression against which the extracted value is matched.
type: string
replacement:
description: |-
Replacement value against which a Replace action is performed if the
regular expression matches.
Regex capture groups are available.
type: string
separator:
description: Separator is the string between concatenated SourceLabels.
type: string
sourceLabels:
description: |-
The source labels select values from existing labels. Their content is
concatenated using the configured Separator and matched against the
configured regular expression.
items:
description: |-
LabelName is a valid Prometheus label name which may only contain ASCII
letters, numbers, as well as underscores.
pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
type: string
type: array
targetLabel:
description: |-
Label to which the resulting string is written in a replacement.
It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
`KeepEqual` and `DropEqual` actions.
Regex capture groups are available.
type: string
type: object
type: array
scheme:
description: |-
HTTP scheme to use for scraping.
`http` and `https` are the expected values unless you rewrite the
`__scheme__` label via relabeling.
If empty, Prometheus uses the default value `http`.
enum:
- http
- https
type: string
scrapeTimeout:
description: |-
Timeout after which Prometheus considers the scrape to be failed.
If empty, Prometheus uses the global scrape timeout unless it is less
than the target's scrape interval value in which the latter is used.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string
targetPort:
anyOf:
- type: integer
- type: string
description: |-
Name or number of the target port of the `Pod` object behind the Service, the
port must be specified with container port property.
Deprecated: use 'port' instead.
x-kubernetes-int-or-string: true
tlsConfig:
description: TLS configuration to use when scraping the target.
properties:
ca:
description: Certificate authority used when verifying server certificates.
properties:
configMap:
description: ConfigMap containing data to use for the targets.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secret:
description: Secret containing data to use for the targets.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
cert:
description: Client certificate to present when doing client-authentication.
properties:
configMap:
description: ConfigMap containing data to use for the targets.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secret:
description: Secret containing data to use for the targets.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
insecureSkipVerify:
description: Disable target certificate validation.
type: boolean
keySecret:
description: Secret containing the client key file for the targets.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
maxVersion:
description: |-
Maximum acceptable TLS version.
It requires Prometheus >= v2.41.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
minVersion:
description: |-
Minimum acceptable TLS version.
It requires Prometheus >= v2.35.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
serverName: serverName:
description: Used to verify the hostname for the targets. description: Used to verify the hostname for the targets.
type: string type: string
@ -823,7 +993,6 @@ spec:
the metrics that have an explicit timestamp present in scraped data. the metrics that have an explicit timestamp present in scraped data.
Has no effect if `honorTimestamps` is false. Has no effect if `honorTimestamps` is false.
It requires Prometheus >= v2.48.0. It requires Prometheus >= v2.48.0.
type: boolean type: boolean
type: object type: object
@ -850,10 +1019,8 @@ spec:
`scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the `scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the
protocols supported by Prometheus in order of preference (from most to least preferred). protocols supported by Prometheus in order of preference (from most to least preferred).
If unset, Prometheus uses its default value. If unset, Prometheus uses its default value.
It requires Prometheus >= v2.49.0. It requires Prometheus >= v2.49.0.
items: items:
description: |- description: |-
@ -872,7 +1039,7 @@ spec:
type: array type: array
x-kubernetes-list-type: set x-kubernetes-list-type: set
selector: selector:
description: Label selector to select the Kubernetes `Pod` objects. description: Label selector to select the Kubernetes `Pod` objects to scrape metrics from.
properties: properties:
matchExpressions: matchExpressions:
description: matchExpressions is a list of label selector requirements. The requirements are ANDed. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.

View File

@ -1,11 +1,11 @@
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml # https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.15.0 controller-gen.kubebuilder.io/version: v0.16.1
operator.prometheus.io/version: 0.75.1 operator.prometheus.io/version: 0.77.1
argocd.argoproj.io/sync-options: ServerSideApply=true argocd.argoproj.io/sync-options: ServerSideApply=true
name: probes.monitoring.coreos.com name: probes.monitoring.coreos.com
spec: spec:
@ -24,7 +24,14 @@ spec:
- name: v1 - name: v1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
description: Probe defines monitoring for a set of static targets or ingresses. description: |-
The `Probe` custom resource definition (CRD) defines how to scrape metrics from prober exporters such as the [blackbox exporter](https://github.com/prometheus/blackbox_exporter).
The `Probe` resource needs 2 pieces of information:
* The list of probed addresses which can be defined statically or by discovering Kubernetes Ingress objects.
* The prober which exposes the availability of probed endpoints (over various protocols such HTTP, TCP, ICMP, ...) as Prometheus metrics.
`Prometheus` and `PrometheusAgent` objects select `Probe` objects using label and namespace selectors.
properties: properties:
apiVersion: apiVersion:
description: |- description: |-
@ -62,9 +69,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -77,10 +82,8 @@ spec:
description: |- description: |-
Defines the authentication type. The value is case-insensitive. Defines the authentication type. The value is case-insensitive.
"Basic" is not a supported value. "Basic" is not a supported value.
Default: "Bearer" Default: "Bearer"
type: string type: string
type: object type: object
@ -104,9 +107,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -130,9 +131,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -158,9 +157,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -183,7 +180,6 @@ spec:
Per-scrape limit on the number of targets dropped by relabeling Per-scrape limit on the number of targets dropped by relabeling
that will be kept in memory. 0 means no limit. that will be kept in memory. 0 means no limit.
It requires Prometheus >= v2.47.0. It requires Prometheus >= v2.47.0.
format: int64 format: int64
type: integer type: integer
@ -212,7 +208,6 @@ spec:
RelabelConfig allows dynamic rewriting of the label set for targets, alerts, RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
scraped samples and remote write samples. scraped samples and remote write samples.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
properties: properties:
action: action:
@ -220,11 +215,9 @@ spec:
description: |- description: |-
Action to perform based on the regex matching. Action to perform based on the regex matching.
`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
Default: "Replace" Default: "Replace"
enum: enum:
- replace - replace
@ -254,7 +247,6 @@ spec:
description: |- description: |-
Modulus to take of the hash of the source label values. Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`. Only applicable when the action is `HashMod`.
format: int64 format: int64
type: integer type: integer
@ -266,7 +258,6 @@ spec:
Replacement value against which a Replace action is performed if the Replacement value against which a Replace action is performed if the
regular expression matches. regular expression matches.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
separator: separator:
@ -288,11 +279,9 @@ spec:
description: |- description: |-
Label to which the resulting string is written in a replacement. Label to which the resulting string is written in a replacement.
It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
`KeepEqual` and `DropEqual` actions. `KeepEqual` and `DropEqual` actions.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
type: object type: object
@ -324,9 +313,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the ConfigMap or its key must be defined description: Specify whether the ConfigMap or its key must be defined
@ -348,9 +335,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -375,9 +360,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -393,11 +376,213 @@ spec:
`endpointParams` configures the HTTP parameters to append to the token `endpointParams` configures the HTTP parameters to append to the token
URL. URL.
type: object type: object
noProxy:
description: |-
`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
that should be excluded from proxying. IP and domain names can
contain port numbers.
It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
type: string
proxyConnectHeader:
additionalProperties:
items:
description: SecretKeySelector selects a key of a Secret.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: array
description: |-
ProxyConnectHeader optionally specifies headers to send to
proxies during CONNECT requests.
It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
type: object
x-kubernetes-map-type: atomic
proxyFromEnvironment:
description: |-
Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
type: boolean
proxyUrl:
description: '`proxyURL` defines the HTTP proxy server to use.'
pattern: ^http(s)?://.+$
type: string
scopes: scopes:
description: '`scopes` defines the OAuth2 scopes used for the token request.' description: '`scopes` defines the OAuth2 scopes used for the token request.'
items: items:
type: string type: string
type: array type: array
tlsConfig:
description: |-
TLS configuration to use when connecting to the OAuth2 server.
It requires Prometheus >= v2.43.0.
properties:
ca:
description: Certificate authority used when verifying server certificates.
properties:
configMap:
description: ConfigMap containing data to use for the targets.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secret:
description: Secret containing data to use for the targets.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
cert:
description: Client certificate to present when doing client-authentication.
properties:
configMap:
description: ConfigMap containing data to use for the targets.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secret:
description: Secret containing data to use for the targets.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
insecureSkipVerify:
description: Disable target certificate validation.
type: boolean
keySecret:
description: Secret containing the client key file for the targets.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
maxVersion:
description: |-
Maximum acceptable TLS version.
It requires Prometheus >= v2.41.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
minVersion:
description: |-
Minimum acceptable TLS version.
It requires Prometheus >= v2.35.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
serverName:
description: Used to verify the hostname for the targets.
type: string
type: object
tokenUrl: tokenUrl:
description: '`tokenURL` configures the URL to fetch the token from.' description: '`tokenURL` configures the URL to fetch the token from.'
minLength: 1 minLength: 1
@ -449,10 +634,8 @@ spec:
`scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the `scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the
protocols supported by Prometheus in order of preference (from most to least preferred). protocols supported by Prometheus in order of preference (from most to least preferred).
If unset, Prometheus uses its default value. If unset, Prometheus uses its default value.
It requires Prometheus >= v2.49.0. It requires Prometheus >= v2.49.0.
items: items:
description: |- description: |-
@ -517,7 +700,6 @@ spec:
RelabelConfig allows dynamic rewriting of the label set for targets, alerts, RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
scraped samples and remote write samples. scraped samples and remote write samples.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
properties: properties:
action: action:
@ -525,11 +707,9 @@ spec:
description: |- description: |-
Action to perform based on the regex matching. Action to perform based on the regex matching.
`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
Default: "Replace" Default: "Replace"
enum: enum:
- replace - replace
@ -559,7 +739,6 @@ spec:
description: |- description: |-
Modulus to take of the hash of the source label values. Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`. Only applicable when the action is `HashMod`.
format: int64 format: int64
type: integer type: integer
@ -571,7 +750,6 @@ spec:
Replacement value against which a Replace action is performed if the Replacement value against which a Replace action is performed if the
regular expression matches. regular expression matches.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
separator: separator:
@ -593,11 +771,9 @@ spec:
description: |- description: |-
Label to which the resulting string is written in a replacement. Label to which the resulting string is written in a replacement.
It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
`KeepEqual` and `DropEqual` actions. `KeepEqual` and `DropEqual` actions.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
type: object type: object
@ -669,7 +845,6 @@ spec:
RelabelConfig allows dynamic rewriting of the label set for targets, alerts, RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
scraped samples and remote write samples. scraped samples and remote write samples.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
properties: properties:
action: action:
@ -677,11 +852,9 @@ spec:
description: |- description: |-
Action to perform based on the regex matching. Action to perform based on the regex matching.
`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
Default: "Replace" Default: "Replace"
enum: enum:
- replace - replace
@ -711,7 +884,6 @@ spec:
description: |- description: |-
Modulus to take of the hash of the source label values. Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`. Only applicable when the action is `HashMod`.
format: int64 format: int64
type: integer type: integer
@ -723,7 +895,6 @@ spec:
Replacement value against which a Replace action is performed if the Replacement value against which a Replace action is performed if the
regular expression matches. regular expression matches.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
separator: separator:
@ -745,11 +916,9 @@ spec:
description: |- description: |-
Label to which the resulting string is written in a replacement. Label to which the resulting string is written in a replacement.
It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
`KeepEqual` and `DropEqual` actions. `KeepEqual` and `DropEqual` actions.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
type: object type: object
@ -780,9 +949,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the ConfigMap or its key must be defined description: Specify whether the ConfigMap or its key must be defined
@ -804,9 +971,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -832,9 +997,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the ConfigMap or its key must be defined description: Specify whether the ConfigMap or its key must be defined
@ -856,9 +1019,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -884,9 +1045,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -895,6 +1054,28 @@ spec:
- key - key
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
maxVersion:
description: |-
Maximum acceptable TLS version.
It requires Prometheus >= v2.41.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
minVersion:
description: |-
Minimum acceptable TLS version.
It requires Prometheus >= v2.35.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
serverName: serverName:
description: Used to verify the hostname for the targets. description: Used to verify the hostname for the targets.
type: string type: string

View File

@ -1,11 +1,11 @@
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml # https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.15.0 controller-gen.kubebuilder.io/version: v0.16.1
operator.prometheus.io/version: 0.75.1 operator.prometheus.io/version: 0.77.1
argocd.argoproj.io/sync-options: ServerSideApply=true argocd.argoproj.io/sync-options: ServerSideApply=true
name: prometheusrules.monitoring.coreos.com name: prometheusrules.monitoring.coreos.com
spec: spec:
@ -24,7 +24,10 @@ spec:
- name: v1 - name: v1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
description: PrometheusRule defines recording and alerting rules for a Prometheus instance description: |-
The `PrometheusRule` custom resource definition (CRD) defines [alerting](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/) and [recording](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/) rules to be evaluated by `Prometheus` or `ThanosRuler` objects.
`Prometheus` and `ThanosRuler` objects select `PrometheusRule` objects using label and namespace selectors.
properties: properties:
apiVersion: apiVersion:
description: |- description: |-

View File

@ -1,11 +1,11 @@
# https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.75.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml # https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.77.1/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
--- ---
apiVersion: apiextensions.k8s.io/v1 apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.15.0 controller-gen.kubebuilder.io/version: v0.16.1
operator.prometheus.io/version: 0.75.1 operator.prometheus.io/version: 0.77.1
argocd.argoproj.io/sync-options: ServerSideApply=true argocd.argoproj.io/sync-options: ServerSideApply=true
name: servicemonitors.monitoring.coreos.com name: servicemonitors.monitoring.coreos.com
spec: spec:
@ -24,7 +24,15 @@ spec:
- name: v1 - name: v1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
description: ServiceMonitor defines monitoring for a set of services. description: |-
The `ServiceMonitor` custom resource definition (CRD) defines how `Prometheus` and `PrometheusAgent` can scrape metrics from a group of services.
Among other things, it allows to specify:
* The services to scrape via label selectors.
* The container ports to scrape.
* Authentication credentials to use.
* Target and metric relabeling.
`Prometheus` and `PrometheusAgent` objects select `ServiceMonitor` objects using label and namespace selectors.
properties: properties:
apiVersion: apiVersion:
description: |- description: |-
@ -53,13 +61,15 @@ spec:
`attachMetadata` defines additional metadata which is added to the `attachMetadata` defines additional metadata which is added to the
discovered targets. discovered targets.
It requires Prometheus >= v2.37.0. It requires Prometheus >= v2.37.0.
properties: properties:
node: node:
description: |- description: |-
When set to true, Prometheus must have the `get` permission on the When set to true, Prometheus attaches node metadata to the discovered
`Nodes` objects. targets.
The Prometheus service account must have the `list` and `watch`
permissions on the `Nodes` objects.
type: boolean type: boolean
type: object type: object
bodySizeLimit: bodySizeLimit:
@ -67,12 +77,14 @@ spec:
When defined, bodySizeLimit specifies a job level limit on the size When defined, bodySizeLimit specifies a job level limit on the size
of uncompressed response body that will be accepted by Prometheus. of uncompressed response body that will be accepted by Prometheus.
It requires Prometheus >= v2.28.0. It requires Prometheus >= v2.28.0.
pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$ pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$
type: string type: string
endpoints: endpoints:
description: List of endpoints part of this ServiceMonitor. description: |-
List of endpoints part of this ServiceMonitor.
Defines how to scrape metrics from Kubernetes [Endpoints](https://kubernetes.io/docs/concepts/services-networking/service/#endpoints) objects.
In most cases, an Endpoints object is backed by a Kubernetes [Service](https://kubernetes.io/docs/concepts/services-networking/service/) object with the same name and labels.
items: items:
description: |- description: |-
Endpoint defines an endpoint serving Prometheus metrics to be scraped by Endpoint defines an endpoint serving Prometheus metrics to be scraped by
@ -83,7 +95,6 @@ spec:
`authorization` configures the Authorization header credentials to use when `authorization` configures the Authorization header credentials to use when
scraping the target. scraping the target.
Cannot be set at the same time as `basicAuth`, or `oauth2`. Cannot be set at the same time as `basicAuth`, or `oauth2`.
properties: properties:
credentials: credentials:
@ -99,9 +110,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -114,10 +123,8 @@ spec:
description: |- description: |-
Defines the authentication type. The value is case-insensitive. Defines the authentication type. The value is case-insensitive.
"Basic" is not a supported value. "Basic" is not a supported value.
Default: "Bearer" Default: "Bearer"
type: string type: string
type: object type: object
@ -126,7 +133,6 @@ spec:
`basicAuth` configures the Basic Authentication credentials to use when `basicAuth` configures the Basic Authentication credentials to use when
scraping the target. scraping the target.
Cannot be set at the same time as `authorization`, or `oauth2`. Cannot be set at the same time as `authorization`, or `oauth2`.
properties: properties:
password: password:
@ -144,9 +150,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -170,9 +174,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -186,7 +188,6 @@ spec:
description: |- description: |-
File to read bearer token for scraping the target. File to read bearer token for scraping the target.
Deprecated: use `authorization` instead. Deprecated: use `authorization` instead.
type: string type: string
bearerTokenSecret: bearerTokenSecret:
@ -195,7 +196,6 @@ spec:
token for scraping targets. The secret needs to be in the same namespace token for scraping targets. The secret needs to be in the same namespace
as the ServiceMonitor object and readable by the Prometheus Operator. as the ServiceMonitor object and readable by the Prometheus Operator.
Deprecated: use `authorization` instead. Deprecated: use `authorization` instead.
properties: properties:
key: key:
@ -208,9 +208,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -227,10 +225,8 @@ spec:
When true, the pods which are not running (e.g. either in Failed or When true, the pods which are not running (e.g. either in Failed or
Succeeded state) are dropped during the target discovery. Succeeded state) are dropped during the target discovery.
If unset, the filtering is enabled. If unset, the filtering is enabled.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
type: boolean type: boolean
followRedirects: followRedirects:
@ -252,7 +248,6 @@ spec:
description: |- description: |-
Interval at which Prometheus scrapes the metrics from the target. Interval at which Prometheus scrapes the metrics from the target.
If empty, Prometheus uses the global scrape interval. If empty, Prometheus uses the global scrape interval.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
type: string type: string
@ -265,7 +260,6 @@ spec:
RelabelConfig allows dynamic rewriting of the label set for targets, alerts, RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
scraped samples and remote write samples. scraped samples and remote write samples.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
properties: properties:
action: action:
@ -273,11 +267,9 @@ spec:
description: |- description: |-
Action to perform based on the regex matching. Action to perform based on the regex matching.
`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
Default: "Replace" Default: "Replace"
enum: enum:
- replace - replace
@ -307,7 +299,6 @@ spec:
description: |- description: |-
Modulus to take of the hash of the source label values. Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`. Only applicable when the action is `HashMod`.
format: int64 format: int64
type: integer type: integer
@ -319,7 +310,6 @@ spec:
Replacement value against which a Replace action is performed if the Replacement value against which a Replace action is performed if the
regular expression matches. regular expression matches.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
separator: separator:
@ -341,11 +331,9 @@ spec:
description: |- description: |-
Label to which the resulting string is written in a replacement. Label to which the resulting string is written in a replacement.
It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
`KeepEqual` and `DropEqual` actions. `KeepEqual` and `DropEqual` actions.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
type: object type: object
@ -354,10 +342,8 @@ spec:
description: |- description: |-
`oauth2` configures the OAuth2 settings to use when scraping the target. `oauth2` configures the OAuth2 settings to use when scraping the target.
It requires Prometheus >= 2.27.0. It requires Prometheus >= 2.27.0.
Cannot be set at the same time as `authorization`, or `basicAuth`. Cannot be set at the same time as `authorization`, or `basicAuth`.
properties: properties:
clientId: clientId:
@ -378,9 +364,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the ConfigMap or its key must be defined description: Specify whether the ConfigMap or its key must be defined
@ -402,9 +386,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -429,9 +411,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -447,11 +427,213 @@ spec:
`endpointParams` configures the HTTP parameters to append to the token `endpointParams` configures the HTTP parameters to append to the token
URL. URL.
type: object type: object
noProxy:
description: |-
`noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
that should be excluded from proxying. IP and domain names can
contain port numbers.
It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
type: string
proxyConnectHeader:
additionalProperties:
items:
description: SecretKeySelector selects a key of a Secret.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: array
description: |-
ProxyConnectHeader optionally specifies headers to send to
proxies during CONNECT requests.
It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
type: object
x-kubernetes-map-type: atomic
proxyFromEnvironment:
description: |-
Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
It requires Prometheus >= v2.43.0 or Alertmanager >= 0.25.0.
type: boolean
proxyUrl:
description: '`proxyURL` defines the HTTP proxy server to use.'
pattern: ^http(s)?://.+$
type: string
scopes: scopes:
description: '`scopes` defines the OAuth2 scopes used for the token request.' description: '`scopes` defines the OAuth2 scopes used for the token request.'
items: items:
type: string type: string
type: array type: array
tlsConfig:
description: |-
TLS configuration to use when connecting to the OAuth2 server.
It requires Prometheus >= v2.43.0.
properties:
ca:
description: Certificate authority used when verifying server certificates.
properties:
configMap:
description: ConfigMap containing data to use for the targets.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secret:
description: Secret containing data to use for the targets.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
cert:
description: Client certificate to present when doing client-authentication.
properties:
configMap:
description: ConfigMap containing data to use for the targets.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secret:
description: Secret containing data to use for the targets.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
insecureSkipVerify:
description: Disable target certificate validation.
type: boolean
keySecret:
description: Secret containing the client key file for the targets.
properties:
key:
description: The key of the secret to select from. Must be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
maxVersion:
description: |-
Maximum acceptable TLS version.
It requires Prometheus >= v2.41.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
minVersion:
description: |-
Minimum acceptable TLS version.
It requires Prometheus >= v2.35.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
serverName:
description: Used to verify the hostname for the targets.
type: string
type: object
tokenUrl: tokenUrl:
description: '`tokenURL` configures the URL to fetch the token from.' description: '`tokenURL` configures the URL to fetch the token from.'
minLength: 1 minLength: 1
@ -472,14 +654,12 @@ spec:
description: |- description: |-
HTTP path from which to scrape for metrics. HTTP path from which to scrape for metrics.
If empty, Prometheus uses the default value (e.g. `/metrics`). If empty, Prometheus uses the default value (e.g. `/metrics`).
type: string type: string
port: port:
description: |- description: |-
Name of the Service port which this endpoint refers to. Name of the Service port which this endpoint refers to.
It takes precedence over `targetPort`. It takes precedence over `targetPort`.
type: string type: string
proxyUrl: proxyUrl:
@ -492,20 +672,16 @@ spec:
`relabelings` configures the relabeling rules to apply the target's `relabelings` configures the relabeling rules to apply the target's
metadata labels. metadata labels.
The Operator automatically adds relabelings for a few standard Kubernetes fields. The Operator automatically adds relabelings for a few standard Kubernetes fields.
The original scrape job's name is available via the `__tmp_prometheus_job_name` label. The original scrape job's name is available via the `__tmp_prometheus_job_name` label.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
items: items:
description: |- description: |-
RelabelConfig allows dynamic rewriting of the label set for targets, alerts, RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
scraped samples and remote write samples. scraped samples and remote write samples.
More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
properties: properties:
action: action:
@ -513,11 +689,9 @@ spec:
description: |- description: |-
Action to perform based on the regex matching. Action to perform based on the regex matching.
`Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
`DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
Default: "Replace" Default: "Replace"
enum: enum:
- replace - replace
@ -547,7 +721,6 @@ spec:
description: |- description: |-
Modulus to take of the hash of the source label values. Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`. Only applicable when the action is `HashMod`.
format: int64 format: int64
type: integer type: integer
@ -559,7 +732,6 @@ spec:
Replacement value against which a Replace action is performed if the Replacement value against which a Replace action is performed if the
regular expression matches. regular expression matches.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
separator: separator:
@ -581,11 +753,9 @@ spec:
description: |- description: |-
Label to which the resulting string is written in a replacement. Label to which the resulting string is written in a replacement.
It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
`KeepEqual` and `DropEqual` actions. `KeepEqual` and `DropEqual` actions.
Regex capture groups are available. Regex capture groups are available.
type: string type: string
type: object type: object
@ -594,11 +764,9 @@ spec:
description: |- description: |-
HTTP scheme to use for scraping. HTTP scheme to use for scraping.
`http` and `https` are the expected values unless you rewrite the `http` and `https` are the expected values unless you rewrite the
`__scheme__` label via relabeling. `__scheme__` label via relabeling.
If empty, Prometheus uses the default value `http`. If empty, Prometheus uses the default value `http`.
enum: enum:
- http - http
@ -608,7 +776,6 @@ spec:
description: |- description: |-
Timeout after which Prometheus considers the scrape to be failed. Timeout after which Prometheus considers the scrape to be failed.
If empty, Prometheus uses the global scrape timeout unless it is less If empty, Prometheus uses the global scrape timeout unless it is less
than the target's scrape interval value in which the latter is used. than the target's scrape interval value in which the latter is used.
pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
@ -640,9 +807,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the ConfigMap or its key must be defined description: Specify whether the ConfigMap or its key must be defined
@ -664,9 +829,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -695,9 +858,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the ConfigMap or its key must be defined description: Specify whether the ConfigMap or its key must be defined
@ -719,9 +880,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -753,9 +912,7 @@ spec:
This field is effectively required, but due to backwards compatibility is This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong. almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.
type: string type: string
optional: optional:
description: Specify whether the Secret or its key must be defined description: Specify whether the Secret or its key must be defined
@ -764,6 +921,28 @@ spec:
- key - key
type: object type: object
x-kubernetes-map-type: atomic x-kubernetes-map-type: atomic
maxVersion:
description: |-
Maximum acceptable TLS version.
It requires Prometheus >= v2.41.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
minVersion:
description: |-
Minimum acceptable TLS version.
It requires Prometheus >= v2.35.0.
enum:
- TLS10
- TLS11
- TLS12
- TLS13
type: string
serverName: serverName:
description: Used to verify the hostname for the targets. description: Used to verify the hostname for the targets.
type: string type: string
@ -774,7 +953,6 @@ spec:
the metrics that have an explicit timestamp present in scraped data. the metrics that have an explicit timestamp present in scraped data.
Has no effect if `honorTimestamps` is false. Has no effect if `honorTimestamps` is false.
It requires Prometheus >= v2.48.0. It requires Prometheus >= v2.48.0.
type: boolean type: boolean
type: object type: object
@ -784,12 +962,10 @@ spec:
`jobLabel` selects the label from the associated Kubernetes `Service` `jobLabel` selects the label from the associated Kubernetes `Service`
object which will be used as the `job` label for all metrics. object which will be used as the `job` label for all metrics.
For example if `jobLabel` is set to `foo` and the Kubernetes `Service` For example if `jobLabel` is set to `foo` and the Kubernetes `Service`
object is labeled with `foo: bar`, then Prometheus adds the `job="bar"` object is labeled with `foo: bar`, then Prometheus adds the `job="bar"`
label to all ingested metrics. label to all ingested metrics.
If the value of this field is empty or if the label doesn't exist for If the value of this field is empty or if the label doesn't exist for
the given Service, the `job` label of the metrics defaults to the name the given Service, the `job` label of the metrics defaults to the name
of the associated Kubernetes `Service`. of the associated Kubernetes `Service`.
@ -799,7 +975,6 @@ spec:
Per-scrape limit on the number of targets dropped by relabeling Per-scrape limit on the number of targets dropped by relabeling
that will be kept in memory. 0 means no limit. that will be kept in memory. 0 means no limit.
It requires Prometheus >= v2.47.0. It requires Prometheus >= v2.47.0.
format: int64 format: int64
type: integer type: integer
@ -807,7 +982,6 @@ spec:
description: |- description: |-
Per-scrape limit on number of labels that will be accepted for a sample. Per-scrape limit on number of labels that will be accepted for a sample.
It requires Prometheus >= v2.27.0. It requires Prometheus >= v2.27.0.
format: int64 format: int64
type: integer type: integer
@ -815,7 +989,6 @@ spec:
description: |- description: |-
Per-scrape limit on length of labels name that will be accepted for a sample. Per-scrape limit on length of labels name that will be accepted for a sample.
It requires Prometheus >= v2.27.0. It requires Prometheus >= v2.27.0.
format: int64 format: int64
type: integer type: integer
@ -823,14 +996,13 @@ spec:
description: |- description: |-
Per-scrape limit on length of labels value that will be accepted for a sample. Per-scrape limit on length of labels value that will be accepted for a sample.
It requires Prometheus >= v2.27.0. It requires Prometheus >= v2.27.0.
format: int64 format: int64
type: integer type: integer
namespaceSelector: namespaceSelector:
description: |- description: |-
Selector to select which namespaces the Kubernetes `Endpoints` objects `namespaceSelector` defines in which namespace(s) Prometheus should discover the services.
are discovered from. By default, the services are discovered in the same namespace as the `ServiceMonitor` object but it is possible to select pods across different/all namespaces.
properties: properties:
any: any:
description: |- description: |-
@ -865,10 +1037,8 @@ spec:
`scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the `scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the
protocols supported by Prometheus in order of preference (from most to least preferred). protocols supported by Prometheus in order of preference (from most to least preferred).
If unset, Prometheus uses its default value. If unset, Prometheus uses its default value.
It requires Prometheus >= v2.49.0. It requires Prometheus >= v2.49.0.
items: items:
description: |- description: |-
@ -887,7 +1057,7 @@ spec:
type: array type: array
x-kubernetes-list-type: set x-kubernetes-list-type: set
selector: selector:
description: Label selector to select the Kubernetes `Endpoints` objects. description: Label selector to select the Kubernetes `Endpoints` objects to scrape metrics from.
properties: properties:
matchExpressions: matchExpressions:
description: matchExpressions is a list of label selector requirements. The requirements are ANDed. description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
@ -944,6 +1114,7 @@ spec:
format: int64 format: int64
type: integer type: integer
required: required:
- endpoints
- selector - selector
type: object type: object
required: required:

View File

@ -6,7 +6,7 @@ annotations:
- name: Upstream Project - name: Upstream Project
url: https://github.com/grafana/grafana url: https://github.com/grafana/grafana
apiVersion: v2 apiVersion: v2
appVersion: 11.1.0 appVersion: 11.2.2
description: The leading tool for querying and visualizing time series and metrics. description: The leading tool for querying and visualizing time series and metrics.
home: https://grafana.com home: https://grafana.com
icon: https://artifacthub.io/image/b4fed1a7-6c8f-4945-b99d-096efa3e4116 icon: https://artifacthub.io/image/b4fed1a7-6c8f-4945-b99d-096efa3e4116
@ -32,4 +32,4 @@ sources:
- https://github.com/grafana/grafana - https://github.com/grafana/grafana
- https://github.com/grafana/helm-charts - https://github.com/grafana/helm-charts
type: application type: application
version: 8.3.4 version: 8.5.5

View File

@ -121,7 +121,7 @@ need to instead set `global.imageRegistry`.
| `persistence.subPath` | Mount a sub dir of the persistent volume (can be templated) | `nil` | | `persistence.subPath` | Mount a sub dir of the persistent volume (can be templated) | `nil` |
| `persistence.inMemory.enabled` | If persistence is not enabled, whether to mount the local storage in-memory to improve performance | `false` | | `persistence.inMemory.enabled` | If persistence is not enabled, whether to mount the local storage in-memory to improve performance | `false` |
| `persistence.inMemory.sizeLimit` | SizeLimit for the in-memory local storage | `nil` | | `persistence.inMemory.sizeLimit` | SizeLimit for the in-memory local storage | `nil` |
| `persistence.disableWarning` | Hide NOTES warning, useful when persiting to a database | `false` | | `persistence.disableWarning` | Hide NOTES warning, useful when persisting to a database | `false` |
| `initChownData.enabled` | If false, don't reset data ownership at startup | true | | `initChownData.enabled` | If false, don't reset data ownership at startup | true |
| `initChownData.image.registry` | init-chown-data container image registry | `docker.io` | | `initChownData.image.registry` | init-chown-data container image registry | `docker.io` |
| `initChownData.image.repository` | init-chown-data container image repository | `busybox` | | `initChownData.image.repository` | init-chown-data container image repository | `busybox` |
@ -165,7 +165,7 @@ need to instead set `global.imageRegistry`.
| `lifecycleHooks` | Lifecycle hooks for podStart and preStop [Example](https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/#define-poststart-and-prestop-handlers) | `{}` | | `lifecycleHooks` | Lifecycle hooks for podStart and preStop [Example](https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/#define-poststart-and-prestop-handlers) | `{}` |
| `sidecar.image.registry` | Sidecar image registry | `quay.io` | | `sidecar.image.registry` | Sidecar image registry | `quay.io` |
| `sidecar.image.repository` | Sidecar image repository | `kiwigrid/k8s-sidecar` | | `sidecar.image.repository` | Sidecar image repository | `kiwigrid/k8s-sidecar` |
| `sidecar.image.tag` | Sidecar image tag | `1.26.0` | | `sidecar.image.tag` | Sidecar image tag | `1.28.0` |
| `sidecar.image.sha` | Sidecar image sha (optional) | `""` | | `sidecar.image.sha` | Sidecar image sha (optional) | `""` |
| `sidecar.imagePullPolicy` | Sidecar image pull policy | `IfNotPresent` | | `sidecar.imagePullPolicy` | Sidecar image pull policy | `IfNotPresent` |
| `sidecar.resources` | Sidecar resources | `{}` | | `sidecar.resources` | Sidecar resources | `{}` |
@ -292,6 +292,8 @@ need to instead set `global.imageRegistry`.
| `imageRenderer.service.targetPort` | image-renderer service port used by service | `8081` | | `imageRenderer.service.targetPort` | image-renderer service port used by service | `8081` |
| `imageRenderer.appProtocol` | Adds the appProtocol field to the service | `` | | `imageRenderer.appProtocol` | Adds the appProtocol field to the service | `` |
| `imageRenderer.grafanaSubPath` | Grafana sub path to use for image renderer callback url | `''` | | `imageRenderer.grafanaSubPath` | Grafana sub path to use for image renderer callback url | `''` |
| `imageRenderer.serverURL` | Remote image renderer url | `''` |
| `imageRenderer.renderingCallbackURL` | Callback url for the Grafana image renderer | `''` |
| `imageRenderer.podPortName` | name of the image-renderer port on the pod | `http` | | `imageRenderer.podPortName` | name of the image-renderer port on the pod | `http` |
| `imageRenderer.revisionHistoryLimit` | number of image-renderer replica sets to keep | `10` | | `imageRenderer.revisionHistoryLimit` | number of image-renderer replica sets to keep | `10` |
| `imageRenderer.networkPolicy.limitIngress` | Enable a NetworkPolicy to limit inbound traffic from only the created grafana pods | `true` | | `imageRenderer.networkPolicy.limitIngress` | Enable a NetworkPolicy to limit inbound traffic from only the created grafana pods | `true` |
@ -718,7 +720,7 @@ stringData:
Include in the `extraSecretMounts` configuration flag: Include in the `extraSecretMounts` configuration flag:
```yaml ```yaml
- extraSecretMounts: extraSecretMounts:
- name: auth-generic-oauth-secret-mount - name: auth-generic-oauth-secret-mount
secretName: auth-generic-oauth-secret secretName: auth-generic-oauth-secret
defaultMode: 0440 defaultMode: 0440
@ -731,7 +733,7 @@ Include in the `extraSecretMounts` configuration flag:
This example uses a CSI driver e.g. retrieving secrets using [Azure Key Vault Provider](https://github.com/Azure/secrets-store-csi-driver-provider-azure) This example uses a CSI driver e.g. retrieving secrets using [Azure Key Vault Provider](https://github.com/Azure/secrets-store-csi-driver-provider-azure)
```yaml ```yaml
- extraSecretMounts: extraSecretMounts:
- name: secrets-store-inline - name: secrets-store-inline
mountPath: /run/secrets mountPath: /run/secrets
readOnly: true readOnly: true

View File

@ -0,0 +1,6 @@
global:
environment: prod
ingress:
enabled: true
hosts:
- monitoring-{{ .Values.global.environment }}.example.com

View File

@ -68,7 +68,7 @@ Common labels
helm.sh/chart: {{ include "grafana.chart" . }} helm.sh/chart: {{ include "grafana.chart" . }}
{{ include "grafana.selectorLabels" . }} {{ include "grafana.selectorLabels" . }}
{{- if or .Chart.AppVersion .Values.image.tag }} {{- if or .Chart.AppVersion .Values.image.tag }}
app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | quote }} app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | trunc 63 | trimSuffix "-" | quote }}
{{- end }} {{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.extraLabels }} {{- with .Values.extraLabels }}
@ -91,7 +91,7 @@ Common labels
helm.sh/chart: {{ include "grafana.chart" . }} helm.sh/chart: {{ include "grafana.chart" . }}
{{ include "grafana.imageRenderer.selectorLabels" . }} {{ include "grafana.imageRenderer.selectorLabels" . }}
{{- if or .Chart.AppVersion .Values.image.tag }} {{- if or .Chart.AppVersion .Values.image.tag }}
app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | quote }} app.kubernetes.io/version: {{ mustRegexReplaceAllLiteral "@sha.*" .Values.image.tag "" | default .Chart.AppVersion | trunc 63 | trimSuffix "-" | quote }}
{{- end }} {{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }} {{- end }}

View File

@ -1059,10 +1059,18 @@ containers:
{{- end }} {{- end }}
{{- if .Values.imageRenderer.enabled }} {{- if .Values.imageRenderer.enabled }}
- name: GF_RENDERING_SERVER_URL - name: GF_RENDERING_SERVER_URL
{{- if .Values.imageRenderer.serverURL }}
value: {{ .Values.imageRenderer.serverURL | quote }}
{{- else }}
value: http://{{ include "grafana.fullname" . }}-image-renderer.{{ include "grafana.namespace" . }}:{{ .Values.imageRenderer.service.port }}/render value: http://{{ include "grafana.fullname" . }}-image-renderer.{{ include "grafana.namespace" . }}:{{ .Values.imageRenderer.service.port }}/render
{{- end }}
- name: GF_RENDERING_CALLBACK_URL - name: GF_RENDERING_CALLBACK_URL
{{- if .Values.imageRenderer.renderingCallbackURL }}
value: {{ .Values.imageRenderer.renderingCallbackURL | quote }}
{{- else }}
value: {{ .Values.imageRenderer.grafanaProtocol }}://{{ include "grafana.fullname" . }}.{{ include "grafana.namespace" . }}:{{ .Values.service.port }}/{{ .Values.imageRenderer.grafanaSubPath }} value: {{ .Values.imageRenderer.grafanaProtocol }}://{{ include "grafana.fullname" . }}.{{ include "grafana.namespace" . }}:{{ .Values.service.port }}/{{ .Values.imageRenderer.grafanaSubPath }}
{{- end }} {{- end }}
{{- end }}
- name: GF_PATHS_DATA - name: GF_PATHS_DATA
value: {{ (get .Values "grafana.ini").paths.data }} value: {{ (get .Values "grafana.ini").paths.data }}
- name: GF_PATHS_LOGS - name: GF_PATHS_LOGS
@ -1156,6 +1164,9 @@ volumes:
- name: {{ tpl .name $root }} - name: {{ tpl .name $root }}
configMap: configMap:
name: {{ tpl .configMap $root }} name: {{ tpl .configMap $root }}
{{- with .optional }}
optional: {{ . }}
{{- end }}
{{- with .items }} {{- with .items }}
items: items:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
@ -1261,6 +1272,9 @@ volumes:
secret: secret:
secretName: {{ .secretName }} secretName: {{ .secretName }}
defaultMode: {{ .defaultMode }} defaultMode: {{ .defaultMode }}
{{- with .optional }}
optional: {{ . }}
{{- end }}
{{- with .items }} {{- with .items }}
items: items:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}

View File

@ -9,9 +9,6 @@ metadata:
labels: labels:
{{- include "grafana.labels" $ | nindent 4 }} {{- include "grafana.labels" $ | nindent 4 }}
dashboard-provider: {{ $provider }} dashboard-provider: {{ $provider }}
{{- if $.Values.sidecar.dashboards.enabled }}
{{ $.Values.sidecar.dashboards.label }}: {{ $.Values.sidecar.dashboards.labelValue | quote }}
{{- end }}
{{- if $dashboards }} {{- if $dashboards }}
data: data:
{{- $dashboardFound := false }} {{- $dashboardFound := false }}

View File

@ -14,7 +14,7 @@ metadata:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
{{- end }} {{- end }}
spec: spec:
{{- if and (not .Values.autoscaling.enabled) (.Values.replicas) }} {{- if (not .Values.autoscaling.enabled) }}
replicas: {{ .Values.replicas }} replicas: {{ .Values.replicas }}
{{- end }} {{- end }}
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }} revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}

View File

@ -1,4 +1,4 @@
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) (eq .Values.persistence.type "pvc")}} {{- if and (not .Values.useStatefulSet) .Values.persistence.enabled (not .Values.persistence.existingClaim) (eq .Values.persistence.type "pvc")}}
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:

View File

@ -39,7 +39,9 @@ spec:
{{- include "grafana.pod" . | nindent 6 }} {{- include "grafana.pod" . | nindent 6 }}
{{- if .Values.persistence.enabled}} {{- if .Values.persistence.enabled}}
volumeClaimTemplates: volumeClaimTemplates:
- metadata: - apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: storage name: storage
spec: spec:
accessModes: {{ .Values.persistence.accessModes }} accessModes: {{ .Values.persistence.accessModes }}

View File

@ -5,7 +5,7 @@ metadata:
name: {{ include "grafana.fullname" . }}-test name: {{ include "grafana.fullname" . }}-test
namespace: {{ include "grafana.namespace" . }} namespace: {{ include "grafana.namespace" . }}
annotations: annotations:
"helm.sh/hook": test-success "helm.sh/hook": test
"helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
labels: labels:
{{- include "grafana.labels" . | nindent 4 }} {{- include "grafana.labels" . | nindent 4 }}

View File

@ -4,7 +4,7 @@ kind: PodSecurityPolicy
metadata: metadata:
name: {{ include "grafana.fullname" . }}-test name: {{ include "grafana.fullname" . }}-test
annotations: annotations:
"helm.sh/hook": test-success "helm.sh/hook": test
"helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
labels: labels:
{{- include "grafana.labels" . | nindent 4 }} {{- include "grafana.labels" . | nindent 4 }}

View File

@ -5,7 +5,7 @@ metadata:
name: {{ include "grafana.fullname" . }}-test name: {{ include "grafana.fullname" . }}-test
namespace: {{ include "grafana.namespace" . }} namespace: {{ include "grafana.namespace" . }}
annotations: annotations:
"helm.sh/hook": test-success "helm.sh/hook": test
"helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
labels: labels:
{{- include "grafana.labels" . | nindent 4 }} {{- include "grafana.labels" . | nindent 4 }}

View File

@ -5,7 +5,7 @@ metadata:
name: {{ include "grafana.fullname" . }}-test name: {{ include "grafana.fullname" . }}-test
namespace: {{ include "grafana.namespace" . }} namespace: {{ include "grafana.namespace" . }}
annotations: annotations:
"helm.sh/hook": test-success "helm.sh/hook": test
"helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
labels: labels:
{{- include "grafana.labels" . | nindent 4 }} {{- include "grafana.labels" . | nindent 4 }}

View File

@ -7,6 +7,6 @@ metadata:
name: {{ include "grafana.serviceAccountNameTest" . }} name: {{ include "grafana.serviceAccountNameTest" . }}
namespace: {{ include "grafana.namespace" . }} namespace: {{ include "grafana.namespace" . }}
annotations: annotations:
"helm.sh/hook": test-success "helm.sh/hook": test
"helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
{{- end }} {{- end }}

View File

@ -7,7 +7,7 @@ metadata:
labels: labels:
{{- include "grafana.labels" . | nindent 4 }} {{- include "grafana.labels" . | nindent 4 }}
annotations: annotations:
"helm.sh/hook": test-success "helm.sh/hook": test
"helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded" "helm.sh/hook-delete-policy": "before-hook-creation,hook-succeeded"
namespace: {{ include "grafana.namespace" . }} namespace: {{ include "grafana.namespace" . }}
spec: spec:

View File

@ -164,6 +164,7 @@ extraConfigmapMounts: []
# subPath: certificates.crt # (optional) # subPath: certificates.crt # (optional)
# configMap: certs-configmap # configMap: certs-configmap
# readOnly: true # readOnly: true
# optional: false
extraEmptyDirMounts: [] extraEmptyDirMounts: []
@ -366,7 +367,7 @@ extraContainerVolumes: []
# emptyDir: {} # emptyDir: {}
## Enable persistence using Persistent Volume Claims ## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
## ##
persistence: persistence:
type: pvc type: pvc
@ -539,6 +540,7 @@ extraSecretMounts: []
# mountPath: /etc/secrets # mountPath: /etc/secrets
# secretName: grafana-secret-files # secretName: grafana-secret-files
# readOnly: true # readOnly: true
# optional: false
# subPath: "" # subPath: ""
# #
# for AWS EKS (cloudwatch) use the following (see also instruction in env: above) # for AWS EKS (cloudwatch) use the following (see also instruction in env: above)
@ -795,7 +797,7 @@ grafana.ini:
grafana_net: grafana_net:
url: https://grafana.net url: https://grafana.net
server: server:
domain: "{{ if (and .Values.ingress.enabled .Values.ingress.hosts) }}{{ .Values.ingress.hosts | first }}{{ else }}''{{ end }}" domain: "{{ if (and .Values.ingress.enabled .Values.ingress.hosts) }}{{ tpl (.Values.ingress.hosts | first) . }}{{ else }}''{{ end }}"
## grafana Authentication can be enabled with the following values on grafana.ini ## grafana Authentication can be enabled with the following values on grafana.ini
# server: # server:
# The full public facing url you use in browser, used for redirects and emails # The full public facing url you use in browser, used for redirects and emails
@ -859,7 +861,7 @@ sidecar:
# -- The Docker registry # -- The Docker registry
registry: quay.io registry: quay.io
repository: kiwigrid/k8s-sidecar repository: kiwigrid/k8s-sidecar
tag: 1.26.1 tag: 1.28.0
sha: "" sha: ""
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
resources: {} resources: {}
@ -1158,6 +1160,10 @@ imageRenderer:
targetCPU: "60" targetCPU: "60"
targetMemory: "" targetMemory: ""
behavior: {} behavior: {}
# The url of remote image renderer if it is not in the same namespace with the grafana instance
serverURL: ""
# The callback url of grafana instances if it is not in the same namespace with the remote image renderer
renderingCallbackURL: ""
image: image:
# -- The Docker registry # -- The Docker registry
registry: docker.io registry: docker.io

View File

@ -4,7 +4,7 @@ annotations:
- name: Chart Source - name: Chart Source
url: https://github.com/prometheus-community/helm-charts url: https://github.com/prometheus-community/helm-charts
apiVersion: v2 apiVersion: v2
appVersion: 2.12.0 appVersion: 2.13.0
description: Install kube-state-metrics to generate and expose cluster-level metrics description: Install kube-state-metrics to generate and expose cluster-level metrics
home: https://github.com/kubernetes/kube-state-metrics/ home: https://github.com/kubernetes/kube-state-metrics/
keywords: keywords:
@ -23,4 +23,4 @@ name: kube-state-metrics
sources: sources:
- https://github.com/kubernetes/kube-state-metrics/ - https://github.com/kubernetes/kube-state-metrics/
type: application type: application
version: 5.21.0 version: 5.26.0

View File

@ -66,7 +66,7 @@ app.kubernetes.io/part-of: {{ template "kube-state-metrics.name" . }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }} {{- end }}
{{- if .Values.customLabels }} {{- if .Values.customLabels }}
{{ toYaml .Values.customLabels }} {{ tpl (toYaml .Values.customLabels) . }}
{{- end }} {{- end }}
{{- if .Values.releaseLabel }} {{- if .Values.releaseLabel }}
release: {{ .Release.Name }} release: {{ .Release.Name }}

View File

@ -31,9 +31,12 @@ spec:
metadata: metadata:
labels: labels:
{{- include "kube-state-metrics.labels" . | indent 8 }} {{- include "kube-state-metrics.labels" . | indent 8 }}
{{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Values.podAnnotations }} {{- if .Values.podAnnotations }}
annotations: annotations:
{{ toYaml .Values.podAnnotations | indent 8 }} {{ toYaml .Values.podAnnotations | nindent 8 }}
{{- end }} {{- end }}
spec: spec:
automountServiceAccountToken: {{ .Values.automountServiceAccountToken }} automountServiceAccountToken: {{ .Values.automountServiceAccountToken }}
@ -147,6 +150,26 @@ spec:
name: "metrics" name: "metrics"
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- if .Values.startupProbe.enabled }}
startupProbe:
failureThreshold: {{ .Values.startupProbe.failureThreshold }}
httpGet:
{{- if .Values.hostNetwork }}
host: 127.0.0.1
{{- end }}
httpHeaders:
{{- range $_, $header := .Values.startupProbe.httpGet.httpHeaders }}
- name: {{ $header.name }}
value: {{ $header.value }}
{{- end }}
path: /healthz
port: {{ $servicePort }}
scheme: {{ upper .Values.startupProbe.httpGet.scheme }}
initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.startupProbe.periodSeconds }}
successThreshold: {{ .Values.startupProbe.successThreshold }}
timeoutSeconds: {{ .Values.startupProbe.timeoutSeconds }}
{{- end }}
livenessProbe: livenessProbe:
failureThreshold: {{ .Values.livenessProbe.failureThreshold }} failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
httpGet: httpGet:
@ -158,7 +181,7 @@ spec:
- name: {{ $header.name }} - name: {{ $header.name }}
value: {{ $header.value }} value: {{ $header.value }}
{{- end }} {{- end }}
path: /healthz path: /livez
port: {{ $servicePort }} port: {{ $servicePort }}
scheme: {{ upper .Values.livenessProbe.httpGet.scheme }} scheme: {{ upper .Values.livenessProbe.httpGet.scheme }}
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
@ -176,7 +199,7 @@ spec:
- name: {{ $header.name }} - name: {{ $header.name }}
value: {{ $header.value }} value: {{ $header.value }}
{{- end }} {{- end }}
path: / path: /readyz
port: {{ $servicePort }} port: {{ $servicePort }}
scheme: {{ upper .Values.readinessProbe.httpGet.scheme }} scheme: {{ upper .Values.readinessProbe.httpGet.scheme }}
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
@ -278,13 +301,13 @@ spec:
affinity: affinity:
{{ toYaml .Values.affinity | indent 8 }} {{ toYaml .Values.affinity | indent 8 }}
{{- end }} {{- end }}
{{- if .Values.nodeSelector }} {{- with .Values.nodeSelector }}
nodeSelector: nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }} {{ tpl (toYaml .) $ | indent 8 }}
{{- end }} {{- end }}
{{- if .Values.tolerations }} {{- with .Values.tolerations }}
tolerations: tolerations:
{{ toYaml .Values.tolerations | indent 8 }} {{ tpl (toYaml .) $ | indent 8 }}
{{- end }} {{- end }}
{{- if .Values.topologySpreadConstraints }} {{- if .Values.topologySpreadConstraints }}
topologySpreadConstraints: topologySpreadConstraints:

View File

@ -314,6 +314,9 @@ annotations: {}
# Annotations to be added to the pod # Annotations to be added to the pod
podAnnotations: {} podAnnotations: {}
# Labels to be added to the pod
podLabels: {}
## Assign a PriorityClassName to pods if set ## Assign a PriorityClassName to pods if set
# priorityClassName: "" # priorityClassName: ""
@ -497,6 +500,23 @@ initContainers: []
# - name: crd-sidecar # - name: crd-sidecar
# image: kiwigrid/k8s-sidecar:latest # image: kiwigrid/k8s-sidecar:latest
## Settings for startup, liveness and readiness probes
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
##
## Startup probe can optionally be enabled.
##
startupProbe:
enabled: false
failureThreshold: 3
httpGet:
httpHeaders: []
scheme: http
initialDelaySeconds: 0
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
## Liveness probe ## Liveness probe
## ##
livenessProbe: livenessProbe:

View File

@ -4,7 +4,7 @@ annotations:
- name: Chart Source - name: Chart Source
url: https://github.com/prometheus-community/helm-charts url: https://github.com/prometheus-community/helm-charts
apiVersion: v2 apiVersion: v2
appVersion: 1.8.1 appVersion: 1.8.2
description: A Helm chart for prometheus node-exporter description: A Helm chart for prometheus node-exporter
home: https://github.com/prometheus/node_exporter/ home: https://github.com/prometheus/node_exporter/
keywords: keywords:
@ -22,4 +22,4 @@ name: prometheus-node-exporter
sources: sources:
- https://github.com/prometheus/node_exporter/ - https://github.com/prometheus/node_exporter/
type: application type: application
version: 4.37.0 version: 4.39.0

View File

@ -0,0 +1,4 @@
---
commonLabels:
foo: bar
baz: '{{ include "prometheus-node-exporter.fullname" . }}'

View File

@ -0,0 +1,4 @@
---
podLabels:
foo: bar
baz: '{{ .Chart.AppVersion }}'

View File

@ -0,0 +1,5 @@
---
service:
labels:
foo: bar
baz: quux

View File

@ -43,8 +43,8 @@ app.kubernetes.io/part-of: {{ include "prometheus-node-exporter.name" . }}
{{- with .Chart.AppVersion }} {{- with .Chart.AppVersion }}
app.kubernetes.io/version: {{ . | quote }} app.kubernetes.io/version: {{ . | quote }}
{{- end }} {{- end }}
{{- with .Values.podLabels }} {{- with .Values.commonLabels }}
{{ toYaml . }} {{ tpl (toYaml .) $ }}
{{- end }} {{- end }}
{{- if .Values.releaseLabel }} {{- if .Values.releaseLabel }}
release: {{ .Release.Name }} release: {{ .Release.Name }}

View File

@ -26,6 +26,9 @@ spec:
{{- end }} {{- end }}
labels: labels:
{{- include "prometheus-node-exporter.labels" . | nindent 8 }} {{- include "prometheus-node-exporter.labels" . | nindent 8 }}
{{- with .Values.podLabels }}
{{- tpl (toYaml .) $ | nindent 8 }}
{{- end }}
spec: spec:
automountServiceAccountToken: {{ ternary true false (or .Values.serviceAccount.automountServiceAccountToken .Values.kubeRBACProxy.enabled) }} automountServiceAccountToken: {{ ternary true false (or .Values.serviceAccount.automountServiceAccountToken .Values.kubeRBACProxy.enabled) }}
{{- with .Values.securityContext }} {{- with .Values.securityContext }}
@ -245,6 +248,7 @@ spec:
{{- end }} {{- end }}
hostNetwork: {{ .Values.hostNetwork }} hostNetwork: {{ .Values.hostNetwork }}
hostPID: {{ .Values.hostPID }} hostPID: {{ .Values.hostPID }}
hostIPC: {{ .Values.hostIPC }}
{{- with .Values.affinity }} {{- with .Values.affinity }}
affinity: affinity:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}

View File

@ -6,6 +6,9 @@ metadata:
namespace: {{ include "prometheus-node-exporter.namespace" . }} namespace: {{ include "prometheus-node-exporter.namespace" . }}
labels: labels:
{{- include "prometheus-node-exporter.labels" $ | nindent 4 }} {{- include "prometheus-node-exporter.labels" $ | nindent 4 }}
{{- with .Values.service.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.service.annotations }} {{- with .Values.service.annotations }}
annotations: annotations:
{{- toYaml . | nindent 4 }} {{- toYaml . | nindent 4 }}
@ -23,7 +26,7 @@ spec:
clusterIP: "{{ .Values.service.clusterIP }}" clusterIP: "{{ .Values.service.clusterIP }}"
{{- end }} {{- end }}
ports: ports:
- port: {{ .Values.service.port }} - port: {{ .Values.service.servicePort | default .Values.service.port }}
{{- if ( and (eq .Values.service.type "NodePort" ) (not (empty .Values.service.nodePort)) ) }} {{- if ( and (eq .Values.service.type "NodePort" ) (not (empty .Values.service.nodePort)) ) }}
nodePort: {{ .Values.service.nodePort }} nodePort: {{ .Values.service.nodePort }}
{{- end }} {{- end }}

View File

@ -84,21 +84,45 @@ kubeRBACProxy:
# cpu: 10m # cpu: 10m
# memory: 32Mi # memory: 32Mi
## Service configuration
service: service:
## Creating a service is enabled by default
enabled: true enabled: true
## Service type
type: ClusterIP type: ClusterIP
## IP address for type ClusterIP
clusterIP: "" clusterIP: ""
## Default service port. Sets the port of the exposed container as well (NE or kubeRBACProxy).
## Use "servicePort" below if changing the service port only is desired.
port: 9100 port: 9100
## Service port. Use this field if you wish to set a different service port
## without changing the container port ("port" above).
servicePort: ""
## Targeted port in the pod. Must refer to an open container port ("port" or "portName").
## (IntOrString)
targetPort: 9100 targetPort: 9100
nodePort: ## Name of the service port. Sets the port name of the main container (NE) as well.
portName: metrics portName: metrics
## Port number for service type NodePort
nodePort: null
## If true, node exporter will listen on all interfaces
listenOnAllInterfaces: true listenOnAllInterfaces: true
## Additional annotations and labels for the service
annotations: annotations:
prometheus.io/scrape: "true" prometheus.io/scrape: "true"
labels: {}
## Dual stack settings for the service
## https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
ipDualStack: ipDualStack:
enabled: false enabled: false
ipFamilies: ["IPv6", "IPv4"] ipFamilies: ["IPv6", "IPv4"]
ipFamilyPolicy: "PreferDualStack" ipFamilyPolicy: "PreferDualStack"
## External traffic policy setting (Cluster, Local)
externalTrafficPolicy: "" externalTrafficPolicy: ""
# Set a NetworkPolicy with: # Set a NetworkPolicy with:
@ -322,6 +346,9 @@ hostNetwork: true
# Share the host process ID namespace # Share the host process ID namespace
hostPID: true hostPID: true
# Share the host ipc namespace
hostIPC: false
# Mount the node's root file system (/) at /host/root in the container # Mount the node's root file system (/) at /host/root in the container
hostRootFsMount: hostRootFsMount:
enabled: true enabled: true
@ -359,9 +386,12 @@ podAnnotations:
# Fix for very slow GKE cluster upgrades # Fix for very slow GKE cluster upgrades
cluster-autoscaler.kubernetes.io/safe-to-evict: "true" cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
# Extra labels to be added to node exporter pods # Extra labels to add to node exporter pods (can be templated)
podLabels: {} podLabels: {}
## Extra labels to attach to all resources (can be templated)
commonLabels: {}
# Annotations to be added to node exporter daemonset # Annotations to be added to node exporter daemonset
daemonsetAnnotations: {} daemonsetAnnotations: {}

View File

@ -1,5 +1,5 @@
apiVersion: v2 apiVersion: v2
appVersion: 0.25.1 appVersion: 0.29.1
description: A Helm chart for prometheus windows-exporter description: A Helm chart for prometheus windows-exporter
home: https://github.com/prometheus-community/windows_exporter/ home: https://github.com/prometheus-community/windows_exporter/
keywords: keywords:
@ -14,4 +14,4 @@ name: prometheus-windows-exporter
sources: sources:
- https://github.com/prometheus-community/windows_exporter/ - https://github.com/prometheus-community/windows_exporter/
type: application type: application
version: 0.3.1 version: 0.7.0

View File

@ -75,7 +75,7 @@ spec:
- name: {{ $header.name }} - name: {{ $header.name }}
value: {{ $header.value }} value: {{ $header.value }}
{{- end }} {{- end }}
path: / path: {{ .Values.livenessProbe.httpGet.path }}
port: {{ .Values.service.port }} port: {{ .Values.service.port }}
scheme: {{ upper .Values.livenessProbe.httpGet.scheme }} scheme: {{ upper .Values.livenessProbe.httpGet.scheme }}
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
@ -90,7 +90,7 @@ spec:
- name: {{ $header.name }} - name: {{ $header.name }}
value: {{ $header.value }} value: {{ $header.value }}
{{- end }} {{- end }}
path: / path: {{ .Values.readinessProbe.httpGet.path }}
port: {{ .Values.service.port }} port: {{ .Values.service.port }}
scheme: {{ upper .Values.readinessProbe.httpGet.scheme }} scheme: {{ upper .Values.readinessProbe.httpGet.scheme }}
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}

View File

@ -350,6 +350,7 @@ livenessProbe:
failureThreshold: 3 failureThreshold: 3
httpGet: httpGet:
httpHeaders: [] httpHeaders: []
path: /health
scheme: http scheme: http
initialDelaySeconds: 0 initialDelaySeconds: 0
periodSeconds: 10 periodSeconds: 10
@ -362,6 +363,7 @@ readinessProbe:
failureThreshold: 3 failureThreshold: 3
httpGet: httpGet:
httpHeaders: [] httpHeaders: []
path: /health
scheme: http scheme: http
initialDelaySeconds: 0 initialDelaySeconds: 0
periodSeconds: 10 periodSeconds: 10

View File

@ -178,6 +178,9 @@ spec:
{{- if .Values.alertmanager.alertmanagerSpec.clusterPushpullInterval }} {{- if .Values.alertmanager.alertmanagerSpec.clusterPushpullInterval }}
clusterPushpullInterval: {{ .Values.alertmanager.alertmanagerSpec.clusterPushpullInterval }} clusterPushpullInterval: {{ .Values.alertmanager.alertmanagerSpec.clusterPushpullInterval }}
{{- end }} {{- end }}
{{- if .Values.alertmanager.alertmanagerSpec.clusterLabel }}
clusterLabel: {{ .Values.alertmanager.alertmanagerSpec.clusterLabel }}
{{- end }}
{{- if .Values.alertmanager.alertmanagerSpec.forceEnableClusterMode }} {{- if .Values.alertmanager.alertmanagerSpec.forceEnableClusterMode }}
forceEnableClusterMode: {{ .Values.alertmanager.alertmanagerSpec.forceEnableClusterMode }} forceEnableClusterMode: {{ .Values.alertmanager.alertmanagerSpec.forceEnableClusterMode }}
{{- end }} {{- end }}

View File

@ -18,6 +18,9 @@ data:
{{- if .Values.grafana.deleteDatasources }} {{- if .Values.grafana.deleteDatasources }}
deleteDatasources: deleteDatasources:
{{ tpl (toYaml .Values.grafana.deleteDatasources | indent 6) . }} {{ tpl (toYaml .Values.grafana.deleteDatasources | indent 6) . }}
{{- end }}
{{- if .Values.grafana.prune }}
prune: {{ .Values.grafana.prune }}
{{- end }} {{- end }}
datasources: datasources:
{{- $scrapeInterval := .Values.grafana.sidecar.datasources.defaultDatasourceScrapeInterval | default .Values.prometheus.prometheusSpec.scrapeInterval | default "30s" }} {{- $scrapeInterval := .Values.grafana.sidecar.datasources.defaultDatasourceScrapeInterval | default .Values.prometheus.prometheusSpec.scrapeInterval | default "30s" }}

View File

@ -4,3 +4,10 @@
app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-prometheus-operator app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-prometheus-operator
app.kubernetes.io/component: prometheus-operator-webhook app.kubernetes.io/component: prometheus-operator-webhook
{{- end }} {{- end }}
{{- define "kube-prometheus-stack.prometheus-operator-webhook.annotations" }}
{{- if .Values.prometheusOperator.admissionWebhooks.certManager.enabled }}
certmanager.k8s.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }}
cert-manager.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }}
{{- end }}
{{- end }}

View File

@ -8,6 +8,9 @@ metadata:
labels: labels:
app: {{ template "kube-prometheus-stack.name" . }}-operator app: {{ template "kube-prometheus-stack.name" . }}-operator
{{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" . | indent 4 }} {{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" . | indent 4 }}
{{- with .Values.prometheusOperator.admissionWebhooks.deployment.serviceAccount.annotations }}
annotations: {{- toYaml . | nindent 4 }}
{{- end }}
{{- if .Values.global.imagePullSecrets }} {{- if .Values.global.imagePullSecrets }}
imagePullSecrets: imagePullSecrets:
{{ include "kube-prometheus-stack.imagePullSecrets" . | trim | indent 2 }} {{ include "kube-prometheus-stack.imagePullSecrets" . | trim | indent 2 }}

View File

@ -10,6 +10,9 @@ metadata:
labels: labels:
app: {{ template "kube-prometheus-stack.name" $ }}-admission app: {{ template "kube-prometheus-stack.name" $ }}-admission
{{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" $ | nindent 4 }} {{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" $ | nindent 4 }}
{{- with .Values.prometheusOperator.admissionWebhooks.patch.serviceAccount.annotations }}
annotations: {{- toYaml . | nindent 4 }}
{{- end }}
automountServiceAccountToken: {{ .Values.prometheusOperator.admissionWebhooks.patch.serviceAccount.automountServiceAccountToken }} automountServiceAccountToken: {{ .Values.prometheusOperator.admissionWebhooks.patch.serviceAccount.automountServiceAccountToken }}
{{- if .Values.global.imagePullSecrets }} {{- if .Values.global.imagePullSecrets }}
imagePullSecrets: imagePullSecrets:

View File

@ -3,10 +3,10 @@ apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration kind: MutatingWebhookConfiguration
metadata: metadata:
name: {{ template "kube-prometheus-stack.fullname" . }}-admission name: {{ template "kube-prometheus-stack.fullname" . }}-admission
{{- if .Values.prometheusOperator.admissionWebhooks.certManager.enabled }}
annotations: annotations:
certmanager.k8s.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} {{- include "kube-prometheus-stack.prometheus-operator-webhook.annotations" $ | trim |nindent 4 }}
cert-manager.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} {{- with .Values.prometheusOperator.admissionWebhooks.mutatingWebhookConfiguration.annotations }}
{{- toYaml . | nindent 4}}
{{- end }} {{- end }}
labels: labels:
app: {{ template "kube-prometheus-stack.name" $ }}-admission app: {{ template "kube-prometheus-stack.name" $ }}-admission

View File

@ -3,10 +3,10 @@ apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration kind: ValidatingWebhookConfiguration
metadata: metadata:
name: {{ template "kube-prometheus-stack.fullname" . }}-admission name: {{ template "kube-prometheus-stack.fullname" . }}-admission
{{- if .Values.prometheusOperator.admissionWebhooks.certManager.enabled }}
annotations: annotations:
certmanager.k8s.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} {{- include "kube-prometheus-stack.prometheus-operator-webhook.annotations" $ | trim | nindent 4 }}
cert-manager.io/inject-ca-from: {{ printf "%s/%s-admission" (include "kube-prometheus-stack.namespace" .) (include "kube-prometheus-stack.fullname" .) | quote }} {{- with .Values.prometheusOperator.admissionWebhooks.validatingWebhookConfiguration.annotations }}
{{- toYaml . | nindent 4}}
{{- end }} {{- end }}
labels: labels:
app: {{ template "kube-prometheus-stack.name" $ }}-admission app: {{ template "kube-prometheus-stack.name" $ }}-admission

View File

@ -103,7 +103,10 @@ rules:
- endpointslices - endpointslices
verbs: verbs:
- get - get
- create
- list - list
- watch - watch
- update
- delete
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@ -63,6 +63,8 @@ spec:
- --kubelet-selector={{ .Values.prometheusOperator.kubeletService.selector }} - --kubelet-selector={{ .Values.prometheusOperator.kubeletService.selector }}
{{- end }} {{- end }}
{{- end }} {{- end }}
- --kubelet-endpoints={{ .Values.prometheusOperator.kubeletEndpointsEnabled }}
- --kubelet-endpointslice={{ .Values.prometheusOperator.kubeletEndpointSliceEnabled }}
{{- if .Values.prometheusOperator.logFormat }} {{- if .Values.prometheusOperator.logFormat }}
- --log-format={{ .Values.prometheusOperator.logFormat }} - --log-format={{ .Values.prometheusOperator.logFormat }}
{{- end }} {{- end }}
@ -167,6 +169,30 @@ spec:
{{- with .Values.prometheusOperator.extraVolumeMounts }} {{- with .Values.prometheusOperator.extraVolumeMounts }}
{{- toYaml . | nindent 12 }} {{- toYaml . | nindent 12 }}
{{- end }} {{- end }}
{{- if .Values.prometheusOperator.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: /healthz
port: {{ .Values.prometheusOperator.tls.enabled | ternary "https" "http" }}
scheme: {{ .Values.prometheusOperator.tls.enabled | ternary "HTTPS" "HTTP" }}
initialDelaySeconds: {{ .Values.prometheusOperator.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.prometheusOperator.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.prometheusOperator.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.prometheusOperator.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.prometheusOperator.readinessProbe.failureThreshold }}
{{- end }}
{{- if .Values.prometheusOperator.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: /healthz
port: {{ .Values.prometheusOperator.tls.enabled | ternary "https" "http" }}
scheme: {{ .Values.prometheusOperator.tls.enabled | ternary "HTTPS" "HTTP" }}
initialDelaySeconds: {{ .Values.prometheusOperator.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.prometheusOperator.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.prometheusOperator.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.prometheusOperator.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.prometheusOperator.livenessProbe.failureThreshold }}
{{- end }}
volumes: volumes:
{{- if .Values.prometheusOperator.tls.enabled }} {{- if .Values.prometheusOperator.tls.enabled }}
- name: tls-secret - name: tls-secret

View File

@ -6,6 +6,9 @@ metadata:
namespace: {{ template "kube-prometheus-stack.namespace" . }} namespace: {{ template "kube-prometheus-stack.namespace" . }}
labels: labels:
{{- include "kube-prometheus-stack.prometheus-operator.labels" . | nindent 4 }} {{- include "kube-prometheus-stack.prometheus-operator.labels" . | nindent 4 }}
{{- with .Values.prometheusOperator.serviceAccount.annotations }}
annotations: {{- toYaml . | nindent 4 }}
{{- end }}
automountServiceAccountToken: {{ .Values.prometheusOperator.serviceAccount.automountServiceAccountToken }} automountServiceAccountToken: {{ .Values.prometheusOperator.serviceAccount.automountServiceAccountToken }}
{{- if .Values.global.imagePullSecrets }} {{- if .Values.global.imagePullSecrets }}
imagePullSecrets: imagePullSecrets:

View File

@ -8,8 +8,12 @@ rules:
- "config-reloaders" - "config-reloaders"
- "etcd" - "etcd"
- "general.rules" - "general.rules"
- "k8s.rules.container-cpu-limits"
- "k8s.rules.container-cpu-requests"
- "k8s.rules.container-cpu-usage-seconds-total" - "k8s.rules.container-cpu-usage-seconds-total"
- "k8s.rules.container-memory-cache" - "k8s.rules.container-memory-cache"
- "k8s.rules.container-memory-limits"
- "k8s.rules.container-memory-requests"
- "k8s.rules.container-memory-rss" - "k8s.rules.container-memory-rss"
- "k8s.rules.container-memory-swap" - "k8s.rules.container-memory-swap"
- "k8s.rules.container-memory-working-set-bytes" - "k8s.rules.container-memory-working-set-bytes"

View File

@ -17,6 +17,10 @@ rules:
- endpoints - endpoints
- pods - pods
verbs: ["get", "list", "watch"] verbs: ["get", "list", "watch"]
- apiGroups: ["discovery.k8s.io"]
resources:
- endpointslices
verbs: ["get", "list", "watch"]
- apiGroups: - apiGroups:
- "networking.k8s.io" - "networking.k8s.io"
resources: resources:

View File

@ -470,6 +470,9 @@ spec:
tracingConfig: tracingConfig:
{{ toYaml .Values.prometheus.prometheusSpec.tracingConfig | indent 4 }} {{ toYaml .Values.prometheus.prometheusSpec.tracingConfig | indent 4 }}
{{- end }} {{- end }}
{{- if .Values.prometheus.prometheusSpec.serviceDiscoveryRole }}
serviceDiscoveryRole: {{ .Values.prometheus.prometheusSpec.serviceDiscoveryRole }}
{{- end }}
{{- with .Values.prometheus.prometheusSpec.additionalConfig }} {{- with .Values.prometheus.prometheusSpec.additionalConfig }}
{{- tpl (toYaml .) $ | nindent 2 }} {{- tpl (toYaml .) $ | nindent 2 }}
{{- end }} {{- end }}

View File

@ -9,9 +9,9 @@ metadata:
app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-prometheus app.kubernetes.io/name: {{ template "kube-prometheus-stack.name" . }}-prometheus
app.kubernetes.io/component: prometheus app.kubernetes.io/component: prometheus
{{ include "kube-prometheus-stack.labels" . | indent 4 }} {{ include "kube-prometheus-stack.labels" . | indent 4 }}
{{- if .Values.prometheus.serviceAccount.annotations }} {{- with .Values.prometheus.serviceAccount.annotations }}
annotations: annotations:
{{ toYaml .Values.prometheus.serviceAccount.annotations | indent 4 }} {{ tpl (toYaml .) $ | indent 4 }}
{{- end }} {{- end }}
automountServiceAccountToken: {{ .Values.prometheus.serviceAccount.automountServiceAccountToken }} automountServiceAccountToken: {{ .Values.prometheus.serviceAccount.automountServiceAccountToken }}
{{- if .Values.global.imagePullSecrets }} {{- if .Values.global.imagePullSecrets }}

View File

@ -193,6 +193,10 @@ spec:
{{- with .Values.thanosRuler.thanosRulerSpec.additionalConfig }} {{- with .Values.thanosRuler.thanosRulerSpec.additionalConfig }}
{{- tpl (toYaml .) $ | nindent 2 }} {{- tpl (toYaml .) $ | nindent 2 }}
{{- end }} {{- end }}
{{- if .Values.thanosRuler.thanosRulerSpec.web }}
web:
{{ toYaml .Values.thanosRuler.thanosRulerSpec.web | indent 4 }}
{{- end }}
{{- with .Values.thanosRuler.thanosRulerSpec.additionalConfigString }} {{- with .Values.thanosRuler.thanosRulerSpec.additionalConfigString }}
{{- tpl . $ | nindent 2 }} {{- tpl . $ | nindent 2 }}
{{- end }} {{- end }}

View File

@ -174,6 +174,10 @@ defaultRules:
## Prefix for runbook URLs. Use this to override the first part of the runbookURLs that is common to all rules. ## Prefix for runbook URLs. Use this to override the first part of the runbookURLs that is common to all rules.
runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks" runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks"
node:
fsSelector: 'fstype!=""'
# fsSelector: 'fstype=~"ext[234]|btrfs|xfs|zfs"'
## Disabled PrometheusRule alerts ## Disabled PrometheusRule alerts
disabled: {} disabled: {}
# KubeAPIDown: true # KubeAPIDown: true
@ -919,6 +923,9 @@ alertmanager:
## Needs to be specified as GoDuration, a time duration that can be parsed by Gos time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s) ## Needs to be specified as GoDuration, a time duration that can be parsed by Gos time.ParseDuration() (e.g. 45ms, 30s, 1m, 1h20m15s)
clusterPushpullInterval: "" clusterPushpullInterval: ""
## clusterLabel defines the identifier that uniquely identifies the Alertmanager cluster.
clusterLabel: ""
## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica. ## ForceEnableClusterMode ensures Alertmanager does not deactivate the cluster mode when running with a single replica.
## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each. ## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.
forceEnableClusterMode: false forceEnableClusterMode: false
@ -1116,6 +1123,7 @@ grafana:
# - name: prometheus-sample # - name: prometheus-sample
# access: proxy # access: proxy
# basicAuth: true # basicAuth: true
# secureJsonData:
# basicAuthPassword: pass # basicAuthPassword: pass
# basicAuthUser: daco # basicAuthUser: daco
# editable: false # editable: false
@ -1126,6 +1134,11 @@ grafana:
# url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090 # url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090
# version: 1 # version: 1
# Flag to mark provisioned data sources for deletion if they are no longer configured.
# It takes no effect if data sources are already listed in the deleteDatasources section.
# ref: https://grafana.com/docs/grafana/latest/administration/provisioning/#example-data-source-config-file
prune: false
## Passed to grafana subchart and used by servicemonitor below ## Passed to grafana subchart and used by servicemonitor below
## ##
service: service:
@ -2127,6 +2140,9 @@ prometheus-node-exporter:
enabled: false enabled: false
ipFamilies: ["IPv6", "IPv4"] ipFamilies: ["IPv6", "IPv4"]
ipFamilyPolicy: "PreferDualStack" ipFamilyPolicy: "PreferDualStack"
labels:
jobLabel: node-exporter
prometheus: prometheus:
monitor: monitor:
enabled: true enabled: true
@ -2215,6 +2231,25 @@ prometheusOperator:
# The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules. # The default webhook port is 10250 in order to work out-of-the-box in GKE private clusters and avoid adding firewall rules.
internalPort: 10250 internalPort: 10250
## Liveness probe for the prometheusOperator deployment
##
livenessProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
## Readiness probe for the prometheusOperator deployment
##
readinessProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted ## Admission webhook support for PrometheusRules resources added in Prometheus Operator 0.30 can be enabled to prevent incorrectly formatted
## rules from making their way into prometheus and potentially preventing the container from starting ## rules from making their way into prometheus and potentially preventing the container from starting
admissionWebhooks: admissionWebhooks:
@ -2238,6 +2273,13 @@ prometheusOperator:
namespaceSelector: {} namespaceSelector: {}
objectSelector: {} objectSelector: {}
mutatingWebhookConfiguration:
annotations: {}
# argocd.argoproj.io/hook: PreSync
validatingWebhookConfiguration:
annotations: {}
# argocd.argoproj.io/hook: PreSync
deployment: deployment:
enabled: false enabled: false
@ -2272,6 +2314,7 @@ prometheusOperator:
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
## ##
serviceAccount: serviceAccount:
annotations: {}
automountServiceAccountToken: false automountServiceAccountToken: false
create: true create: true
name: "" name: ""
@ -2493,6 +2536,7 @@ prometheusOperator:
## ##
serviceAccount: serviceAccount:
create: true create: true
annotations: {}
automountServiceAccountToken: true automountServiceAccountToken: true
# Security context for create job container # Security context for create job container
@ -2574,6 +2618,7 @@ prometheusOperator:
create: true create: true
name: "" name: ""
automountServiceAccountToken: true automountServiceAccountToken: true
annotations: {}
## Configuration for Prometheus operator service ## Configuration for Prometheus operator service
## ##
@ -2654,6 +2699,11 @@ prometheusOperator:
## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default ## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default
name: "" name: ""
## Create Endpoints objects for kubelet targets.
kubeletEndpointsEnabled: true
## Create EndpointSlice objects for kubelet targets.
kubeletEndpointSliceEnabled: false
## Create a servicemonitor for the operator ## Create a servicemonitor for the operator
## ##
serviceMonitor: serviceMonitor:
@ -2868,7 +2918,7 @@ prometheusOperator:
thanosImage: thanosImage:
registry: quay.io registry: quay.io
repository: thanos/thanos repository: thanos/thanos
tag: v0.35.1 tag: v0.36.1
sha: "" sha: ""
## Set a Label Selector to filter watched prometheus and prometheusAgent ## Set a Label Selector to filter watched prometheus and prometheusAgent
@ -3458,7 +3508,7 @@ prometheus:
image: image:
registry: quay.io registry: quay.io
repository: prometheus/prometheus repository: prometheus/prometheus
tag: v2.53.1 tag: v2.54.1
sha: "" sha: ""
## Tolerations for use with node taints ## Tolerations for use with node taints
@ -4085,6 +4135,10 @@ prometheus:
## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#prometheustracingconfig ## See https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#prometheustracingconfig
tracingConfig: {} tracingConfig: {}
## Defines the service discovery role used to discover targets from ServiceMonitor objects and Alertmanager endpoints.
## If set, the value should be either “Endpoints” or “EndpointSlice”. If unset, the operator assumes the “Endpoints” role.
serviceDiscoveryRole: ""
## Additional configuration which is not covered by the properties above. (passed through tpl) ## Additional configuration which is not covered by the properties above. (passed through tpl)
additionalConfig: {} additionalConfig: {}
@ -4446,7 +4500,7 @@ thanosRuler:
image: image:
registry: quay.io registry: quay.io
repository: thanos/thanos repository: thanos/thanos
tag: v0.35.1 tag: v0.36.1
sha: "" sha: ""
## Namespaces to be selected for PrometheusRules discovery. ## Namespaces to be selected for PrometheusRules discovery.
@ -4521,7 +4575,7 @@ thanosRuler:
existingSecret: {} existingSecret: {}
# name: "" # name: ""
# key: "" # key: ""
# will render render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set # will render alertmanagersConfig secret data and configure it to be used by Thanos Ruler custom resource, ignored when alertmanagersConfig.existingSecret is set
# https://thanos.io/tip/components/rule.md/#alertmanager # https://thanos.io/tip/components/rule.md/#alertmanager
secret: {} secret: {}
# alertmanagers: # alertmanagers:
@ -4713,6 +4767,10 @@ thanosRuler:
## ##
portName: "web" portName: "web"
## WebTLSConfig defines the TLS parameters for HTTPS
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#thanosrulerwebspec
web: {}
## Additional configuration which is not covered by the properties above. (passed through tpl) ## Additional configuration which is not covered by the properties above. (passed through tpl)
additionalConfig: {} additionalConfig: {}

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -17,7 +30,7 @@
"options": { "options": {
"content": "The SLO (service level objective) and other metrics displayed on this dashboard are for informational purposes only." "content": "The SLO (service level objective) and other metrics displayed on this dashboard are for informational purposes only."
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"title": "Notice", "title": "Notice",
"type": "text" "type": "text"
}, },
@ -41,7 +54,7 @@
}, },
"id": 2, "id": 2,
"interval": "1m", "interval": "1m",
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -87,7 +100,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -121,7 +134,7 @@
}, },
"id": 4, "id": 4,
"interval": "1m", "interval": "1m",
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -219,7 +232,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -263,7 +276,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -306,7 +319,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -340,7 +353,7 @@
}, },
"id": 8, "id": 8,
"interval": "1m", "interval": "1m",
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -438,7 +451,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -482,7 +495,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -525,7 +538,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -568,7 +581,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -611,7 +624,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -657,7 +670,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -699,7 +712,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -742,7 +755,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -784,7 +797,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -33,14 +46,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -79,14 +92,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -150,14 +163,14 @@
"y": 9 "y": 9
}, },
"id": 3, "id": 3,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -166,7 +179,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -175,7 +188,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "avg by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "avg by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -184,7 +197,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "avg by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "avg by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -193,7 +206,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -202,7 +215,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -211,7 +224,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -220,7 +233,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
} }
@ -315,14 +328,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "avg by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "avg by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -361,14 +374,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "avg by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "avg by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -407,14 +420,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -453,14 +466,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -499,14 +512,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -545,14 +558,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -591,14 +604,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -637,14 +650,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (namespace) (\n rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -683,14 +696,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (instance) (rate(node_netstat_Tcp_RetransSegs{cluster=\"$cluster\"}[$__rate_interval]) / rate(node_netstat_Tcp_OutSegs{cluster=\"$cluster\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (instance) (\n rate(node_netstat_Tcp_RetransSegs{cluster=\"$cluster\"}[$__rate_interval]) / rate(node_netstat_Tcp_OutSegs{cluster=\"$cluster\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -729,14 +742,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (instance) (rate(node_netstat_TcpExt_TCPSynRetrans{cluster=\"$cluster\"}[$__rate_interval]) / rate(node_netstat_Tcp_RetransSegs{cluster=\"$cluster\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (instance) (\n rate(node_netstat_TcpExt_TCPSynRetrans{cluster=\"$cluster\"}[$__rate_interval]) / rate(node_netstat_Tcp_RetransSegs{cluster=\"$cluster\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -22,7 +35,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -73,7 +86,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -124,7 +137,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -175,7 +188,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -226,7 +239,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -301,7 +314,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -352,7 +365,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -403,7 +416,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -454,7 +467,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -505,7 +518,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -8,7 +21,7 @@
}, },
"fieldConfig": { "fieldConfig": {
"defaults": { "defaults": {
"unit": "none" "unit": "percentunit"
} }
}, },
"gridPos": { "gridPos": {
@ -22,7 +35,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -57,7 +70,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -92,7 +105,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -127,7 +140,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -162,7 +175,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -197,7 +210,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -247,7 +260,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -306,7 +319,7 @@
"y": 12 "y": 12
}, },
"id": 8, "id": 8,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -463,7 +476,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -558,7 +571,7 @@
"y": 24 "y": 24
}, },
"id": 10, "id": 10,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -735,7 +748,7 @@
"y": 30 "y": 30
}, },
"id": 11, "id": 11,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -879,7 +892,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -930,7 +943,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -981,7 +994,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1032,7 +1045,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1083,7 +1096,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1134,7 +1147,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1185,7 +1198,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1236,7 +1249,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1287,7 +1300,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1338,7 +1351,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1409,7 +1422,7 @@
"y": 96 "y": 96
}, },
"id": 22, "id": 22,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -22,7 +35,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -57,7 +70,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -92,7 +105,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -127,7 +140,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -229,7 +242,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -244,7 +257,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.cpu\"})", "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.cpu\"}))",
"legendFormat": "quota - requests" "legendFormat": "quota - requests"
}, },
{ {
@ -252,7 +265,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.cpu\"})", "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.cpu\"}))",
"legendFormat": "quota - limits" "legendFormat": "quota - limits"
} }
], ],
@ -304,7 +317,7 @@
"y": 14 "y": 14
}, },
"id": 6, "id": 6,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -487,7 +500,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -502,7 +515,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.memory\"})", "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.memory\"}))",
"legendFormat": "quota - requests" "legendFormat": "quota - requests"
}, },
{ {
@ -510,7 +523,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.memory\"})", "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.memory\"}))",
"legendFormat": "quota - limits" "legendFormat": "quota - limits"
} }
], ],
@ -565,7 +578,7 @@
"y": 28 "y": 28
}, },
"id": 8, "id": 8,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -755,7 +768,7 @@
"y": 35 "y": 35
}, },
"id": 9, "id": 9,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -899,7 +912,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -950,7 +963,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1001,7 +1014,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1052,7 +1065,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1103,7 +1116,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1154,7 +1167,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1205,7 +1218,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1256,7 +1269,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1327,7 +1340,7 @@
"y": 70 "y": 70
}, },
"id": 18, "id": 18,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -81,14 +94,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(kube_node_status_capacity{cluster=\"$cluster\", node=~\"$node\", resource=\"cpu\"})", "expr": "sum(kube_node_status_capacity{cluster=\"$cluster\", job=\"kube-state-metrics\", node=~\"$node\", resource=\"cpu\"})",
"legendFormat": "max capacity" "legendFormat": "max capacity"
}, },
{ {
@ -148,7 +161,7 @@
"y": 6 "y": 6
}, },
"id": 2, "id": 2,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -310,14 +323,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(kube_node_status_capacity{cluster=\"$cluster\", node=~\"$node\", resource=\"memory\"})", "expr": "sum(kube_node_status_capacity{cluster=\"$cluster\", job=\"kube-state-metrics\", node=~\"$node\", resource=\"memory\"})",
"legendFormat": "max capacity" "legendFormat": "max capacity"
}, },
{ {
@ -380,7 +393,7 @@
"y": 18 "y": 18
}, },
"id": 4, "id": 4,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -89,7 +102,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -195,7 +208,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -237,7 +250,7 @@
"y": 14 "y": 14
}, },
"id": 3, "id": 3,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -420,7 +433,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -481,7 +494,7 @@
"y": 28 "y": 28
}, },
"id": 5, "id": 5,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -651,7 +664,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -702,7 +715,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -753,7 +766,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -804,7 +817,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -855,7 +868,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -906,7 +919,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -957,7 +970,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1016,7 +1029,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1075,7 +1088,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1126,7 +1139,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1180,7 +1193,7 @@
"y": 70 "y": 70
}, },
"id": 16, "id": 16,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -37,7 +50,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -96,7 +109,7 @@
"y": 7 "y": 7
}, },
"id": 2, "id": 2,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -227,7 +240,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -289,7 +302,7 @@
"y": 21 "y": 21
}, },
"id": 4, "id": 4,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -440,7 +453,7 @@
"y": 28 "y": 28
}, },
"id": 5, "id": 5,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -584,7 +597,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -635,7 +648,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -686,7 +699,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -737,7 +750,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -788,7 +801,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -839,7 +852,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -890,7 +903,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -941,7 +954,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -89,7 +102,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -104,7 +117,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.cpu\"})", "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=~\"requests.cpu|cpu\"}))",
"legendFormat": "quota - requests" "legendFormat": "quota - requests"
}, },
{ {
@ -112,7 +125,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.cpu\"})", "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=~\"limits.cpu\"}))",
"legendFormat": "quota - limits" "legendFormat": "quota - limits"
} }
], ],
@ -176,7 +189,7 @@
"y": 7 "y": 7
}, },
"id": 2, "id": 2,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -384,7 +397,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -399,7 +412,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"requests.memory\"})", "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=~\"requests.memory|memory\"}))",
"legendFormat": "quota - requests" "legendFormat": "quota - requests"
}, },
{ {
@ -407,7 +420,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "scalar(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=\"limits.memory\"})", "expr": "scalar(max(kube_resourcequota{cluster=\"$cluster\", namespace=\"$namespace\", type=\"hard\",resource=~\"limits.memory\"}))",
"legendFormat": "quota - limits" "legendFormat": "quota - limits"
} }
], ],
@ -474,7 +487,7 @@
"y": 21 "y": 21
}, },
"id": 4, "id": 4,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -650,7 +663,7 @@
"y": 28 "y": 28
}, },
"id": 5, "id": 5,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -794,7 +807,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -845,7 +858,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -896,7 +909,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -947,7 +960,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -998,7 +1011,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1049,7 +1062,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1100,7 +1113,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1151,7 +1164,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -22,7 +35,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -57,7 +70,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -92,7 +105,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -127,7 +140,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -162,7 +175,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -197,7 +210,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -248,7 +261,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -299,7 +312,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -350,7 +363,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -401,7 +414,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -460,7 +473,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -519,7 +532,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -570,7 +583,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -621,7 +634,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -672,7 +685,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -723,7 +736,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -774,7 +787,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -825,7 +838,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -876,7 +889,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -927,7 +940,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1002,7 +1015,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1053,7 +1066,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1104,7 +1117,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -1155,7 +1168,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -40,14 +53,14 @@
"y": 0 "y": 0
}, },
"id": 1, "id": 1,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -93,14 +106,14 @@
"y": 0 "y": 0
}, },
"id": 2, "id": 2,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -164,14 +177,14 @@
"y": 9 "y": 9
}, },
"id": 3, "id": 3,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -180,7 +193,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -189,7 +202,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -198,7 +211,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -207,7 +220,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
}, },
@ -216,7 +229,7 @@
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"format": "table", "format": "table",
"instant": true "instant": true
} }
@ -303,14 +316,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -349,14 +362,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -395,14 +408,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -441,14 +454,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -487,14 +500,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum by (namespace) (rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"})", "expr": "sum by (pod) (\n rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace!=\"\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -533,14 +546,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sum(rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval]) * on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}) by (pod)", "expr": "sum by (pod) (\n rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=~\"$namespace\"}[$__rate_interval])\n * on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n)\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -26,14 +39,14 @@
"displayMode": "basic", "displayMode": "basic",
"showUnfilled": false "showUnfilled": false
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -65,14 +78,14 @@
"displayMode": "basic", "displayMode": "basic",
"showUnfilled": false "showUnfilled": false
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -136,7 +149,7 @@
"y": 9 "y": 9
}, },
"id": 3, "id": 3,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -322,14 +335,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(sum(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -373,14 +386,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(sum(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -424,14 +437,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(avg(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(avg(rate(container_network_receive_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -475,14 +488,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(avg(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(avg(rate(container_network_transmit_bytes_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -526,14 +539,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(sum(rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(sum(rate(container_network_receive_packets_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -577,14 +590,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(sum(rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(sum(rate(container_network_transmit_packets_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -628,14 +641,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(sum(rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(sum(rate(container_network_receive_packets_dropped_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],
@ -679,14 +692,14 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
"type": "prometheus", "type": "prometheus",
"uid": "${datasource}" "uid": "${datasource}"
}, },
"expr": "sort_desc(sum(rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) kube_pod_info{host_network=\"false\"}\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n", "expr": "sort_desc(sum(rate(container_network_transmit_packets_dropped_total{cluster=\"$cluster\",namespace=\"$namespace\"}[$__rate_interval])\n* on (cluster,namespace,pod) group_left ()\n topk by (cluster,namespace,pod) (\n 1,\n max by (cluster,namespace,pod) (kube_pod_info{host_network=\"false\"})\n )\n* on (cluster,namespace,pod)\ngroup_left(workload,workload_type) namespace_workload_pod:kube_pod_owner:relabel{cluster=\"$cluster\",namespace=\"$namespace\", workload=~\".+\", workload_type=~\"$type\"}) by (workload))\n",
"legendFormat": "__auto" "legendFormat": "__auto"
} }
], ],

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -37,7 +50,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -99,7 +112,7 @@
}, },
"id": 2, "id": 2,
"interval": "1m", "interval": "1m",
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -149,7 +162,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -211,7 +224,7 @@
}, },
"id": 4, "id": 4,
"interval": "1m", "interval": "1m",
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -40,7 +53,7 @@
"y": 0 "y": 0
}, },
"id": 1, "id": 1,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -93,7 +106,7 @@
"y": 0 "y": 0
}, },
"id": 2, "id": 2,
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -139,7 +152,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -185,7 +198,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -231,7 +244,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -277,7 +290,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -323,7 +336,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -369,7 +382,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -22,7 +35,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -73,7 +86,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -124,7 +137,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -175,7 +188,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -226,7 +239,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -277,7 +290,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -352,7 +365,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -403,7 +416,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -454,7 +467,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -505,7 +518,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -556,7 +569,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -22,7 +35,7 @@
"options": { "options": {
"colorMode": "none" "colorMode": "none"
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -73,7 +86,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -148,7 +161,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -223,7 +236,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -298,7 +311,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -349,7 +362,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -400,7 +413,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -451,7 +464,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -502,7 +515,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -1,5 +1,18 @@
{ {
"editable": false, "editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [ "panels": [
{ {
"datasource": { "datasource": {
@ -26,7 +39,7 @@
"displayMode": "basic", "displayMode": "basic",
"showUnfilled": false "showUnfilled": false
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -65,7 +78,7 @@
"displayMode": "basic", "displayMode": "basic",
"showUnfilled": false "showUnfilled": false
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -104,7 +117,7 @@
"displayMode": "basic", "displayMode": "basic",
"showUnfilled": false "showUnfilled": false
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -143,7 +156,7 @@
"displayMode": "basic", "displayMode": "basic",
"showUnfilled": false "showUnfilled": false
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -194,7 +207,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -245,7 +258,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -296,7 +309,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -347,7 +360,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -398,7 +411,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {
@ -449,7 +462,7 @@
"mode": "single" "mode": "single"
} }
}, },
"pluginVersion": "v11.0.0", "pluginVersion": "v11.1.0",
"targets": [ "targets": [
{ {
"datasource": { "datasource": {

View File

@ -18,7 +18,7 @@
"subdir": "contrib/mixin" "subdir": "contrib/mixin"
} }
}, },
"version": "010d462c0ff03a70f5c5fd32efbb76ad4c1e7c81", "version": "55de68d18c63fde8747f2cd9f7c2ff242346f756",
"sum": "IXI3LQIT9NmTPJAk8WLUJd5+qZfcGpeNCyWIK7oEpws=" "sum": "IXI3LQIT9NmTPJAk8WLUJd5+qZfcGpeNCyWIK7oEpws="
}, },
{ {
@ -58,8 +58,8 @@
"subdir": "gen/grafonnet-latest" "subdir": "gen/grafonnet-latest"
} }
}, },
"version": "5a66b0f6a0f4f7caec754dd39a0e263b56a0f90a", "version": "1ce5aec95ce32336fe47c8881361847c475b5254",
"sum": "eyuJ0jOXeA4MrobbNgU4/v5a7ASDHslHZ0eS6hDdWoI=" "sum": "64fMUPI3frXGj4X1FqFd1t7r04w3CUSmXaDcJ23EYbQ="
}, },
{ {
"source": { "source": {
@ -68,18 +68,18 @@
"subdir": "gen/grafonnet-v10.0.0" "subdir": "gen/grafonnet-v10.0.0"
} }
}, },
"version": "5a66b0f6a0f4f7caec754dd39a0e263b56a0f90a", "version": "1ce5aec95ce32336fe47c8881361847c475b5254",
"sum": "xdcrJPJlpkq4+5LpGwN4tPAuheNNLXZjE6tDcyvFjr0=" "sum": "xdcrJPJlpkq4+5LpGwN4tPAuheNNLXZjE6tDcyvFjr0="
}, },
{ {
"source": { "source": {
"git": { "git": {
"remote": "https://github.com/grafana/grafonnet.git", "remote": "https://github.com/grafana/grafonnet.git",
"subdir": "gen/grafonnet-v11.0.0" "subdir": "gen/grafonnet-v11.1.0"
} }
}, },
"version": "5a66b0f6a0f4f7caec754dd39a0e263b56a0f90a", "version": "1ce5aec95ce32336fe47c8881361847c475b5254",
"sum": "Fuo+qTZZzF+sHDBWX/8fkPsUmwW6qhH8hRVz45HznfI=" "sum": "41w7p/rwrNsITqNHMXtGSJAfAyKmnflg6rFhKBduUxM="
}, },
{ {
"source": { "source": {
@ -88,8 +88,8 @@
"subdir": "grafana-builder" "subdir": "grafana-builder"
} }
}, },
"version": "02db06f540086fa3f67d487bd01e1b314853fb8f", "version": "3805ed5082bb7db66cd75badb57a673c965aa24c",
"sum": "B49EzIY2WZsFxNMJcgRxE/gcZ9ltnS8pkOOV6Q5qioc=" "sum": "yxqWcq/N3E/a/XreeU6EuE6X7kYPnG0AspAQFKOjASo="
}, },
{ {
"source": { "source": {
@ -118,8 +118,8 @@
"subdir": "" "subdir": ""
} }
}, },
"version": "3dfa72d1d1ab31a686b1f52ec28bbf77c972bd23", "version": "0348e09edc3961a29a55f199d1bf0060c847a608",
"sum": "7ufhpvzoDqAYLrfAsGkTAIRmu2yWQkmHukTE//jOsJU=" "sum": "kTZuZcE+pNw8ZVZECKxrZG4F9BS+ydWMcgACE9oUrRc="
}, },
{ {
"source": { "source": {
@ -128,8 +128,8 @@
"subdir": "jsonnet/kube-state-metrics" "subdir": "jsonnet/kube-state-metrics"
} }
}, },
"version": "38c268909335d243fc260ed4d6ce713db3265464", "version": "9652c29fe6ac08a1cb76112061f7d1010319d634",
"sum": "pvInhJNQVDOcC3NGWRMKRIP954mAvLXCQpTlafIg7fA=" "sum": "lO7jUSzAIy8Yk9pOWJIWgPRhubkWzVh56W6wtYfbVH4="
}, },
{ {
"source": { "source": {
@ -138,7 +138,7 @@
"subdir": "jsonnet/kube-state-metrics-mixin" "subdir": "jsonnet/kube-state-metrics-mixin"
} }
}, },
"version": "38c268909335d243fc260ed4d6ce713db3265464", "version": "9652c29fe6ac08a1cb76112061f7d1010319d634",
"sum": "qclI7LwucTjBef3PkGBkKxF0mfZPbHnn4rlNWKGtR4c=" "sum": "qclI7LwucTjBef3PkGBkKxF0mfZPbHnn4rlNWKGtR4c="
}, },
{ {
@ -148,8 +148,8 @@
"subdir": "jsonnet/kube-prometheus" "subdir": "jsonnet/kube-prometheus"
} }
}, },
"version": "defa2bd1e242519c62a5c2b3b786b1caa6d906d4", "version": "a030693b39a019a7475f6fb918abd37cb6d9d1ba",
"sum": "INKeZ+QIIPImq+TrfHT8CpYdoRzzxRk0txG07XlOo/Q=" "sum": "NKlS33HxtOMyC2GWUlb9W2F4WBLMqBJMWNFRxVIMA/Y="
}, },
{ {
"source": { "source": {
@ -158,7 +158,7 @@
"subdir": "jsonnet/mixin" "subdir": "jsonnet/mixin"
} }
}, },
"version": "609424db53853b992277b7a9a0e5cf59f4cc24f3", "version": "94031224b1c186ff6671ec9f447716f748ac9d31",
"sum": "gi+knjdxs2T715iIQIntrimbHRgHnpM8IFBJDD1gYfs=", "sum": "gi+knjdxs2T715iIQIntrimbHRgHnpM8IFBJDD1gYfs=",
"name": "prometheus-operator-mixin" "name": "prometheus-operator-mixin"
}, },
@ -169,8 +169,8 @@
"subdir": "jsonnet/prometheus-operator" "subdir": "jsonnet/prometheus-operator"
} }
}, },
"version": "609424db53853b992277b7a9a0e5cf59f4cc24f3", "version": "94031224b1c186ff6671ec9f447716f748ac9d31",
"sum": "z2/5LjQpWC7snhT+n/mtQqoy5986uI95sTqcKQziwGU=" "sum": "5G3bgQK3WFueFwjZDcTaI16cyf19rqxK+H1oGsiIgx0="
}, },
{ {
"source": { "source": {
@ -179,7 +179,7 @@
"subdir": "doc/alertmanager-mixin" "subdir": "doc/alertmanager-mixin"
} }
}, },
"version": "eb8369ec510d76f63901379a8437c4b55885d6c5", "version": "4fcb18ee41ecaff4ee1816ad363dc63fdf3583b9",
"sum": "IpF46ZXsm+0wJJAPtAre8+yxTNZA57mBqGpBP/r7/kw=", "sum": "IpF46ZXsm+0wJJAPtAre8+yxTNZA57mBqGpBP/r7/kw=",
"name": "alertmanager" "name": "alertmanager"
}, },
@ -190,8 +190,8 @@
"subdir": "docs/node-mixin" "subdir": "docs/node-mixin"
} }
}, },
"version": "b9d0932179a0c5b3a8863f3d6cdafe8584cedc8e", "version": "e6a9cfbdcdaa21bf9676c6cd37bef8160227f423",
"sum": "rhUvbqviGjQ2mwsRhHKMN0TiS3YvnYpUXHew3XlQ+Wg=" "sum": "cQCW+1N0Xae5yXecCWDK2oAlN0luBS/5GrwBYSlaFms="
}, },
{ {
"source": { "source": {
@ -200,7 +200,7 @@
"subdir": "documentation/prometheus-mixin" "subdir": "documentation/prometheus-mixin"
} }
}, },
"version": "ac85bd47e1cfa0d63520e4c0b4e26900c42c326b", "version": "6b36a5592a8f7e51f9801e5c8944ad9ca185e5cc",
"sum": "dYLcLzGH4yF3qB7OGC/7z4nqeTNjv42L7Q3BENU8XJI=", "sum": "dYLcLzGH4yF3qB7OGC/7z4nqeTNjv42L7Q3BENU8XJI=",
"name": "prometheus" "name": "prometheus"
}, },
@ -208,11 +208,11 @@
"source": { "source": {
"git": { "git": {
"remote": "https://github.com/pyrra-dev/pyrra.git", "remote": "https://github.com/pyrra-dev/pyrra.git",
"subdir": "config/crd/bases" "subdir": "jsonnet/controller-gen"
} }
}, },
"version": "551856d42dff02ec38c5b0ea6a2d99c4cb127e82", "version": "d723f4d1a066dd657e9d09c46a158519dda0faa8",
"sum": "bY/Pcrrbynguq8/HaI88cQ3B2hLv/xc+76QILY7IL+g=", "sum": "cxAPQovFkM16zNB5/94O+sk/n3SETk6ao6Oas2Sa6RE=",
"name": "pyrra" "name": "pyrra"
}, },
{ {
@ -222,8 +222,8 @@
"subdir": "mixin" "subdir": "mixin"
} }
}, },
"version": "35c0dbec856f97683a846e9c53f83156a3a44ff3", "version": "7d95913c50e8999bce12089b582d33896b8475e1",
"sum": "HhSSbGGCNHCMy1ee5jElYDm0yS9Vesa7QB2/SHKdjsY=", "sum": "ieCD4eMgGbOlrI8GmckGPHBGQDcLasE1rULYq56W/bs=",
"name": "thanos-mixin" "name": "thanos-mixin"
} }
], ],

View File

@ -6,7 +6,7 @@
"app.kubernetes.io/component": "exporter", "app.kubernetes.io/component": "exporter",
"app.kubernetes.io/name": "kube-state-metrics", "app.kubernetes.io/name": "kube-state-metrics",
"app.kubernetes.io/part-of": "kube-prometheus", "app.kubernetes.io/part-of": "kube-prometheus",
"app.kubernetes.io/version": "2.12.0", "app.kubernetes.io/version": "2.13.0",
"prometheus": "k8s", "prometheus": "k8s",
"role": "alert-rules" "role": "alert-rules"
}, },

View File

@ -114,7 +114,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetupdatenotrolledout", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetupdatenotrolledout",
"summary": "StatefulSet update has not been rolled out." "summary": "StatefulSet update has not been rolled out."
}, },
"expr": "(\n max by(namespace, statefulset) (\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 *\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",
"for": "15m", "for": "15m",
"labels": { "labels": {
"severity": "warning" "severity": "warning"
@ -445,7 +445,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn",
"summary": "The API server is burning too much error budget." "summary": "The API server is burning too much error budget."
}, },
"expr": "sum(apiserver_request:burnrate1h) > (14.40 * 0.01000)\nand\nsum(apiserver_request:burnrate5m) > (14.40 * 0.01000)\n", "expr": "sum by(cluster) (apiserver_request:burnrate1h) > (14.40 * 0.01000)\nand on(cluster)\nsum by(cluster) (apiserver_request:burnrate5m) > (14.40 * 0.01000)\n",
"for": "2m", "for": "2m",
"labels": { "labels": {
"long": "1h", "long": "1h",
@ -460,7 +460,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn",
"summary": "The API server is burning too much error budget." "summary": "The API server is burning too much error budget."
}, },
"expr": "sum(apiserver_request:burnrate6h) > (6.00 * 0.01000)\nand\nsum(apiserver_request:burnrate30m) > (6.00 * 0.01000)\n", "expr": "sum by(cluster) (apiserver_request:burnrate6h) > (6.00 * 0.01000)\nand on(cluster)\nsum by(cluster) (apiserver_request:burnrate30m) > (6.00 * 0.01000)\n",
"for": "15m", "for": "15m",
"labels": { "labels": {
"long": "6h", "long": "6h",
@ -475,7 +475,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn",
"summary": "The API server is burning too much error budget." "summary": "The API server is burning too much error budget."
}, },
"expr": "sum(apiserver_request:burnrate1d) > (3.00 * 0.01000)\nand\nsum(apiserver_request:burnrate2h) > (3.00 * 0.01000)\n", "expr": "sum by(cluster) (apiserver_request:burnrate1d) > (3.00 * 0.01000)\nand on(cluster)\nsum by(cluster) (apiserver_request:burnrate2h) > (3.00 * 0.01000)\n",
"for": "1h", "for": "1h",
"labels": { "labels": {
"long": "1d", "long": "1d",
@ -490,7 +490,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn",
"summary": "The API server is burning too much error budget." "summary": "The API server is burning too much error budget."
}, },
"expr": "sum(apiserver_request:burnrate3d) > (1.00 * 0.01000)\nand\nsum(apiserver_request:burnrate6h) > (1.00 * 0.01000)\n", "expr": "sum by(cluster) (apiserver_request:burnrate3d) > (1.00 * 0.01000)\nand on(cluster)\nsum by(cluster) (apiserver_request:burnrate6h) > (1.00 * 0.01000)\n",
"for": "3h", "for": "3h",
"labels": { "labels": {
"long": "3d", "long": "3d",
@ -510,7 +510,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration",
"summary": "Client certificate is about to expire." "summary": "Client certificate is about to expire."
}, },
"expr": "apiserver_client_certificate_expiration_seconds_count{job=\"apiserver\"} > 0 and on(job) histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job=\"apiserver\"}[5m]))) < 604800\n", "expr": "apiserver_client_certificate_expiration_seconds_count{job=\"apiserver\"} > 0 and on(cluster, job) histogram_quantile(0.01, sum by (cluster, job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job=\"apiserver\"}[5m]))) < 604800\n",
"for": "5m", "for": "5m",
"labels": { "labels": {
"severity": "warning" "severity": "warning"
@ -523,7 +523,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration",
"summary": "Client certificate is about to expire." "summary": "Client certificate is about to expire."
}, },
"expr": "apiserver_client_certificate_expiration_seconds_count{job=\"apiserver\"} > 0 and on(job) histogram_quantile(0.01, sum by (job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job=\"apiserver\"}[5m]))) < 86400\n", "expr": "apiserver_client_certificate_expiration_seconds_count{job=\"apiserver\"} > 0 and on(cluster, job) histogram_quantile(0.01, sum by (cluster, job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job=\"apiserver\"}[5m]))) < 86400\n",
"for": "5m", "for": "5m",
"labels": { "labels": {
"severity": "critical" "severity": "critical"
@ -574,7 +574,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapiterminatedrequests", "runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapiterminatedrequests",
"summary": "The kubernetes apiserver has terminated {{ $value | humanizePercentage }} of its incoming requests." "summary": "The kubernetes apiserver has terminated {{ $value | humanizePercentage }} of its incoming requests."
}, },
"expr": "sum(rate(apiserver_request_terminations_total{job=\"apiserver\"}[10m])) / ( sum(rate(apiserver_request_total{job=\"apiserver\"}[10m])) + sum(rate(apiserver_request_terminations_total{job=\"apiserver\"}[10m])) ) > 0.20\n", "expr": "sum by(cluster) (rate(apiserver_request_terminations_total{job=\"apiserver\"}[10m])) / ( sum by(cluster) (rate(apiserver_request_total{job=\"apiserver\"}[10m])) + sum by(cluster) (rate(apiserver_request_terminations_total{job=\"apiserver\"}[10m])) ) > 0.20\n",
"for": "5m", "for": "5m",
"labels": { "labels": {
"severity": "warning" "severity": "warning"
@ -810,14 +810,6 @@
}, },
"record": "code:apiserver_request_total:increase30d" "record": "code:apiserver_request_total:increase30d"
}, },
{
"expr": "sum by (cluster, verb, scope) (increase(apiserver_request_sli_duration_seconds_count{job=\"apiserver\"}[1h]))\n",
"record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h"
},
{
"expr": "sum by (cluster, verb, scope) (avg_over_time(cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h[30d]) * 24 * 30)\n",
"record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase30d"
},
{ {
"expr": "sum by (cluster, verb, scope, le) (increase(apiserver_request_sli_duration_seconds_bucket[1h]))\n", "expr": "sum by (cluster, verb, scope, le) (increase(apiserver_request_sli_duration_seconds_bucket[1h]))\n",
"record": "cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase1h" "record": "cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase1h"
@ -826,6 +818,14 @@
"expr": "sum by (cluster, verb, scope, le) (avg_over_time(cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase1h[30d]) * 24 * 30)\n", "expr": "sum by (cluster, verb, scope, le) (avg_over_time(cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase1h[30d]) * 24 * 30)\n",
"record": "cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d" "record": "cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d"
}, },
{
"expr": "sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase1h{le=\"+Inf\"})\n",
"record": "cluster_verb_scope:apiserver_request_sli_duration_seconds_count:increase1h"
},
{
"expr": "sum by (cluster, verb, scope) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{le=\"+Inf\"} * 24 * 30)\n",
"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\"})\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\"})\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\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=\"30\"})\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\"})\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\"})\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\"})\n +\n sum by (cluster) (cluster_verb_scope_le:apiserver_request_sli_duration_seconds_bucket:increase30d{verb=~\"LIST|GET\",scope=\"cluster\",le=\"30\"})\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": { "labels": {
@ -1049,7 +1049,7 @@
] ]
}, },
{ {
"name": "k8s.rules.container_resource", "name": "k8s.rules.container_memory_requests",
"rules": [ "rules": [
{ {
"expr": "kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n", "expr": "kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n",
@ -1058,7 +1058,12 @@
{ {
"expr": "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n", "expr": "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_requests{resource=\"memory\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n",
"record": "namespace_memory:kube_pod_container_resource_requests:sum" "record": "namespace_memory:kube_pod_container_resource_requests:sum"
}
]
}, },
{
"name": "k8s.rules.container_cpu_requests",
"rules": [
{ {
"expr": "kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n", "expr": "kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n",
"record": "cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests" "record": "cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests"
@ -1066,7 +1071,12 @@
{ {
"expr": "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n", "expr": "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_requests{resource=\"cpu\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n",
"record": "namespace_cpu:kube_pod_container_resource_requests:sum" "record": "namespace_cpu:kube_pod_container_resource_requests:sum"
}
]
}, },
{
"name": "k8s.rules.container_memory_limits",
"rules": [
{ {
"expr": "kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n", "expr": "kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n)\n",
"record": "cluster:namespace:pod_memory:active:kube_pod_container_resource_limits" "record": "cluster:namespace:pod_memory:active:kube_pod_container_resource_limits"
@ -1074,7 +1084,12 @@
{ {
"expr": "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n", "expr": "sum by (namespace, cluster) (\n sum by (namespace, pod, cluster) (\n max by (namespace, pod, container, cluster) (\n kube_pod_container_resource_limits{resource=\"memory\",job=\"kube-state-metrics\"}\n ) * on(namespace, pod, cluster) group_left() max by (namespace, pod, cluster) (\n kube_pod_status_phase{phase=~\"Pending|Running\"} == 1\n )\n )\n)\n",
"record": "namespace_memory:kube_pod_container_resource_limits:sum" "record": "namespace_memory:kube_pod_container_resource_limits:sum"
}
]
}, },
{
"name": "k8s.rules.container_cpu_limits",
"rules": [
{ {
"expr": "kube_pod_container_resource_limits{resource=\"cpu\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n )\n", "expr": "kube_pod_container_resource_limits{resource=\"cpu\",job=\"kube-state-metrics\"} * on (namespace, pod, cluster)\ngroup_left() max by (namespace, pod, cluster) (\n (kube_pod_status_phase{phase=~\"Pending|Running\"} == 1)\n )\n",
"record": "cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits" "record": "cluster:namespace:pod_cpu:active:kube_pod_container_resource_limits"

Some files were not shown because too many files have changed in this diff Show More