|
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