@@ -69,12 +69,21 @@ local utils = import 'mixin-utils/utils.libsonnet';
69
69
rules: [
70
70
{
71
71
// Convenience rule to get the number of replicas for both a deployment and a statefulset.
72
+ // Multi-zone deployments are grouped together removing the "zone-X" suffix.
72
73
record: 'cluster_namespace_deployment:actual_replicas:count' ,
73
74
expr: |||
74
- sum by (cluster, namespace, deployment) (kube_deployment_spec_replicas)
75
- or
76
75
sum by (cluster, namespace, deployment) (
77
- label_replace(kube_statefulset_replicas, "deployment", "$1", "statefulset", "(.*)")
76
+ label_replace(
77
+ kube_deployment_spec_replicas,
78
+ "deployment", "$1", "deployment", "(.*?)(?:-zone-[a-z])?"
79
+ )
80
+ )
81
+ or
82
+ sum by (cluster, namespace, deployment) (
83
+ label_replace(
84
+ label_replace(kube_statefulset_replicas, "deployment", "$1", "statefulset", "(.*)"),
85
+ "deployment", "$1", "deployment", "(.*?)(?:-zone-[a-z])?"
86
+ )
78
87
)
79
88
||| ,
80
89
},
@@ -188,7 +197,7 @@ local utils = import 'mixin-utils/utils.libsonnet';
188
197
expr: |||
189
198
ceil(
190
199
(sum by (cluster, namespace) (
191
- cortex_ingester_tsdb_storage_blocks_bytes{job=~".+/ingester"}
200
+ cortex_ingester_tsdb_storage_blocks_bytes{job=~".+/ingester.* "}
192
201
) / 4)
193
202
/
194
203
avg by (cluster, namespace) (
@@ -199,18 +208,23 @@ local utils = import 'mixin-utils/utils.libsonnet';
199
208
},
200
209
{
201
210
// Convenience rule to get the CPU utilization for both a deployment and a statefulset.
211
+ // Multi-zone deployments are grouped together removing the "zone-X" suffix.
202
212
record: 'cluster_namespace_deployment:container_cpu_usage_seconds_total:sum_rate' ,
203
213
expr: |||
204
214
sum by (cluster, namespace, deployment) (
205
215
label_replace(
206
- node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate,
207
- "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
216
+ label_replace(
217
+ node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate,
218
+ "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
219
+ ),
220
+ "deployment", "$1", "deployment", "(.*?)(?:-zone-[a-z])?"
208
221
)
209
222
)
210
223
||| ,
211
224
},
212
225
{
213
226
// Convenience rule to get the CPU request for both a deployment and a statefulset.
227
+ // Multi-zone deployments are grouped together removing the "zone-X" suffix.
214
228
record: 'cluster_namespace_deployment:kube_pod_container_resource_requests_cpu_cores:sum' ,
215
229
expr: |||
216
230
# This recording rule is made compatible with the breaking changes introduced in kube-state-metrics v2
@@ -223,8 +237,11 @@ local utils = import 'mixin-utils/utils.libsonnet';
223
237
(
224
238
sum by (cluster, namespace, deployment) (
225
239
label_replace(
226
- kube_pod_container_resource_requests_cpu_cores,
227
- "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
240
+ label_replace(
241
+ kube_pod_container_resource_requests_cpu_cores,
242
+ "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
243
+ ),
244
+ "deployment", "$1", "deployment", "(.*?)(?:-zone-[a-z])?"
228
245
)
229
246
)
230
247
)
@@ -234,8 +251,11 @@ local utils = import 'mixin-utils/utils.libsonnet';
234
251
(
235
252
sum by (cluster, namespace, deployment) (
236
253
label_replace(
237
- kube_pod_container_resource_requests{resource="cpu"},
238
- "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
254
+ label_replace(
255
+ kube_pod_container_resource_requests{resource="cpu"},
256
+ "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
257
+ ),
258
+ "deployment", "$1", "deployment", "(.*?)(?:-zone-[a-z])?"
239
259
)
240
260
)
241
261
)
@@ -261,18 +281,23 @@ local utils = import 'mixin-utils/utils.libsonnet';
261
281
},
262
282
{
263
283
// Convenience rule to get the Memory utilization for both a deployment and a statefulset.
284
+ // Multi-zone deployments are grouped together removing the "zone-X" suffix.
264
285
record: 'cluster_namespace_deployment:container_memory_usage_bytes:sum' ,
265
286
expr: |||
266
287
sum by (cluster, namespace, deployment) (
267
288
label_replace(
268
- container_memory_usage_bytes,
269
- "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
289
+ label_replace(
290
+ container_memory_usage_bytes,
291
+ "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
292
+ ),
293
+ "deployment", "$1", "deployment", "(.*?)(?:-zone-[a-z])?"
270
294
)
271
295
)
272
296
||| ,
273
297
},
274
298
{
275
299
// Convenience rule to get the Memory request for both a deployment and a statefulset.
300
+ // Multi-zone deployments are grouped together removing the "zone-X" suffix.
276
301
record: 'cluster_namespace_deployment:kube_pod_container_resource_requests_memory_bytes:sum' ,
277
302
expr: |||
278
303
# This recording rule is made compatible with the breaking changes introduced in kube-state-metrics v2
@@ -285,8 +310,11 @@ local utils = import 'mixin-utils/utils.libsonnet';
285
310
(
286
311
sum by (cluster, namespace, deployment) (
287
312
label_replace(
288
- kube_pod_container_resource_requests_memory_bytes,
289
- "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
313
+ label_replace(
314
+ kube_pod_container_resource_requests_memory_bytes,
315
+ "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
316
+ ),
317
+ "deployment", "$1", "deployment", "(.*?)(?:-zone-[a-z])?"
290
318
)
291
319
)
292
320
)
@@ -296,8 +324,11 @@ local utils = import 'mixin-utils/utils.libsonnet';
296
324
(
297
325
sum by (cluster, namespace, deployment) (
298
326
label_replace(
299
- kube_pod_container_resource_requests{resource="memory"},
300
- "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
327
+ label_replace(
328
+ kube_pod_container_resource_requests{resource="memory"},
329
+ "deployment", "$1", "pod", "(.*)-(?:([0-9]+)|([a-z0-9]+)-([a-z0-9]+))"
330
+ ),
331
+ "deployment", "$1", "deployment", "(.*?)(?:-zone-[a-z])?"
301
332
)
302
333
)
303
334
)
0 commit comments