mirror of https://github.com/prometheus/prometheus
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
5.7 KiB
122 lines
5.7 KiB
{{ template "head" . }} |
|
|
|
{{ template "prom_content_head" . }} |
|
<h1>Node Overview - {{ reReplaceAll "(.*?://)([^:/]+?)(:\\d+)?/.*" "$2" .Params.instance }}</h1> |
|
|
|
<h3>CPU Usage</h3> |
|
<div id="cpuGraph"></div> |
|
<script> |
|
new PromConsole.Graph({ |
|
node: document.querySelector("#cpuGraph"), |
|
expr: "sum by (mode)(irate(node_cpu_seconds_total{job='node',instance='{{ .Params.instance }}',mode!='idle'}[5m]))", |
|
renderer: 'area', |
|
max: {{ with printf "count(count by (cpu)(node_cpu_seconds_total{job='node',instance='%s'}))" .Params.instance | query }}{{ . | first | value }}{{ else}}undefined{{end}}, |
|
yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix, |
|
yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix, |
|
yTitle: 'Cores' |
|
}) |
|
</script> |
|
|
|
<h3>Disk I/O Utilization</h3> |
|
<div id="diskioGraph"></div> |
|
<script> |
|
new PromConsole.Graph({ |
|
node: document.querySelector("#diskioGraph"), |
|
expr: [ |
|
"irate(node_disk_io_time_seconds_total{job='node',instance='{{ .Params.instance }}',device!~'^(md\\\\d+$|dm-)'}[5m]) * 100", |
|
], |
|
min: 0, |
|
name: '[[ device ]]', |
|
yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix, |
|
yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix, |
|
yUnits: "%", |
|
yTitle: 'Disk I/O Utilization' |
|
}) |
|
</script> |
|
|
|
<h3>Memory</h3> |
|
<div id="memoryGraph"></div> |
|
<script> |
|
new PromConsole.Graph({ |
|
node: document.querySelector("#memoryGraph"), |
|
renderer: 'area', |
|
expr: [ |
|
"node_memory_Cached_bytes{job='node',instance='{{ .Params.instance }}'}", |
|
"node_memory_Buffers_bytes{job='node',instance='{{ .Params.instance }}'}", |
|
"node_memory_MemTotal_bytes{job='node',instance='{{ .Params.instance }}'} - node_memory_MemFree_bytes{job='node',instance='{{.Params.instance}}'} - node_memory_Buffers_bytes{job='node',instance='{{.Params.instance}}'} - node_memory_Cached_bytes{job='node',instance='{{.Params.instance}}'}", |
|
"node_memory_MemFree{job='node',instance='{{ .Params.instance }}'}", |
|
], |
|
name: ["Cached", "Buffers", "Used", "Free"], |
|
min: 0, |
|
yUnits: "B", |
|
yAxisFormatter: PromConsole.NumberFormatter.humanize1024, |
|
yHoverFormatter: PromConsole.NumberFormatter.humanize1024, |
|
yTitle: 'Memory' |
|
}) |
|
</script> |
|
|
|
{{ template "prom_right_table_head" }} |
|
<tr><th colspan="2">Overview</th></tr> |
|
<tr> |
|
<td>User CPU</td> |
|
<td>{{ template "prom_query_drilldown" (args (printf "sum(irate(node_cpu_seconds_total{job='node',instance='%s',mode='user'}[5m])) * 100 / count(count by (cpu)(node_cpu_seconds_total{job='node',instance='%s'}))" .Params.instance .Params.instance) "%" "printf.1f") }}</td> |
|
</tr> |
|
<tr> |
|
<td>System CPU</td> |
|
<td>{{ template "prom_query_drilldown" (args (printf "sum(irate(node_cpu_seconds_total{job='node',instance='%s',mode='system'}[5m])) * 100 / count(count by (cpu)(node_cpu_seconds_total{job='node',instance='%s'}))" .Params.instance .Params.instance) "%" "printf.1f") }}</td> |
|
</tr> |
|
<tr> |
|
<td>Memory Total</td> |
|
<td>{{ template "prom_query_drilldown" (args (printf "node_memory_MemTotal_bytes{job='node',instance='%s'}" .Params.instance) "B" "humanize1024") }}</td> |
|
</tr> |
|
<tr> |
|
<td>Memory Free</td> |
|
<td>{{ template "prom_query_drilldown" (args (printf "node_memory_MemFree_bytes{job='node',instance='%s'}" .Params.instance) "B" "humanize1024") }}</td> |
|
</tr> |
|
<tr> |
|
<th colspan="2">Network</th> |
|
</tr> |
|
{{ range printf "node_network_receive_bytes_total{job='node',instance='%s',device!='lo'}" .Params.instance | query | sortByLabel "device" }} |
|
<tr> |
|
<td>{{ .Labels.device }} Received</td> |
|
<td>{{ template "prom_query_drilldown" (args (printf "irate(node_network_receive_bytes_total{job='node',instance='%s',device='%s'}[5m])" .Labels.instance .Labels.device) "B/s" "humanize") }}</td> |
|
</tr> |
|
<tr> |
|
<td>{{ .Labels.device }} Transmitted</td> |
|
<td>{{ template "prom_query_drilldown" (args (printf "irate(node_network_transmit_bytes_total{job='node',instance='%s',device='%s'}[5m])" .Labels.instance .Labels.device) "B/s" "humanize") }}</td> |
|
</tr> |
|
{{ end }} |
|
</tr> |
|
<tr> |
|
<th colspan="2">Disks</th> |
|
</tr> |
|
{{ range printf "node_disk_io_time_seconds_total{job='node',instance='%s',device!~'^(md\\\\d+$|dm-)'}" .Params.instance | query | sortByLabel "device" }} |
|
<tr> |
|
<td>{{ .Labels.device }} Utilization</td> |
|
<td>{{ template "prom_query_drilldown" (args (printf "irate(node_disk_io_time_seconds_total{job='node',instance='%s',device='%s'}[5m]) * 100" .Labels.instance .Labels.device) "%" "printf.1f") }}</td> |
|
</tr> |
|
{{ end }} |
|
{{ range printf "node_disk_io_time_seconds_total{job='node',instance='%s'}" .Params.instance | query | sortByLabel "device" }} |
|
<tr> |
|
<td>{{ .Labels.device }} Throughput</td> |
|
<td>{{ template "prom_query_drilldown" (args (printf "irate(node_disk_read_bytes_total{job='node',instance='%s',device='%s'}[5m]) + irate(node_disk_written_bytes_total{job='node',instance='%s',device='%s'}[5m])" .Labels.instance .Labels.device .Labels.instance .Labels.device) "B/s" "humanize") }}</td> |
|
</tr> |
|
{{ end }} |
|
<tr> |
|
<th colspan="2">Filesystem Fullness</th> |
|
</tr> |
|
{{ define "roughlyNearZero" }} |
|
{{ if gt .1 . }}~0{{ else }}{{ printf "%.1f" . }}{{ end }} |
|
{{ end }} |
|
{{ range printf "node_filesystem_size_bytes{job='node',instance='%s'}" .Params.instance | query | sortByLabel "mountpoint" }} |
|
<tr> |
|
<td>{{ .Labels.mountpoint }}</td> |
|
<td>{{ template "prom_query_drilldown" (args (printf "100 - node_filesystem_avail_bytes{job='node',instance='%s',mountpoint='%s'} / node_filesystem_size_bytes{job='node'} * 100" .Labels.instance .Labels.mountpoint) "%" "roughlyNearZero") }}</td> |
|
</tr> |
|
{{ end }} |
|
</tr> |
|
{{ template "prom_right_table_tail" }} |
|
|
|
{{ template "prom_content_tail" . }} |
|
|
|
{{ template "tail" }}
|
|
|