|
30 | 30 | // This rule gives the number of CPUs per node. |
31 | 31 | record: 'node:node_num_cpu:sum', |
32 | 32 | expr: ||| |
33 | | - count by (%(clusterLabel)s, node) (sum by (node, cpu) ( |
34 | | - node_cpu_seconds_total{%(nodeExporterSelector)s} |
35 | | - * on (namespace, %(podLabel)s) group_left(node) |
| 33 | + count by (%(clusterLabel)s, node) ( |
| 34 | + node_cpu_seconds_total{mode="idle",%(nodeExporterSelector)s} |
| 35 | + * on (namespace, %(podLabel)s) group_left(node) |
36 | 36 | topk by(namespace, %(podLabel)s) (1, node_namespace_pod:kube_pod_info:) |
37 | | - )) |
| 37 | + ) |
38 | 38 | ||| % $._config, |
39 | 39 | }, |
40 | 40 | // Add separate rules for Available memory, so we can aggregate across clusters in dashboards. |
|
52 | 52 | ) by (%(clusterLabel)s) |
53 | 53 | ||| % $._config, |
54 | 54 | }, |
| 55 | + { |
| 56 | + // This rule gives cpu utilization per node. |
| 57 | + record: 'node:node_cpu_utilization:ratio_rate5m', |
| 58 | + expr: ||| |
| 59 | + avg by (%(clusterLabel)s, node) ( |
| 60 | + sum without (mode) ( |
| 61 | + rate(node_cpu_seconds_total{mode!="idle",mode!="iowait",mode!="steal",%(nodeExporterSelector)s}[5m]) |
| 62 | + ) |
| 63 | + ) |
| 64 | + ||| % $._config, |
| 65 | + }, |
55 | 66 | { |
56 | 67 | // This rule gives cpu utilization per cluster |
57 | 68 | record: 'cluster:node_cpu:ratio_rate5m', |
58 | 69 | expr: ||| |
59 | | - sum(rate(node_cpu_seconds_total{%(nodeExporterSelector)s,mode!="idle",mode!="iowait",mode!="steal"}[5m])) / |
60 | | - count(sum(node_cpu_seconds_total{%(nodeExporterSelector)s}) by (%(clusterLabel)s, instance, cpu)) |
| 70 | + avg by (%(clusterLabel)s) ( |
| 71 | + node:node_cpu_utilization:ratio_rate5m |
| 72 | + ) |
61 | 73 | ||| % $._config, |
62 | 74 | }, |
63 | 75 | ], |
|
0 commit comments