-
Notifications
You must be signed in to change notification settings - Fork 1
/
appuio_cloud_memory_sub_memory.promql
58 lines (57 loc) · 2.26 KB
/
appuio_cloud_memory_sub_memory.promql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Calculates memory requests higher than the real memory usage
# Sum values over one hour.
sum_over_time(
# Average over a one-minute time frame.
# NOTE: This is a sliding window. Results vary based on the queries' execution time.
avg_over_time(
# Add the final product label by joining the base product with the cluster ID, the tenant and the namespace.
label_join(
# Add the category label by joining the cluster ID and the namespace.
label_join(
# Add the base product identifier.
label_replace(
clamp_min(
(
clamp_min(
sum by(cluster_id, namespace, label_appuio_io_node_class) (kube_pod_container_resource_requests{resource="memory"}
* on(uid, cluster_id, pod, namespace) group_left kube_pod_status_phase{phase="Running"}
* on(cluster_id, node) group_left(label_appuio_io_node_class) (min by(cluster_id, node, label_appuio_io_node_class) (kube_node_labels{label_appuio_io_node_class!=""} or on(cluster_id, node) kube_node_labels{label_appuio_io_node_class=""}))),
128 * 1024 * 1024
)
- sum by(cluster_id, namespace, label_appuio_io_node_class) (container_memory_working_set_bytes{image!=""}
* on(cluster_id, node) group_left(label_appuio_io_node_class) (min by(cluster_id, node, label_appuio_io_node_class) (kube_node_labels{label_appuio_io_node_class!=""} or on(cluster_id, node) kube_node_labels{label_appuio_io_node_class=""})))
),
0
)
*
# Join namespace label `label_appuio_io_organization` as `tenant_id`.
on(cluster_id, namespace)
group_left(tenant_id)
label_replace(
kube_namespace_labels{label_appuio_io_organization=~".+"},
"tenant_id",
"$1",
"label_appuio_io_organization", "(.*)"
),
"product",
"appuio_cloud_memory",
"product",
".*"
),
"category",
":",
"cluster_id",
"namespace"
),
"product",
":",
"product",
"cluster_id",
"tenant_id",
"namespace",
"label_appuio_io_node_class"
)[45s:15s]
)[59m:1m]
)
# Convert to MiB
/ 1024 / 1024