mirror of
https://github.com/prometheus/prometheus
synced 2024-12-24 07:23:02 +00:00
568ecce421
Move tables into the content area so that graphs and very long/wide tables are readable. The issue is present on the node-overview and node-disk pages when the tables are very long and wide. E.g., the host has lots of NICs, disks and filesystems and the filesystem names are very long. We have very long lists of long Docker filesystem names in our Kubernetes clusters. I know people don't really care about the console templates anymore but they are still useful in some cases and the queries are a nice reference for beginners.
78 lines
3.4 KiB
HTML
78 lines
3.4 KiB
HTML
{{ template "head" . }}
|
|
|
|
{{ template "prom_content_head" . }}
|
|
<h1>Node Disk - {{ reReplaceAll "(.*?://)([^:/]+?)(:\\d+)?/.*" "$2" .Params.instance }}</h1>
|
|
|
|
<h3>Disk I/O Utilization</h3>
|
|
<div id="diskioGraph"></div>
|
|
<script>
|
|
new PromConsole.Graph({
|
|
node: document.querySelector("#diskioGraph"),
|
|
expr: [
|
|
"irate(node_disk_io_time_ms{job='node',instance='{{ .Params.instance }}',device!~'^(md\\\\d+$|dm-)'}[5m]) / 1000 * 100",
|
|
],
|
|
min: 0,
|
|
name: '[[ device ]]',
|
|
yUnits: "%",
|
|
yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
|
|
yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
|
|
yTitle: 'Disk I/O Utilization'
|
|
})
|
|
</script>
|
|
<h3>Filesystem Usage</h3>
|
|
<div id="fsGraph"></div>
|
|
<script>
|
|
new PromConsole.Graph({
|
|
node: document.querySelector("#fsGraph"),
|
|
expr: "100 - node_filesystem_free{job='node',instance='{{ .Params.instance }}'} / node_filesystem_size{job='node'} * 100",
|
|
min: 0,
|
|
max: 100,
|
|
name: '[[ mountpoint ]]',
|
|
yUnits: "%",
|
|
yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
|
|
yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
|
|
yTitle: 'Filesystem Fullness'
|
|
})
|
|
</script>
|
|
|
|
{{ template "prom_right_table_head" }}
|
|
<th colspan="2">Disks</th>
|
|
</tr>
|
|
{{ range printf "node_disk_io_time_ms{job='node',instance='%s'}" .Params.instance | query | sortByLabel "device" }}
|
|
<th colspan="2">{{ .Labels.device }}</th>
|
|
<tr>
|
|
<td>Utilization</td>
|
|
<td>{{ template "prom_query_drilldown" (args (printf "irate(node_disk_io_time_ms{job='node',instance='%s',device='%s'}[5m]) / 1000 * 100" .Labels.instance .Labels.device) "%" "printf.1f") }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Throughput</td>
|
|
<td>{{ template "prom_query_drilldown" (args (printf "irate(node_disk_sectors_read{job='node',instance='%s',device='%s'}[5m]) * 512 + irate(node_disk_sectors_written{job='node',instance='%s',device='%s'}[5m]) * 512" .Labels.instance .Labels.device .Labels.instance .Labels.device) "B/s" "humanize") }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Avg Read Time</td>
|
|
<td>{{ template "prom_query_drilldown" (args (printf "irate(node_disk_read_time_ms{job='node',instance='%s',device='%s'}[5m]) / 1000 / irate(node_disk_reads_completed{job='node',instance='%s',device='%s'}[5m])" .Labels.instance .Labels.device .Labels.instance .Labels.device) "s" "humanize") }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Avg Write Time</td>
|
|
<td>{{ template "prom_query_drilldown" (args (printf "irate(node_disk_write_time_ms{job='node',instance='%s',device='%s'}[5m]) / 1000 / irate(node_disk_writes_completed{job='node',instance='%s',device='%s'}[5m])" .Labels.instance .Labels.device .Labels.instance .Labels.device) "s" "humanize") }}</td>
|
|
</tr>
|
|
{{ end }}
|
|
<th colspan="2">Filesystem Fullness</th>
|
|
</tr>
|
|
{{ define "roughlyNearZero" }}
|
|
{{ if gt .1 . }}~0{{ else }}{{ printf "%.1f" . }}{{ end }}
|
|
{{ end }}
|
|
{{ range printf "node_filesystem_size{job='node',instance='%s'}" .Params.instance | query | sortByLabel "mountpoint" }}
|
|
<tr>
|
|
<td>{{ .Labels.mountpoint }}</td>
|
|
<td>{{ template "prom_query_drilldown" (args (printf "100 - node_filesystem_free{job='node',instance='%s',mountpoint='%s'} / node_filesystem_size{job='node'} * 100" .Labels.instance .Labels.mountpoint) "%" "roughlyNearZero") }}</td>
|
|
</tr>
|
|
{{ end }}
|
|
<tr>
|
|
</tr>
|
|
{{ template "prom_right_table_tail" }}
|
|
|
|
{{ template "prom_content_tail" . }}
|
|
|
|
{{ template "tail" }}
|