aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorbeorn7 <beorn@grafana.com>2019-07-18 15:59:35 +0200
committerbeorn7 <beorn@grafana.com>2019-07-18 15:59:35 +0200
commite01d9f9e78536dbabf76836e355b4202535d690a (patch)
tree3feef92df914ccef7e40e665a46bef8c391f7b1e /docs
parentb8c4b0cb298bf63ca701073e921c65e5fc99a0d7 (diff)
downloadprometheus_node_collector-e01d9f9e78536dbabf76836e355b4202535d690a.tar.bz2
prometheus_node_collector-e01d9f9e78536dbabf76836e355b4202535d690a.tar.xz
prometheus_node_collector-e01d9f9e78536dbabf76836e355b4202535d690a.zip
Break out device in disk IO rules/dashboard
Signed-off-by: beorn7 <beorn@grafana.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/node-mixin/dashboards/use.libsonnet20
-rw-r--r--docs/node-mixin/rules/rules.libsonnet16
2 files changed, 14 insertions, 22 deletions
diff --git a/docs/node-mixin/dashboards/use.libsonnet b/docs/node-mixin/dashboards/use.libsonnet
index 23cd2ea..160cfd8 100644
--- a/docs/node-mixin/dashboards/use.libsonnet
+++ b/docs/node-mixin/dashboards/use.libsonnet
@@ -60,11 +60,11 @@ local g = import 'grafana-builder/grafana.libsonnet';
60 // 1 second per second doing I/O, normalize by metric cardinality for stacked charts. 60 // 1 second per second doing I/O, normalize by metric cardinality for stacked charts.
61 g.queryPanel(||| 61 g.queryPanel(|||
62 ( 62 (
63 instance:node_disk_io_time_seconds:rate1m{%(nodeExporterSelector)s} 63 instance_device:node_disk_io_time_seconds:rate1m{%(nodeExporterSelector)s}
64 / ignoring (instance) group_left 64 / ignoring (instance, device) group_left
65 count without (instance) (instance:node_disk_io_time_seconds:rate1m{%(nodeExporterSelector)s}) 65 count without (instance, device) (instance_device:node_disk_io_time_seconds:rate1m{%(nodeExporterSelector)s})
66 ) 66 )
67 ||| % $._config, '{{instance}}', legendLink) + 67 ||| % $._config, '{{instance}} {{device}}', legendLink) +
68 g.stack + 68 g.stack +
69 { yaxes: g.yaxes({ format: 'percentunit', max: 1 }) }, 69 { yaxes: g.yaxes({ format: 'percentunit', max: 1 }) },
70 ) 70 )
@@ -72,11 +72,11 @@ local g = import 'grafana-builder/grafana.libsonnet';
72 g.panel('Disk IO Saturation') + 72 g.panel('Disk IO Saturation') +
73 g.queryPanel(||| 73 g.queryPanel(|||
74 ( 74 (
75 instance:node_disk_io_time_weighted_seconds:rate1m{%(nodeExporterSelector)s} 75 instance_device:node_disk_io_time_weighted_seconds:rate1m{%(nodeExporterSelector)s}
76 / ignoring (instance) group_left 76 / ignoring (instance, device) group_left
77 count without (instance) (instance:node_disk_io_time_weighted_seconds:rate1m{%(nodeExporterSelector)s}) 77 count without (instance, device) (instance_device:node_disk_io_time_weighted_seconds:rate1m{%(nodeExporterSelector)s})
78 ) 78 )
79 ||| % $._config, '{{instance}}', legendLink) + 79 ||| % $._config, '{{instance}} {{device}}', legendLink) +
80 g.stack + 80 g.stack +
81 { yaxes: g.yaxes({ format: 'percentunit', max: 1 }) }, 81 { yaxes: g.yaxes({ format: 'percentunit', max: 1 }) },
82 ) 82 )
@@ -167,12 +167,12 @@ local g = import 'grafana-builder/grafana.libsonnet';
167 g.row('Disk') 167 g.row('Disk')
168 .addPanel( 168 .addPanel(
169 g.panel('Disk IO Utilisation') + 169 g.panel('Disk IO Utilisation') +
170 g.queryPanel('instance:node_disk_io_time_seconds:rate1m{%(nodeExporterSelector)s, instance="$instance"}' % $._config, 'Utilisation') + 170 g.queryPanel('instance_device:node_disk_io_time_seconds:rate1m{%(nodeExporterSelector)s, instance="$instance"}' % $._config, 'Utilisation {{device}}') +
171 { yaxes: g.yaxes('percentunit') }, 171 { yaxes: g.yaxes('percentunit') },
172 ) 172 )
173 .addPanel( 173 .addPanel(
174 g.panel('Disk IO Saturation') + 174 g.panel('Disk IO Saturation') +
175 g.queryPanel('instance:node_disk_io_time_weighted_seconds:rate1m{%(nodeExporterSelector)s, instance="$instance"}' % $._config, 'Saturation') + 175 g.queryPanel('instance_device:node_disk_io_time_weighted_seconds:rate1m{%(nodeExporterSelector)s, instance="$instance"}' % $._config, 'Saturation {{device}}') +
176 { yaxes: g.yaxes('percentunit') }, 176 { yaxes: g.yaxes('percentunit') },
177 ) 177 )
178 ) 178 )
diff --git a/docs/node-mixin/rules/rules.libsonnet b/docs/node-mixin/rules/rules.libsonnet
index ad1b717..b5efc6a 100644
--- a/docs/node-mixin/rules/rules.libsonnet
+++ b/docs/node-mixin/rules/rules.libsonnet
@@ -61,24 +61,16 @@
61 }, 61 },
62 { 62 {
63 // Disk utilisation (seconds spent, 1 second rate) 63 // Disk utilisation (seconds spent, 1 second rate)
64 // TODO: This should probably not aggregate over all devices but 64 record: 'instance_device:node_disk_io_time_seconds:rate1m',
65 // keep them separate.
66 record: 'instance:node_disk_io_time_seconds:rate1m',
67 expr: ||| 65 expr: |||
68 sum without (device) ( 66 rate(node_disk_io_time_seconds_total{%(nodeExporterSelector)s, %(diskDeviceSelector)s}[1m])
69 rate(node_disk_io_time_seconds_total{%(nodeExporterSelector)s, %(diskDeviceSelector)s}[1m])
70 )
71 ||| % $._config, 67 ||| % $._config,
72 }, 68 },
73 { 69 {
74 // Disk saturation (weighted seconds spent, 1 second rate) 70 // Disk saturation (weighted seconds spent, 1 second rate)
75 // TODO: This should probably not aggregate over all devices but 71 record: 'instance_device:node_disk_io_time_weighted_seconds:rate1m',
76 // keep them separate.
77 record: 'instance:node_disk_io_time_weighted_seconds:rate1m',
78 expr: ||| 72 expr: |||
79 sum without (device) ( 73 rate(node_disk_io_time_weighted_seconds_total{%(nodeExporterSelector)s, %(diskDeviceSelector)s}[1m])
80 rate(node_disk_io_time_weighted_seconds_total{%(nodeExporterSelector)s, %(diskDeviceSelector)s}[1m])
81 )
82 ||| % $._config, 74 ||| % $._config,
83 }, 75 },
84 // TODO: For the following rules, consider configurable filtering to exclude more network 76 // TODO: For the following rules, consider configurable filtering to exclude more network