mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-30 07:59:40 -08:00
77 lines
3.3 KiB
HTML
77 lines
3.3 KiB
HTML
|
{{template "head" .}}
|
||
|
|
||
|
{{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 "rate(node_disk_io_time_ms{job='node',instance='%s',device='%s'}[5m]) / 1000 * 100" .Labels.instance .Labels.device) "%" "printf.3g") }}</td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>Throughput</td>
|
||
|
<td>{{ template "prom_query_drilldown" (args (printf "rate(node_disk_sectors_read{job='node',instance='%s',device='%s'}[5m]) * 512 + rate(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 "rate(node_disk_read_time_ms{job='node',instance='%s',device='%s'}[5m]) / 1000 / rate(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 "rate(node_disk_write_time_ms{job='node',instance='%s',device='%s'}[5m]) / 1000 / rate(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 "%.3g" . }}{{ end }}
|
||
|
{{ end }}
|
||
|
{{ range printf "node_filesystem_size{job='node',instance='%s'}" .Params.instance | query | sortByLabel "filesystem"}}
|
||
|
<tr>
|
||
|
<td>{{.Labels.filesystem}}</td>
|
||
|
<td>{{ template "prom_query_drilldown" (args (printf "100 - node_filesystem_free{job='node',instance='%s',filesystem='%s'} / node_filesystem_size{job='node'} * 100" .Labels.instance .Labels.filesystem) "%" "roughlyNearZero") }}</td>
|
||
|
</tr>
|
||
|
{{ end }}
|
||
|
<tr>
|
||
|
</tr>
|
||
|
{{template "prom_right_table_tail"}}
|
||
|
|
||
|
{{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: [
|
||
|
"rate(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: '[[ filesystem ]]',
|
||
|
yUnits: "%",
|
||
|
yAxisFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
|
||
|
yHoverFormatter: PromConsole.NumberFormatter.humanizeNoSmallPrefix,
|
||
|
yTitle: 'Filesystem Fullness'
|
||
|
})
|
||
|
</script>
|
||
|
{{template "prom_content_tail" .}}
|
||
|
|
||
|
{{template "tail"}}
|