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
description: KubeZero Umbrella Chart for Istio gateways
type: application
version: 0.22.3
version: 0.23.2
home: https://kubezero.com
icon: https://cdn.zero-downtime.net/assets/kubezero/logo-small-64.png
keywords:

View File

@ -1,6 +1,6 @@
# 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
@ -21,7 +21,7 @@ Kubernetes: `>= 1.26.0-0`
| Repository | Name | Version |
|------------|------|---------|
| 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

View File

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

View File

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

View File

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

View File

@ -7,11 +7,17 @@ pilot:
# 1.22 behavioral changes
ENABLE_ENHANCED_RESOURCE_SCOPING: "false"
ENABLE_RESOLUTION_NONE_TARGET_PORT: "false"
# 1.23 behavioral changes
ENABLE_DELIMITED_STATS_TAG_REGEX: "false"
meshConfig:
# 1.22 behavioral changes
defaultConfig:
proxyMetadata:
ISTIO_DELTA_XDS: "false"
defaultConfig:
# 1.23 behavioral changes
ENABLE_DELIMITED_STATS_TAG_REGEX: "false"
tracing:
zipkin:
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.
PILOT_ENABLE_SENDING_HBONE: "true"
PILOT_ENABLE_SIDECAR_LISTENING_HBONE: "true"
CA_TRUSTED_NODE_ACCOUNTS: "istio-system/ztunnel,kube-system/ztunnel"
platform: openshift
variant: distroless
seLinuxOptions:

View File

@ -7,7 +7,7 @@
{{- 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" -}}
{{- 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" -}}
helm.sh/chart: {{ include "gateway.chart" . }}
{{ 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/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- range $key, $val := .Values.labels }}
{{- if not (or (eq $key "app") (eq $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")) }}
{{- if and (ne $key "app") (ne $key "istio") }}
{{ $key | quote }}: {{ $val | quote }}
{{- end }}
{{- end }}
{{- end }}
{{- define "gateway.selectorLabels" -}}
{{- if hasKey .Values.labels "app" }}
{{- with .Values.labels.app }}app: {{.|quote}}
{{- end}}
{{- else }}app: {{ include "gateway.name" . }}
app: {{ (.Values.labels.app | quote) | default (include "gateway.name" .) }}
istio: {{ (.Values.labels.istio | quote) | default (include "gateway.name" . | trimPrefix "istio-") }}
{{- end }}
{{- if hasKey .Values.labels "istio" }}
{{- with .Values.labels.istio }}
istio: {{.|quote}}
{{- end}}
{{- else }}
istio: {{ include "gateway.name" . | trimPrefix "istio-" }}
{{/*
Keep sidecar injection labels together
https://istio.io/latest/docs/setup/additional-setup/sidecar-injection/#controlling-the-injection-policy
*/}}
{{- define "gateway.sidecarInjectionLabels" -}}
sidecar.istio.io/inject: "true"
{{- with .Values.revision }}
istio.io/rev: {{ . | quote }}
{{- end }}
{{- end }}

View File

@ -26,11 +26,15 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
sidecar.istio.io/inject: "true"
{{- with .Values.revision }}
istio.io/rev: {{ . | quote }}
{{- include "gateway.sidecarInjectionLabels" . | nindent 8 }}
{{- include "gateway.selectorLabels" . | nindent 8 }}
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 }}
{{- include "gateway.podLabels" . | nindent 8 }}
spec:
{{- with .Values.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.
Finally, we can set all of that under .Values so the chart behaves without awareness.
*/}}
{{- $globals := $.Values.global | default dict | deepCopy }}
{{- $defaults := $.Values.defaults }}
{{- $_ := unset $.Values "defaults" }}
{{- $profile := dict }}
@ -35,4 +36,8 @@ Finally, we can set all of that under .Values so the chart behaves without aware
{{- if $profile }}
{{- $a := mustMergeOverwrite $defaults $profile }}
{{- end }}
# Flatten globals, if defined on a per-chart basis
{{- if false }}
{{- $a := mustMergeOverwrite $defaults $globals }}
{{- end }}
{{- $b := set $ "Values" (mustMergeOverwrite $defaults $.Values) }}

View File

@ -99,10 +99,10 @@
"type": "object",
"properties": {
"cpu": {
"type": "string"
"type": ["string", "null"]
},
"memory": {
"type": "string"
"type": ["string", "null"]
}
}
},
@ -110,10 +110,10 @@
"type": "object",
"properties": {
"cpu": {
"type": "string"
"type": ["string", "null"]
},
"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:
# Name allows overriding the release name. Generally this should not be set
name: ""

View File

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

View File

@ -1,6 +1,6 @@
# 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
@ -21,9 +21,9 @@ Kubernetes: `>= 1.26.0-0`
| Repository | Name | Version |
|------------|------|---------|
| 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 | istiod | 1.22.3 |
| https://kiali.org/helm-charts | kiali-server | 1.88.0 |
| https://istio-release.storage.googleapis.com/charts | base | 1.23.2 |
| https://istio-release.storage.googleapis.com/charts | istiod | 1.23.2 |
| https://kiali.org/helm-charts | kiali-server | 1.89.7 |
## Values

View File

@ -5,18 +5,22 @@ folder: Istio
condition: '.Values.istiod.telemetry.enabled'
dashboards:
- 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:
- Istio
- name: istio-mesh
url: https://grafana.com/api/dashboards/7639/revisions/201/download
url: https://grafana.com/api/dashboards/7639/revisions/229/download
tags:
- Istio
- name: istio-service
url: https://grafana.com/api/dashboards/7636/revisions/201/download
url: https://grafana.com/api/dashboards/7636/revisions/229/download
tags:
- Istio
- 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:
- Istio

File diff suppressed because one or more lines are too long

View File

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

View File

@ -1,6 +1,6 @@
# 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.
@ -19,9 +19,9 @@ Kubernetes: `>= 1.26.0`
| Repository | Name | Version |
|------------|------|---------|
| https://cdn.zero-downtime.net/charts/ | kubezero-lib | >= 0.1.6 |
| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 61.3.2 |
| https://prometheus-community.github.io/helm-charts | prometheus-adapter | 4.10.0 |
| https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 2.14.0 |
| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | 65.3.1 |
| https://prometheus-community.github.io/helm-charts | prometheus-adapter | 4.11.0 |
| https://prometheus-community.github.io/helm-charts | prometheus-pushgateway | 2.15.0 |
## Values

View File

@ -7,7 +7,7 @@ annotations:
url: https://github.com/prometheus-operator/kube-prometheus
artifacthub.io/operator: "true"
apiVersion: v2
appVersion: v0.75.1
appVersion: v0.77.1
dependencies:
- condition: crds.enabled
name: crds
@ -16,19 +16,19 @@ dependencies:
- condition: kubeStateMetrics.enabled
name: kube-state-metrics
repository: https://prometheus-community.github.io/helm-charts
version: 5.21.*
version: 5.26.*
- condition: nodeExporter.enabled
name: prometheus-node-exporter
repository: https://prometheus-community.github.io/helm-charts
version: 4.37.*
version: 4.39.*
- condition: grafana.enabled
name: grafana
repository: https://grafana.github.io/helm-charts
version: 8.3.*
version: 8.5.*
- condition: windowsMonitoring.enabled
name: prometheus-windows-exporter
repository: https://prometheus-community.github.io/helm-charts
version: 0.3.*
version: 0.7.*
description: kube-prometheus-stack collects Kubernetes manifests, Grafana dashboards,
and Prometheus rules combined with documentation and scripts to provide easy to
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-operator/kube-prometheus
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.
### 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
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
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
operator.prometheus.io/version: 0.75.1
controller-gen.kubebuilder.io/version: v0.16.1
operator.prometheus.io/version: 0.77.1
argocd.argoproj.io/sync-options: ServerSideApply=true
name: podmonitors.monitoring.coreos.com
spec:
@ -24,7 +24,15 @@ spec:
- name: v1
schema:
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:
apiVersion:
description: |-
@ -51,13 +59,15 @@ spec:
`attachMetadata` defines additional metadata which is added to the
discovered targets.
It requires Prometheus >= v2.37.0.
It requires Prometheus >= v2.35.0.
properties:
node:
description: |-
When set to true, Prometheus must have the `get` permission on the
`Nodes` objects.
When set to true, Prometheus attaches node metadata to the discovered
targets.
The Prometheus service account must have the `list` and `watch`
permissions on the `Nodes` objects.
type: boolean
type: object
bodySizeLimit:
@ -65,7 +75,6 @@ spec:
When defined, bodySizeLimit specifies a job level limit on the size
of uncompressed response body that will be accepted by Prometheus.
It requires Prometheus >= v2.28.0.
pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$
type: string
@ -75,12 +84,10 @@ spec:
`jobLabel` selects the label from the associated Kubernetes `Pod`
object which will be used as the `job` label for all metrics.
For example if `jobLabel` is set to `foo` and the Kubernetes `Pod`
object is labeled with `foo: bar`, then Prometheus adds the `job="bar"`
label to all ingested 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>`).
type: string
@ -89,7 +96,6 @@ spec:
Per-scrape limit on the number of targets dropped by relabeling
that will be kept in memory. 0 means no limit.
It requires Prometheus >= v2.47.0.
format: int64
type: integer
@ -97,7 +103,6 @@ spec:
description: |-
Per-scrape limit on number of labels that will be accepted for a sample.
It requires Prometheus >= v2.27.0.
format: int64
type: integer
@ -105,7 +110,6 @@ spec:
description: |-
Per-scrape limit on length of labels name that will be accepted for a sample.
It requires Prometheus >= v2.27.0.
format: int64
type: integer
@ -113,14 +117,13 @@ spec:
description: |-
Per-scrape limit on length of labels value that will be accepted for a sample.
It requires Prometheus >= v2.27.0.
format: int64
type: integer
namespaceSelector:
description: |-
Selector to select which namespaces the Kubernetes `Pods` objects
are discovered from.
`namespaceSelector` defines in which namespace(s) Prometheus should discover the pods.
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:
any:
description: |-
@ -134,7 +137,7 @@ spec:
type: array
type: object
podMetricsEndpoints:
description: List of endpoints part of this PodMonitor.
description: Defines how to scrape metrics from the selected pods.
items:
description: |-
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
scraping the target.
Cannot be set at the same time as `basicAuth`, or `oauth2`.
properties:
credentials:
@ -161,9 +163,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
description: Specify whether the Secret or its key must be defined
@ -176,10 +176,8 @@ spec:
description: |-
Defines the authentication type. The value is case-insensitive.
"Basic" is not a supported value.
Default: "Bearer"
type: string
type: object
@ -188,7 +186,6 @@ spec:
`basicAuth` configures the Basic Authentication credentials to use when
scraping the target.
Cannot be set at the same time as `authorization`, or `oauth2`.
properties:
password:
@ -206,9 +203,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
as the PodMonitor object and readable by the Prometheus Operator.
Deprecated: use `authorization` instead.
properties:
key:
@ -263,9 +255,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
Succeeded state) are dropped during the target discovery.
If unset, the filtering is enabled.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
type: boolean
followRedirects:
@ -307,7 +295,6 @@ spec:
description: |-
Interval at which Prometheus scrapes the metrics from the target.
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)?)$
type: string
@ -320,7 +307,6 @@ spec:
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:
@ -328,11 +314,9 @@ spec:
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
@ -362,7 +346,6 @@ spec:
description: |-
Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`.
format: int64
type: integer
@ -374,7 +357,6 @@ spec:
Replacement value against which a Replace action is performed if the
regular expression matches.
Regex capture groups are available.
type: string
separator:
@ -396,11 +378,9 @@ spec:
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
@ -409,10 +389,8 @@ spec:
description: |-
`oauth2` configures the OAuth2 settings to use when scraping the target.
It requires Prometheus >= 2.27.0.
Cannot be set at the same time as `authorization`, or `basicAuth`.
properties:
clientId:
@ -433,9 +411,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
URL.
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:
description: '`scopes` defines the OAuth2 scopes used for the token request.'
items:
type: string
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:
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:
ca:
description: Certificate authority used when verifying server certificates.
@ -698,9 +550,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
description: Specify whether the Secret or its key must be defined
@ -813,6 +655,334 @@ spec:
- 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:
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:
description: Used to verify the hostname for the targets.
type: string
@ -823,7 +993,6 @@ spec:
the metrics that have an explicit timestamp present in scraped data.
Has no effect if `honorTimestamps` is false.
It requires Prometheus >= v2.48.0.
type: boolean
type: object
@ -850,10 +1019,8 @@ spec:
`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).
If unset, Prometheus uses its default value.
It requires Prometheus >= v2.49.0.
items:
description: |-
@ -872,7 +1039,7 @@ spec:
type: array
x-kubernetes-list-type: set
selector:
description: Label selector to select the Kubernetes `Pod` objects.
description: Label selector to select the Kubernetes `Pod` objects to scrape metrics from.
properties:
matchExpressions:
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
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
operator.prometheus.io/version: 0.75.1
controller-gen.kubebuilder.io/version: v0.16.1
operator.prometheus.io/version: 0.77.1
argocd.argoproj.io/sync-options: ServerSideApply=true
name: probes.monitoring.coreos.com
spec:
@ -24,7 +24,14 @@ spec:
- name: v1
schema:
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:
apiVersion:
description: |-
@ -62,9 +69,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
description: Specify whether the Secret or its key must be defined
@ -77,10 +82,8 @@ spec:
description: |-
Defines the authentication type. The value is case-insensitive.
"Basic" is not a supported value.
Default: "Bearer"
type: string
type: object
@ -104,9 +107,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
that will be kept in memory. 0 means no limit.
It requires Prometheus >= v2.47.0.
format: int64
type: integer
@ -212,7 +208,6 @@ spec:
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:
@ -220,11 +215,9 @@ spec:
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
@ -254,7 +247,6 @@ spec:
description: |-
Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`.
format: int64
type: integer
@ -266,7 +258,6 @@ spec:
Replacement value against which a Replace action is performed if the
regular expression matches.
Regex capture groups are available.
type: string
separator:
@ -288,11 +279,9 @@ spec:
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
@ -324,9 +313,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
URL.
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:
description: '`scopes` defines the OAuth2 scopes used for the token request.'
items:
type: string
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:
description: '`tokenURL` configures the URL to fetch the token from.'
minLength: 1
@ -449,10 +634,8 @@ spec:
`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).
If unset, Prometheus uses its default value.
It requires Prometheus >= v2.49.0.
items:
description: |-
@ -517,7 +700,6 @@ spec:
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:
@ -525,11 +707,9 @@ spec:
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
@ -559,7 +739,6 @@ spec:
description: |-
Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`.
format: int64
type: integer
@ -571,7 +750,6 @@ spec:
Replacement value against which a Replace action is performed if the
regular expression matches.
Regex capture groups are available.
type: string
separator:
@ -593,11 +771,9 @@ spec:
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
@ -669,7 +845,6 @@ spec:
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:
@ -677,11 +852,9 @@ spec:
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
@ -711,7 +884,6 @@ spec:
description: |-
Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`.
format: int64
type: integer
@ -723,7 +895,6 @@ spec:
Replacement value against which a Replace action is performed if the
regular expression matches.
Regex capture groups are available.
type: string
separator:
@ -745,11 +916,9 @@ spec:
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
@ -780,9 +949,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
description: Specify whether the Secret or its key must be defined
@ -895,6 +1054,28 @@ spec:
- 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

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
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
operator.prometheus.io/version: 0.75.1
controller-gen.kubebuilder.io/version: v0.16.1
operator.prometheus.io/version: 0.77.1
argocd.argoproj.io/sync-options: ServerSideApply=true
name: prometheusrules.monitoring.coreos.com
spec:
@ -24,7 +24,10 @@ spec:
- name: v1
schema:
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:
apiVersion:
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
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
operator.prometheus.io/version: 0.75.1
controller-gen.kubebuilder.io/version: v0.16.1
operator.prometheus.io/version: 0.77.1
argocd.argoproj.io/sync-options: ServerSideApply=true
name: servicemonitors.monitoring.coreos.com
spec:
@ -24,7 +24,15 @@ spec:
- name: v1
schema:
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:
apiVersion:
description: |-
@ -53,13 +61,15 @@ spec:
`attachMetadata` defines additional metadata which is added to the
discovered targets.
It requires Prometheus >= v2.37.0.
properties:
node:
description: |-
When set to true, Prometheus must have the `get` permission on the
`Nodes` objects.
When set to true, Prometheus attaches node metadata to the discovered
targets.
The Prometheus service account must have the `list` and `watch`
permissions on the `Nodes` objects.
type: boolean
type: object
bodySizeLimit:
@ -67,12 +77,14 @@ spec:
When defined, bodySizeLimit specifies a job level limit on the size
of uncompressed response body that will be accepted by Prometheus.
It requires Prometheus >= v2.28.0.
pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$
type: string
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:
description: |-
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
scraping the target.
Cannot be set at the same time as `basicAuth`, or `oauth2`.
properties:
credentials:
@ -99,9 +110,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
description: Specify whether the Secret or its key must be defined
@ -114,10 +123,8 @@ spec:
description: |-
Defines the authentication type. The value is case-insensitive.
"Basic" is not a supported value.
Default: "Bearer"
type: string
type: object
@ -126,7 +133,6 @@ spec:
`basicAuth` configures the Basic Authentication credentials to use when
scraping the target.
Cannot be set at the same time as `authorization`, or `oauth2`.
properties:
password:
@ -144,9 +150,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
description: Specify whether the Secret or its key must be defined
@ -186,7 +188,6 @@ spec:
description: |-
File to read bearer token for scraping the target.
Deprecated: use `authorization` instead.
type: string
bearerTokenSecret:
@ -195,7 +196,6 @@ spec:
token for scraping targets. The secret needs to be in the same namespace
as the ServiceMonitor object and readable by the Prometheus Operator.
Deprecated: use `authorization` instead.
properties:
key:
@ -208,9 +208,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
Succeeded state) are dropped during the target discovery.
If unset, the filtering is enabled.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
type: boolean
followRedirects:
@ -252,7 +248,6 @@ spec:
description: |-
Interval at which Prometheus scrapes the metrics from the target.
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)?)$
type: string
@ -265,7 +260,6 @@ spec:
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:
@ -273,11 +267,9 @@ spec:
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
@ -307,7 +299,6 @@ spec:
description: |-
Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`.
format: int64
type: integer
@ -319,7 +310,6 @@ spec:
Replacement value against which a Replace action is performed if the
regular expression matches.
Regex capture groups are available.
type: string
separator:
@ -341,11 +331,9 @@ spec:
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
@ -354,10 +342,8 @@ spec:
description: |-
`oauth2` configures the OAuth2 settings to use when scraping the target.
It requires Prometheus >= 2.27.0.
Cannot be set at the same time as `authorization`, or `basicAuth`.
properties:
clientId:
@ -378,9 +364,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
URL.
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:
description: '`scopes` defines the OAuth2 scopes used for the token request.'
items:
type: string
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:
description: '`tokenURL` configures the URL to fetch the token from.'
minLength: 1
@ -472,14 +654,12 @@ spec:
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 Service port which this endpoint refers to.
It takes precedence over `targetPort`.
type: string
proxyUrl:
@ -492,20 +672,16 @@ spec:
`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:
@ -513,11 +689,9 @@ spec:
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
@ -547,7 +721,6 @@ spec:
description: |-
Modulus to take of the hash of the source label values.
Only applicable when the action is `HashMod`.
format: int64
type: integer
@ -559,7 +732,6 @@ spec:
Replacement value against which a Replace action is performed if the
regular expression matches.
Regex capture groups are available.
type: string
separator:
@ -581,11 +753,9 @@ spec:
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
@ -594,11 +764,9 @@ spec:
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
@ -608,7 +776,6 @@ spec:
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)?)$
@ -640,9 +807,7 @@ spec:
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.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
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
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
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
optional:
description: Specify whether the Secret or its key must be defined
@ -764,6 +921,28 @@ spec:
- 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
@ -774,7 +953,6 @@ spec:
the metrics that have an explicit timestamp present in scraped data.
Has no effect if `honorTimestamps` is false.
It requires Prometheus >= v2.48.0.
type: boolean
type: object
@ -784,12 +962,10 @@ spec:
`jobLabel` selects the label from the associated Kubernetes `Service`
object which will be used as the `job` label for all metrics.
For example if `jobLabel` is set to `foo` and the Kubernetes `Service`
object is labeled with `foo: bar`, then Prometheus adds the `job="bar"`
label to all ingested metrics.
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
of the associated Kubernetes `Service`.
@ -799,7 +975,6 @@ spec:
Per-scrape limit on the number of targets dropped by relabeling
that will be kept in memory. 0 means no limit.
It requires Prometheus >= v2.47.0.
format: int64
type: integer
@ -807,7 +982,6 @@ spec:
description: |-
Per-scrape limit on number of labels that will be accepted for a sample.
It requires Prometheus >= v2.27.0.
format: int64
type: integer
@ -815,7 +989,6 @@ spec:
description: |-
Per-scrape limit on length of labels name that will be accepted for a sample.
It requires Prometheus >= v2.27.0.
format: int64
type: integer
@ -823,14 +996,13 @@ spec:
description: |-
Per-scrape limit on length of labels value that will be accepted for a sample.
It requires Prometheus >= v2.27.0.
format: int64
type: integer
namespaceSelector:
description: |-
Selector to select which namespaces the Kubernetes `Endpoints` objects
are discovered from.
`namespaceSelector` defines in which namespace(s) Prometheus should discover the services.
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:
any:
description: |-
@ -865,10 +1037,8 @@ spec:
`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).
If unset, Prometheus uses its default value.
It requires Prometheus >= v2.49.0.
items:
description: |-
@ -887,7 +1057,7 @@ spec:
type: array
x-kubernetes-list-type: set
selector:
description: Label selector to select the Kubernetes `Endpoints` objects.
description: Label selector to select the Kubernetes `Endpoints` objects to scrape metrics from.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
@ -944,6 +1114,7 @@ spec:
format: int64
type: integer
required:
- endpoints
- selector
type: object
required:

View File

@ -6,7 +6,7 @@ annotations:
- name: Upstream Project
url: https://github.com/grafana/grafana
apiVersion: v2
appVersion: 11.1.0
appVersion: 11.2.2
description: The leading tool for querying and visualizing time series and metrics.
home: https://grafana.com
icon: https://artifacthub.io/image/b4fed1a7-6c8f-4945-b99d-096efa3e4116
@ -32,4 +32,4 @@ sources:
- https://github.com/grafana/grafana
- https://github.com/grafana/helm-charts
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.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.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.image.registry` | init-chown-data container image registry | `docker.io` |
| `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) | `{}` |
| `sidecar.image.registry` | Sidecar image registry | `quay.io` |
| `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.imagePullPolicy` | Sidecar image pull policy | `IfNotPresent` |
| `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.appProtocol` | Adds the appProtocol field to the service | `` |
| `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.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` |
@ -718,7 +720,7 @@ stringData:
Include in the `extraSecretMounts` configuration flag:
```yaml
- extraSecretMounts:
extraSecretMounts:
- name: auth-generic-oauth-secret-mount
secretName: auth-generic-oauth-secret
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)
```yaml
- extraSecretMounts:
extraSecretMounts:
- name: secrets-store-inline
mountPath: /run/secrets
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" . }}
{{ include "grafana.selectorLabels" . }}
{{- 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 }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.extraLabels }}
@ -91,7 +91,7 @@ Common labels
helm.sh/chart: {{ include "grafana.chart" . }}
{{ include "grafana.imageRenderer.selectorLabels" . }}
{{- 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 }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}

View File

@ -1059,10 +1059,18 @@ containers:
{{- end }}
{{- if .Values.imageRenderer.enabled }}
- 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
{{- end }}
- 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 }}
{{- end }}
{{- end }}
- name: GF_PATHS_DATA
value: {{ (get .Values "grafana.ini").paths.data }}
- name: GF_PATHS_LOGS
@ -1156,6 +1164,9 @@ volumes:
- name: {{ tpl .name $root }}
configMap:
name: {{ tpl .configMap $root }}
{{- with .optional }}
optional: {{ . }}
{{- end }}
{{- with .items }}
items:
{{- toYaml . | nindent 8 }}
@ -1261,6 +1272,9 @@ volumes:
secret:
secretName: {{ .secretName }}
defaultMode: {{ .defaultMode }}
{{- with .optional }}
optional: {{ . }}
{{- end }}
{{- with .items }}
items:
{{- toYaml . | nindent 8 }}

View File

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

View File

@ -14,7 +14,7 @@ metadata:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if and (not .Values.autoscaling.enabled) (.Values.replicas) }}
{{- if (not .Values.autoscaling.enabled) }}
replicas: {{ .Values.replicas }}
{{- end }}
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
kind: PersistentVolumeClaim
metadata:

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -164,6 +164,7 @@ extraConfigmapMounts: []
# subPath: certificates.crt # (optional)
# configMap: certs-configmap
# readOnly: true
# optional: false
extraEmptyDirMounts: []
@ -366,7 +367,7 @@ extraContainerVolumes: []
# emptyDir: {}
## 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:
type: pvc
@ -539,6 +540,7 @@ extraSecretMounts: []
# mountPath: /etc/secrets
# secretName: grafana-secret-files
# readOnly: true
# optional: false
# subPath: ""
#
# for AWS EKS (cloudwatch) use the following (see also instruction in env: above)
@ -795,7 +797,7 @@ grafana.ini:
grafana_net:
url: https://grafana.net
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
# server:
# The full public facing url you use in browser, used for redirects and emails
@ -859,7 +861,7 @@ sidecar:
# -- The Docker registry
registry: quay.io
repository: kiwigrid/k8s-sidecar
tag: 1.26.1
tag: 1.28.0
sha: ""
imagePullPolicy: IfNotPresent
resources: {}
@ -1158,6 +1160,10 @@ imageRenderer:
targetCPU: "60"
targetMemory: ""
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:
# -- The Docker registry
registry: docker.io

View File

@ -4,7 +4,7 @@ annotations:
- name: Chart Source
url: https://github.com/prometheus-community/helm-charts
apiVersion: v2
appVersion: 2.12.0
appVersion: 2.13.0
description: Install kube-state-metrics to generate and expose cluster-level metrics
home: https://github.com/kubernetes/kube-state-metrics/
keywords:
@ -23,4 +23,4 @@ name: kube-state-metrics
sources:
- https://github.com/kubernetes/kube-state-metrics/
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 }}
{{- end }}
{{- if .Values.customLabels }}
{{ toYaml .Values.customLabels }}
{{ tpl (toYaml .Values.customLabels) . }}
{{- end }}
{{- if .Values.releaseLabel }}
release: {{ .Release.Name }}

View File

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

View File

@ -314,6 +314,9 @@ annotations: {}
# Annotations to be added to the pod
podAnnotations: {}
# Labels to be added to the pod
podLabels: {}
## Assign a PriorityClassName to pods if set
# priorityClassName: ""
@ -497,6 +500,23 @@ initContainers: []
# - name: crd-sidecar
# 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
##
livenessProbe:

View File

@ -4,7 +4,7 @@ annotations:
- name: Chart Source
url: https://github.com/prometheus-community/helm-charts
apiVersion: v2
appVersion: 1.8.1
appVersion: 1.8.2
description: A Helm chart for prometheus node-exporter
home: https://github.com/prometheus/node_exporter/
keywords:
@ -22,4 +22,4 @@ name: prometheus-node-exporter
sources:
- https://github.com/prometheus/node_exporter/
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 }}
app.kubernetes.io/version: {{ . | quote }}
{{- end }}
{{- with .Values.podLabels }}
{{ toYaml . }}
{{- with .Values.commonLabels }}
{{ tpl (toYaml .) $ }}
{{- end }}
{{- if .Values.releaseLabel }}
release: {{ .Release.Name }}

View File

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

View File

@ -6,6 +6,9 @@ metadata:
namespace: {{ include "prometheus-node-exporter.namespace" . }}
labels:
{{- include "prometheus-node-exporter.labels" $ | nindent 4 }}
{{- with .Values.service.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.service.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
@ -23,7 +26,7 @@ spec:
clusterIP: "{{ .Values.service.clusterIP }}"
{{- end }}
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)) ) }}
nodePort: {{ .Values.service.nodePort }}
{{- end }}

View File

@ -84,21 +84,45 @@ kubeRBACProxy:
# cpu: 10m
# memory: 32Mi
## Service configuration
service:
## Creating a service is enabled by default
enabled: true
## Service type
type: ClusterIP
## IP address for type 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
## 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
nodePort:
## Name of the service port. Sets the port name of the main container (NE) as well.
portName: metrics
## Port number for service type NodePort
nodePort: null
## If true, node exporter will listen on all interfaces
listenOnAllInterfaces: true
## Additional annotations and labels for the service
annotations:
prometheus.io/scrape: "true"
labels: {}
## Dual stack settings for the service
## https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
ipDualStack:
enabled: false
ipFamilies: ["IPv6", "IPv4"]
ipFamilyPolicy: "PreferDualStack"
## External traffic policy setting (Cluster, Local)
externalTrafficPolicy: ""
# Set a NetworkPolicy with:
@ -322,6 +346,9 @@ hostNetwork: true
# Share the host process ID namespace
hostPID: true
# Share the host ipc namespace
hostIPC: false
# Mount the node's root file system (/) at /host/root in the container
hostRootFsMount:
enabled: true
@ -359,9 +386,12 @@ podAnnotations:
# Fix for very slow GKE cluster upgrades
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: {}
## Extra labels to attach to all resources (can be templated)
commonLabels: {}
# Annotations to be added to node exporter daemonset
daemonsetAnnotations: {}

View File

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

View File

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

View File

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

View File

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

View File

@ -18,6 +18,9 @@ data:
{{- if .Values.grafana.deleteDatasources }}
deleteDatasources:
{{ tpl (toYaml .Values.grafana.deleteDatasources | indent 6) . }}
{{- end }}
{{- if .Values.grafana.prune }}
prune: {{ .Values.grafana.prune }}
{{- end }}
datasources:
{{- $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/component: prometheus-operator-webhook
{{- 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:
app: {{ template "kube-prometheus-stack.name" . }}-operator
{{- 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 }}
imagePullSecrets:
{{ include "kube-prometheus-stack.imagePullSecrets" . | trim | indent 2 }}

View File

@ -10,6 +10,9 @@ metadata:
labels:
app: {{ template "kube-prometheus-stack.name" $ }}-admission
{{- 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 }}
{{- if .Values.global.imagePullSecrets }}
imagePullSecrets:

View File

@ -3,11 +3,11 @@ apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
name: {{ template "kube-prometheus-stack.fullname" . }}-admission
{{- if .Values.prometheusOperator.admissionWebhooks.certManager.enabled }}
annotations:
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 }}
{{- include "kube-prometheus-stack.prometheus-operator-webhook.annotations" $ | trim |nindent 4 }}
{{- with .Values.prometheusOperator.admissionWebhooks.mutatingWebhookConfiguration.annotations }}
{{- toYaml . | nindent 4}}
{{- end }}
labels:
app: {{ template "kube-prometheus-stack.name" $ }}-admission
{{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" $ | nindent 4 }}

View File

@ -3,11 +3,11 @@ apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: {{ template "kube-prometheus-stack.fullname" . }}-admission
{{- if .Values.prometheusOperator.admissionWebhooks.certManager.enabled }}
annotations:
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 }}
{{- include "kube-prometheus-stack.prometheus-operator-webhook.annotations" $ | trim | nindent 4 }}
{{- with .Values.prometheusOperator.admissionWebhooks.validatingWebhookConfiguration.annotations }}
{{- toYaml . | nindent 4}}
{{- end }}
labels:
app: {{ template "kube-prometheus-stack.name" $ }}-admission
{{- include "kube-prometheus-stack.prometheus-operator-webhook.labels" $ | nindent 4 }}

View File

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

View File

@ -63,6 +63,8 @@ spec:
- --kubelet-selector={{ .Values.prometheusOperator.kubeletService.selector }}
{{- end }}
{{- end }}
- --kubelet-endpoints={{ .Values.prometheusOperator.kubeletEndpointsEnabled }}
- --kubelet-endpointslice={{ .Values.prometheusOperator.kubeletEndpointSliceEnabled }}
{{- if .Values.prometheusOperator.logFormat }}
- --log-format={{ .Values.prometheusOperator.logFormat }}
{{- end }}
@ -167,6 +169,30 @@ spec:
{{- with .Values.prometheusOperator.extraVolumeMounts }}
{{- toYaml . | nindent 12 }}
{{- 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:
{{- if .Values.prometheusOperator.tls.enabled }}
- name: tls-secret

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -193,6 +193,10 @@ spec:
{{- with .Values.thanosRuler.thanosRulerSpec.additionalConfig }}
{{- tpl (toYaml .) $ | nindent 2 }}
{{- end }}
{{- if .Values.thanosRuler.thanosRulerSpec.web }}
web:
{{ toYaml .Values.thanosRuler.thanosRulerSpec.web | indent 4 }}
{{- end }}
{{- with .Values.thanosRuler.thanosRulerSpec.additionalConfigString }}
{{- tpl . $ | nindent 2 }}
{{- 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.
runbookUrl: "https://runbooks.prometheus-operator.dev/runbooks"
node:
fsSelector: 'fstype!=""'
# fsSelector: 'fstype=~"ext[234]|btrfs|xfs|zfs"'
## Disabled PrometheusRule alerts
disabled: {}
# 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)
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.
## Use case is e.g. spanning an Alertmanager cluster across Kubernetes clusters with a single replica in each.
forceEnableClusterMode: false
@ -1116,6 +1123,7 @@ grafana:
# - name: prometheus-sample
# access: proxy
# basicAuth: true
# secureJsonData:
# basicAuthPassword: pass
# basicAuthUser: daco
# editable: false
@ -1126,6 +1134,11 @@ grafana:
# url: https://{{ printf "%s-prometheus.svc" .Release.Name }}:9090
# 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
##
service:
@ -2127,6 +2140,9 @@ prometheus-node-exporter:
enabled: false
ipFamilies: ["IPv6", "IPv4"]
ipFamilyPolicy: "PreferDualStack"
labels:
jobLabel: node-exporter
prometheus:
monitor:
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.
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
## rules from making their way into prometheus and potentially preventing the container from starting
admissionWebhooks:
@ -2238,6 +2273,13 @@ prometheusOperator:
namespaceSelector: {}
objectSelector: {}
mutatingWebhookConfiguration:
annotations: {}
# argocd.argoproj.io/hook: PreSync
validatingWebhookConfiguration:
annotations: {}
# argocd.argoproj.io/hook: PreSync
deployment:
enabled: false
@ -2272,6 +2314,7 @@ prometheusOperator:
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
##
serviceAccount:
annotations: {}
automountServiceAccountToken: false
create: true
name: ""
@ -2493,6 +2536,7 @@ prometheusOperator:
##
serviceAccount:
create: true
annotations: {}
automountServiceAccountToken: true
# Security context for create job container
@ -2574,6 +2618,7 @@ prometheusOperator:
create: true
name: ""
automountServiceAccountToken: true
annotations: {}
## Configuration for Prometheus operator service
##
@ -2654,6 +2699,11 @@ prometheusOperator:
## Use '{{ template "kube-prometheus-stack.fullname" . }}-kubelet' by default
name: ""
## Create Endpoints objects for kubelet targets.
kubeletEndpointsEnabled: true
## Create EndpointSlice objects for kubelet targets.
kubeletEndpointSliceEnabled: false
## Create a servicemonitor for the operator
##
serviceMonitor:
@ -2868,7 +2918,7 @@ prometheusOperator:
thanosImage:
registry: quay.io
repository: thanos/thanos
tag: v0.35.1
tag: v0.36.1
sha: ""
## Set a Label Selector to filter watched prometheus and prometheusAgent
@ -3458,7 +3508,7 @@ prometheus:
image:
registry: quay.io
repository: prometheus/prometheus
tag: v2.53.1
tag: v2.54.1
sha: ""
## 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
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)
additionalConfig: {}
@ -4446,7 +4500,7 @@ thanosRuler:
image:
registry: quay.io
repository: thanos/thanos
tag: v0.35.1
tag: v0.36.1
sha: ""
## Namespaces to be selected for PrometheusRules discovery.
@ -4521,7 +4575,7 @@ thanosRuler:
existingSecret: {}
# name: ""
# 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
secret: {}
# alertmanagers:
@ -4713,6 +4767,10 @@ thanosRuler:
##
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)
additionalConfig: {}

View File

@ -1,5 +1,18 @@
{
"editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [
{
"datasource": {
@ -17,7 +30,7 @@
"options": {
"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",
"type": "text"
},
@ -41,7 +54,7 @@
},
"id": 2,
"interval": "1m",
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -87,7 +100,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -121,7 +134,7 @@
},
"id": 4,
"interval": "1m",
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -219,7 +232,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -263,7 +276,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -306,7 +319,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -340,7 +353,7 @@
},
"id": 8,
"interval": "1m",
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -438,7 +451,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -482,7 +495,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -525,7 +538,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -568,7 +581,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -611,7 +624,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -657,7 +670,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -699,7 +712,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -742,7 +755,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -784,7 +797,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {

View File

@ -1,5 +1,18 @@
{
"editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [
{
"datasource": {
@ -33,14 +46,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -79,14 +92,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -150,14 +163,14 @@
"y": 9
},
"id": 3,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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",
"instant": true
},
@ -166,7 +179,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -175,7 +188,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -184,7 +197,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -193,7 +206,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -202,7 +215,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -211,7 +224,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -220,7 +233,7 @@
"type": "prometheus",
"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",
"instant": true
}
@ -315,14 +328,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -361,14 +374,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -407,14 +420,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -453,14 +466,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -499,14 +512,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -545,14 +558,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -591,14 +604,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -637,14 +650,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -683,14 +696,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -729,14 +742,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],

View File

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

View File

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

View File

@ -1,5 +1,18 @@
{
"editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [
{
"datasource": {
@ -22,7 +35,7 @@
"options": {
"colorMode": "none"
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -57,7 +70,7 @@
"options": {
"colorMode": "none"
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -92,7 +105,7 @@
"options": {
"colorMode": "none"
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -127,7 +140,7 @@
"options": {
"colorMode": "none"
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -229,7 +242,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -244,7 +257,7 @@
"type": "prometheus",
"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"
},
{
@ -252,7 +265,7 @@
"type": "prometheus",
"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"
}
],
@ -304,7 +317,7 @@
"y": 14
},
"id": 6,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -487,7 +500,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -502,7 +515,7 @@
"type": "prometheus",
"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"
},
{
@ -510,7 +523,7 @@
"type": "prometheus",
"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"
}
],
@ -565,7 +578,7 @@
"y": 28
},
"id": 8,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -755,7 +768,7 @@
"y": 35
},
"id": 9,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -899,7 +912,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -950,7 +963,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1001,7 +1014,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1052,7 +1065,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1103,7 +1116,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1154,7 +1167,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1205,7 +1218,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1256,7 +1269,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1327,7 +1340,7 @@
"y": 70
},
"id": 18,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {

View File

@ -1,5 +1,18 @@
{
"editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [
{
"datasource": {
@ -81,14 +94,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
},
{
@ -148,7 +161,7 @@
"y": 6
},
"id": 2,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -310,14 +323,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
},
{
@ -380,7 +393,7 @@
"y": 18
},
"id": 4,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {

View File

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

View File

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

View File

@ -1,5 +1,18 @@
{
"editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [
{
"datasource": {
@ -89,7 +102,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -104,7 +117,7 @@
"type": "prometheus",
"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"
},
{
@ -112,7 +125,7 @@
"type": "prometheus",
"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"
}
],
@ -176,7 +189,7 @@
"y": 7
},
"id": 2,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -384,7 +397,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -399,7 +412,7 @@
"type": "prometheus",
"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"
},
{
@ -407,7 +420,7 @@
"type": "prometheus",
"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"
}
],
@ -474,7 +487,7 @@
"y": 21
},
"id": 4,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -650,7 +663,7 @@
"y": 28
},
"id": 5,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -794,7 +807,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -845,7 +858,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -896,7 +909,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -947,7 +960,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -998,7 +1011,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1049,7 +1062,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1100,7 +1113,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -1151,7 +1164,7 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {

View File

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

View File

@ -1,5 +1,18 @@
{
"editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [
{
"datasource": {
@ -40,14 +53,14 @@
"y": 0
},
"id": 1,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -93,14 +106,14 @@
"y": 0
},
"id": 2,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -164,14 +177,14 @@
"y": 9
},
"id": 3,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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",
"instant": true
},
@ -180,7 +193,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -189,7 +202,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -198,7 +211,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -207,7 +220,7 @@
"type": "prometheus",
"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",
"instant": true
},
@ -216,7 +229,7 @@
"type": "prometheus",
"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",
"instant": true
}
@ -303,14 +316,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -349,14 +362,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -395,14 +408,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -441,14 +454,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -487,14 +500,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -533,14 +546,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],

View File

@ -1,5 +1,18 @@
{
"editable": false,
"links": [
{
"asDropdown": true,
"includeVars": true,
"keepTime": true,
"tags": [
"kubernetes"
],
"targetBlank": false,
"title": "Kubernetes",
"type": "dashboards"
}
],
"panels": [
{
"datasource": {
@ -26,14 +39,14 @@
"displayMode": "basic",
"showUnfilled": false
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -65,14 +78,14 @@
"displayMode": "basic",
"showUnfilled": false
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -136,7 +149,7 @@
"y": 9
},
"id": 3,
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
@ -322,14 +335,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -373,14 +386,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -424,14 +437,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -475,14 +488,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -526,14 +539,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -577,14 +590,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -628,14 +641,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],
@ -679,14 +692,14 @@
"mode": "single"
}
},
"pluginVersion": "v11.0.0",
"pluginVersion": "v11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"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"
}
],

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -114,7 +114,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubestatefulsetupdatenotrolledout",
"summary": "StatefulSet update has not been rolled out."
},
"expr": "(\n max by(namespace, statefulset) (\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",
"labels": {
"severity": "warning"
@ -445,7 +445,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn",
"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",
"labels": {
"long": "1h",
@ -460,7 +460,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn",
"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",
"labels": {
"long": "6h",
@ -475,7 +475,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn",
"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",
"labels": {
"long": "1d",
@ -490,7 +490,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapierrorbudgetburn",
"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",
"labels": {
"long": "3d",
@ -510,7 +510,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration",
"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",
"labels": {
"severity": "warning"
@ -523,7 +523,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeclientcertificateexpiration",
"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",
"labels": {
"severity": "critical"
@ -574,7 +574,7 @@
"runbook_url": "https://runbooks.prometheus-operator.dev/runbooks/kubernetes/kubeapiterminatedrequests",
"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",
"labels": {
"severity": "warning"
@ -810,14 +810,6 @@
},
"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",
"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",
"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",
"labels": {
@ -1049,7 +1049,7 @@
]
},
{
"name": "k8s.rules.container_resource",
"name": "k8s.rules.container_memory_requests",
"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",
@ -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",
"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",
"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",
"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",
"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",
"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",
"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