2015-01-23 17:40:48 +00:00
{{ template "head" . }}
2014-11-20 18:41:25 +00:00
2015-01-23 17:40:48 +00:00
{{ template "prom_right_table_head" }}
2014-11-20 18:41:25 +00:00
< tr > < th colspan = "2" > Overview< / th > < / tr >
< tr >
< td > User CPU< / td >
2018-06-08 13:01:05 +00:00
< 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 >
2014-11-20 18:41:25 +00:00
< / tr >
< tr >
< td > System CPU< / td >
2018-06-08 13:01:05 +00:00
< 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 >
2014-11-20 18:41:25 +00:00
< / tr >
< tr >
< td > Memory Total< / td >
2018-06-08 13:01:05 +00:00
< td > {{ template "prom_query_drilldown" (args (printf "node_memory_MemTotal_bytes{job='node',instance='%s'}" .Params.instance) "B" "humanize1024") }}< / td >
2014-11-20 18:41:25 +00:00
< / tr >
< tr >
< td > Memory Free< / td >
2018-06-08 13:01:05 +00:00
< td > {{ template "prom_query_drilldown" (args (printf "node_memory_MemFree_bytes{job='node',instance='%s'}" .Params.instance) "B" "humanize1024") }}< / td >
2014-11-20 18:41:25 +00:00
< / tr >
< tr >
< th colspan = "2" > Network< / th >
< / tr >
2018-06-08 13:01:05 +00:00
{{ range printf "node_network_receive_bytes_total{job='node',instance='%s',device!='lo'}" .Params.instance | query | sortByLabel "device" }}
2014-11-20 18:41:25 +00:00
< tr >
< td > {{ .Labels.device }} Received< / td >
2018-06-08 13:01:05 +00:00
< 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 >
2014-11-20 18:41:25 +00:00
< / tr >
< tr >
< td > {{ .Labels.device }} Transmitted< / td >
2018-06-08 13:01:05 +00:00
< 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 >
2014-11-20 18:41:25 +00:00
< / tr >
{{ end }}
< tr >
< th colspan = "2" > Disks< / th >
< / tr >
2018-06-08 13:01:05 +00:00
{{ range printf "node_disk_io_time_seconds_total{job='node',instance='%s',device!~'^(md\\\\d+$|dm-)'}" .Params.instance | query | sortByLabel "device" }}
2014-11-20 18:41:25 +00:00
< tr >
< td > {{ .Labels.device }} Utilization< / td >
2018-06-08 13:01:05 +00:00
< 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 >
2014-11-20 18:41:25 +00:00
< / tr >
{{ end }}
2018-06-08 13:01:05 +00:00
{{ range printf "node_disk_io_time_seconds_total{job='node',instance='%s'}" .Params.instance | query | sortByLabel "device" }}
2014-11-20 18:41:25 +00:00
< tr >
< td > {{ .Labels.device }} Throughput< / td >
2018-06-08 13:01:05 +00:00
< 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 >
2014-11-20 18:41:25 +00:00
< / tr >
{{ end }}
< tr >
< th colspan = "2" > Filesystem Fullness< / th >
< / tr >
2015-01-23 17:40:48 +00:00
{{ define "roughlyNearZero" }}
2015-02-19 10:06:23 +00:00
{{ if gt .1 . }}~0{{ else }}{{ printf "%.1f" . }}{{ end }}
2014-11-20 18:41:25 +00:00
{{ end }}
2018-06-08 13:01:05 +00:00
{{ range printf "node_filesystem_size_bytes{job='node',instance='%s'}" .Params.instance | query | sortByLabel "mountpoint" }}
2014-11-20 18:41:25 +00:00
< tr >
2015-07-22 16:20:14 +00:00
< td > {{ .Labels.mountpoint }}< / td >
2018-06-08 13:01:05 +00:00
< 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 >
2014-11-20 18:41:25 +00:00
< / tr >
{{ end }}
2021-06-28 12:44:36 +00:00
2015-01-23 17:40:48 +00:00
{{ template "prom_right_table_tail" }}
2014-11-20 18:41:25 +00:00
2021-06-28 12:44:36 +00:00
{{ 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 >
2015-01-23 17:40:48 +00:00
{{ template "prom_content_tail" . }}
2014-11-20 18:41:25 +00:00
2015-01-23 17:40:48 +00:00
{{ template "tail" }}