|
|
@ -23,7 +23,8 @@ local g = import 'grafana-builder/grafana.libsonnet'; |
|
|
|
{ yaxes: g.yaxes({ format: 'percentunit', max: 1 }) }, |
|
|
|
{ yaxes: g.yaxes({ format: 'percentunit', max: 1 }) }, |
|
|
|
) |
|
|
|
) |
|
|
|
.addPanel( |
|
|
|
.addPanel( |
|
|
|
// TODO: Is this a useful panel? |
|
|
|
// TODO: Is this a useful panel? At least there should be some explanation how load |
|
|
|
|
|
|
|
// average relates to the "CPU saturation" in the title. |
|
|
|
g.panel('CPU Saturation (load1 per CPU)') + |
|
|
|
g.panel('CPU Saturation (load1 per CPU)') + |
|
|
|
g.queryPanel(||| |
|
|
|
g.queryPanel(||| |
|
|
|
( |
|
|
|
( |
|
|
@ -58,6 +59,8 @@ local g = import 'grafana-builder/grafana.libsonnet'; |
|
|
|
g.panel('Disk IO Utilisation') + |
|
|
|
g.panel('Disk IO Utilisation') + |
|
|
|
// Full utilisation would be all disks on each node spending an average of |
|
|
|
// Full utilisation would be all disks on each node spending an average of |
|
|
|
// 1 second per second doing I/O, normalize by metric cardinality for stacked charts. |
|
|
|
// 1 second per second doing I/O, normalize by metric cardinality for stacked charts. |
|
|
|
|
|
|
|
// TODO: Does the partition by device make sense? Using the most utilized device per |
|
|
|
|
|
|
|
// instance might make more sense. |
|
|
|
g.queryPanel(||| |
|
|
|
g.queryPanel(||| |
|
|
|
( |
|
|
|
( |
|
|
|
instance_device:node_disk_io_time_seconds:rate1m{%(nodeExporterSelector)s} |
|
|
|
instance_device:node_disk_io_time_seconds:rate1m{%(nodeExporterSelector)s} |
|
|
@ -113,7 +116,7 @@ local g = import 'grafana-builder/grafana.libsonnet'; |
|
|
|
.addRow( |
|
|
|
.addRow( |
|
|
|
g.row('Storage') |
|
|
|
g.row('Storage') |
|
|
|
.addPanel( |
|
|
|
.addPanel( |
|
|
|
g.panel('Disk Capacity') + |
|
|
|
g.panel('Disk Space Utilisation') + |
|
|
|
g.queryPanel(||| |
|
|
|
g.queryPanel(||| |
|
|
|
( |
|
|
|
( |
|
|
|
sum without (device) ( |
|
|
|
sum without (device) ( |
|
|
@ -145,6 +148,8 @@ local g = import 'grafana-builder/grafana.libsonnet'; |
|
|
|
{ yaxes: g.yaxes('percentunit') }, |
|
|
|
{ yaxes: g.yaxes('percentunit') }, |
|
|
|
) |
|
|
|
) |
|
|
|
.addPanel( |
|
|
|
.addPanel( |
|
|
|
|
|
|
|
// TODO: Is this a useful panel? At least there should be some explanation how load |
|
|
|
|
|
|
|
// average relates to the "CPU saturation" in the title. |
|
|
|
g.panel('CPU Saturation (Load1)') + |
|
|
|
g.panel('CPU Saturation (Load1)') + |
|
|
|
g.queryPanel('instance:node_cpu_saturation_load1:{%(nodeExporterSelector)s, instance="$instance"}' % $._config, 'Saturation') + |
|
|
|
g.queryPanel('instance:node_cpu_saturation_load1:{%(nodeExporterSelector)s, instance="$instance"}' % $._config, 'Saturation') + |
|
|
|
{ yaxes: g.yaxes('percentunit') }, |
|
|
|
{ yaxes: g.yaxes('percentunit') }, |
|
|
|