From 69d9636b64192418d64912c032f5437361e88ea5 Mon Sep 17 00:00:00 2001 From: Ben Kochie <superq@gmail.com> Date: Thu, 24 Oct 2024 15:59:04 +0200 Subject: [PATCH] Reduce apiserver metric cardinality (#2531) * Reduce apiserver metric cardinality Current releases of Kubernetes added new metrics that also have the same excessive bucket cardinality. Remove the extra buckets from these metrics. * `apiserver_request_sli_duration_seconds_bucket` * `etcd_request_duration_seconds_bucket` Also reduce the cardinality of apiserver byte histogram metrics. * `apiserver_request_bdy_size_bytes_bucket` This reduces API server metrics in our configuration by about 25%. Signed-off-by: SuperQ <superq@gmail.com> * Apply suggestions from code review --------- Signed-off-by: SuperQ <superq@gmail.com> Co-authored-by: Simon Pasquier <spasquie@redhat.com> --- .../kube-prometheus/components/k8s-control-plane.libsonnet | 7 ++++++- .../kubernetesControlPlane-serviceMonitorApiserver.yaml | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/jsonnet/kube-prometheus/components/k8s-control-plane.libsonnet b/jsonnet/kube-prometheus/components/k8s-control-plane.libsonnet index e17c6b2e..448ea4cf 100644 --- a/jsonnet/kube-prometheus/components/k8s-control-plane.libsonnet +++ b/jsonnet/kube-prometheus/components/k8s-control-plane.libsonnet @@ -323,7 +323,12 @@ function(params) { }, { sourceLabels: ['__name__', 'le'], - regex: 'apiserver_request_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50)', + regex: '(apiserver_request|apiserver_request_sli|etcd_request)_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50)', + action: 'drop', + }, + { + sourceLabels: ['__name__', 'le'], + regex: 'apiserver_request_body_size_bytes_bucket;(150000|350000|550000|650000|850000|950000|(1\\.15|1\\.35|1\\.55|1\\.65|1\\.85|1\\.95|2\\.15|2\\.35|2\\.55|2\\.65|2\\.85|2\\.95)e\\+06)', action: 'drop', }, ], diff --git a/manifests/kubernetesControlPlane-serviceMonitorApiserver.yaml b/manifests/kubernetesControlPlane-serviceMonitorApiserver.yaml index 509467af..5bf68e3d 100644 --- a/manifests/kubernetesControlPlane-serviceMonitorApiserver.yaml +++ b/manifests/kubernetesControlPlane-serviceMonitorApiserver.yaml @@ -56,7 +56,12 @@ spec: sourceLabels: - __name__ - action: drop - regex: apiserver_request_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50) + regex: (apiserver_request|apiserver_request_sli|etcd_request)_duration_seconds_bucket;(0.15|0.25|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2.5|3|3.5|4.5|6|7|8|9|15|25|30|50) + sourceLabels: + - __name__ + - le + - action: drop + regex: apiserver_request_body_size_bytes_bucket;(150000|350000|550000|650000|850000|950000|(1\.15|1\.35|1\.55|1\.65|1\.85|1\.95|2\.15|2\.35|2\.55|2\.65|2\.85|2\.95)e\+06) sourceLabels: - __name__ - le -- GitLab