From 3ab1f41d12d55e1561bab58bc6f0ef1604c5dd65 Mon Sep 17 00:00:00 2001
From: beorn7 <beorn@grafana.com>
Date: Tue, 16 Jul 2019 19:34:27 +0200
Subject: [PATCH] Make more use of config.libsonnet

Signed-off-by: beorn7 <beorn@grafana.com>
---
 docs/node-mixin/config.libsonnet         |  7 ++++++-
 docs/node-mixin/dashboards/use.libsonnet | 12 ++++++------
 docs/node-mixin/rules/rules.libsonnet    |  4 ++--
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/docs/node-mixin/config.libsonnet b/docs/node-mixin/config.libsonnet
index 5406bdbc..de84b9ee 100644
--- a/docs/node-mixin/config.libsonnet
+++ b/docs/node-mixin/config.libsonnet
@@ -1,11 +1,16 @@
 {
   _config+:: {
     // Selectors are inserted between {} in Prometheus queries.
+
+    // Select the metrics coming from the node exporter.
     nodeExporterSelector: 'job="node-exporter"',
 
-    // Mainly extracted because they are repetitive, but also useful to customize.
+    // Select the fstype for filesystem-related queries.
     fsSelector: 'fstype=~"ext.|xfs",mountpoint!="/var/lib/docker/aufs"',
 
+    // Select the device for disk-related queries.
+    diskDeviceSelector: 'device=~"(sd|xvd).+"',
+
     grafana_prefix: '',
   },
 }
diff --git a/docs/node-mixin/dashboards/use.libsonnet b/docs/node-mixin/dashboards/use.libsonnet
index 96bf0f59..115e893c 100644
--- a/docs/node-mixin/dashboards/use.libsonnet
+++ b/docs/node-mixin/dashboards/use.libsonnet
@@ -104,17 +104,17 @@ local g = import 'grafana-builder/grafana.libsonnet';
             (
               sum without (device) (
                 max without (fstype, mountpoint) (
-                  node_filesystem_size_bytes{fstype=~"ext[24]"} - node_filesystem_avail_bytes{fstype=~"ext[24]"}
+                  node_filesystem_size_bytes{%(nodeExporterSelector)s, %(fsSelector)s} - node_filesystem_avail_bytes{%(nodeExporterSelector)s, %(fsSelector)s}
                 )
               ) 
             / ignoring (instance) group_left
               sum without (instance, device) (
                 max without (fstype, mountpoint) (
-                  node_filesystem_size_bytes{fstype=~"ext[24]"}
+                  node_filesystem_size_bytes{%(nodeExporterSelector)s, %(fsSelector)s}
                 )
               )
             )  
-          |||, '{{instance}}', legendLink) +
+          ||| % $._config, '{{instance}}', legendLink) +
           g.stack +
           { yaxes: g.yaxes({ format: 'percentunit', max: 1 }) },
         ),
@@ -182,11 +182,11 @@ local g = import 'grafana-builder/grafana.libsonnet';
           g.queryPanel(|||
             1 -
             (
-              sum(max without (mountpoint, fstype) (node_filesystem_avail_bytes{fstype=~"ext[24]"}))
+              sum(max without (mountpoint, fstype) (node_filesystem_avail_bytes{%(nodeExporterSelector)s, %(fsSelector)s}))
             /
-              sum(max without (mountpoint, fstype) (node_filesystem_size_bytes{fstype=~"ext[24]"}))
+              sum(max without (mountpoint, fstype) (node_filesystem_size_bytes{%(nodeExporterSelector)s, %(fsSelector)s}))
             )
-          |||, 'Disk') +
+          ||| % $._config, 'Disk') +
           { yaxes: g.yaxes('percentunit') },
         ),
       ),
diff --git a/docs/node-mixin/rules/rules.libsonnet b/docs/node-mixin/rules/rules.libsonnet
index 6bd39a5f..c4bc31a8 100644
--- a/docs/node-mixin/rules/rules.libsonnet
+++ b/docs/node-mixin/rules/rules.libsonnet
@@ -62,7 +62,7 @@
             record: 'instance:node_disk_utilisation:sum_irate',
             expr: |||
               sum without (device) (
-                irate(node_disk_io_time_seconds_total{%(nodeExporterSelector)s,device=~"(sd|xvd).+"}[1m])
+                irate(node_disk_io_time_seconds_total{%(nodeExporterSelector)s, %(diskDeviceSelector)s}[1m])
               )
             ||| % $._config,
           },
@@ -71,7 +71,7 @@
             record: 'instance:node_disk_saturation:sum_irate',
             expr: |||
               sum without (device) (
-                irate(node_disk_io_time_weighted_seconds_total{%(nodeExporterSelector)s,device=~"(sd|xvd).+"}[1m])
+                irate(node_disk_io_time_weighted_seconds_total{%(nodeExporterSelector)s, %(diskDeviceSelector)s}[1m])
               )
             ||| % $._config,
           },