From 7e5586f54dc25b3dcdadd0770c0eb1fa2229c2ff Mon Sep 17 00:00:00 2001 From: Vitaly Zhuravlev Date: Thu, 12 May 2022 22:38:18 +0400 Subject: [PATCH 1/2] Update units of network ad disk graphs https://prometheus.io/docs/prometheus/latest/querying/functions/#rate rate() calculates per-second average rate, therefore Bps units should be used for disks. In networking bandwidth throughput is usually measured in bits/s so units are changed accordingly. Signed-off-by: Vitaly Zhuravlev --- docs/node-mixin/lib/prom-mixin.libsonnet | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/node-mixin/lib/prom-mixin.libsonnet b/docs/node-mixin/lib/prom-mixin.libsonnet index e545651d08..2bbd4adfb8 100644 --- a/docs/node-mixin/lib/prom-mixin.libsonnet +++ b/docs/node-mixin/lib/prom-mixin.libsonnet @@ -212,7 +212,7 @@ local gaugePanel = grafana70.panel.gauge; }, ], yaxes: [ - self.yaxe(format='bytes'), + self.yaxe(format='Bps'), self.yaxe(format='s'), ], }, @@ -266,28 +266,30 @@ local gaugePanel = grafana70.panel.gauge; local networkReceived = graphPanel.new( 'Network Received', + description="Network received (bits/s)", datasource='$datasource', span=6, - format='bytes', + format='bps', min=0, fill=0, ) .addTarget(prometheus.target( - 'rate(node_network_receive_bytes_total{%(nodeExporterSelector)s, instance="$instance", device!="lo"}[$__rate_interval])' % config, + 'rate(node_network_receive_bytes_total{%(nodeExporterSelector)s, instance="$instance", device!="lo"}[$__rate_interval]) * 8' % config, legendFormat='{{device}}', )), local networkTransmitted = graphPanel.new( 'Network Transmitted', + description="Network transmitted (bits/s)", datasource='$datasource', span=6, - format='bytes', + format='bps', min=0, fill=0, ) .addTarget(prometheus.target( - 'rate(node_network_transmit_bytes_total{%(nodeExporterSelector)s, instance="$instance", device!="lo"}[$__rate_interval])' % config, + 'rate(node_network_transmit_bytes_total{%(nodeExporterSelector)s, instance="$instance", device!="lo"}[$__rate_interval]) * 8' % config, legendFormat='{{device}}', )), From 14d311a9a81e9a012218bfe389aa28e4ecf84569 Mon Sep 17 00:00:00 2001 From: Vitaly Zhuravlev Date: Thu, 12 May 2022 23:23:31 +0400 Subject: [PATCH 2/2] Change io time units to %util When appying rate() to seconds we have 'seconds per second' or fractions of the second, so actually it actually can be from 0 to 1. Also update intervalFactor to 1 for better rates. Signed-off-by: Vitaly Zhuravlev --- docs/node-mixin/lib/prom-mixin.libsonnet | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/node-mixin/lib/prom-mixin.libsonnet b/docs/node-mixin/lib/prom-mixin.libsonnet index 2bbd4adfb8..1135eb378f 100644 --- a/docs/node-mixin/lib/prom-mixin.libsonnet +++ b/docs/node-mixin/lib/prom-mixin.libsonnet @@ -191,14 +191,17 @@ local gaugePanel = grafana70.panel.gauge; .addTarget(prometheus.target( 'rate(node_disk_read_bytes_total{%(nodeExporterSelector)s, instance="$instance", %(diskDeviceSelector)s}[$__rate_interval])' % config, legendFormat='{{device}} read', + intervalFactor=1, )) .addTarget(prometheus.target( 'rate(node_disk_written_bytes_total{%(nodeExporterSelector)s, instance="$instance", %(diskDeviceSelector)s}[$__rate_interval])' % config, legendFormat='{{device}} written', + intervalFactor=1, )) .addTarget(prometheus.target( 'rate(node_disk_io_time_seconds_total{%(nodeExporterSelector)s, instance="$instance", %(diskDeviceSelector)s}[$__rate_interval])' % config, legendFormat='{{device}} io time', + intervalFactor=1, )) + { seriesOverrides: [ @@ -213,7 +216,7 @@ local gaugePanel = grafana70.panel.gauge; ], yaxes: [ self.yaxe(format='Bps'), - self.yaxe(format='s'), + self.yaxe(format='percentunit'), ], }, @@ -266,7 +269,7 @@ local gaugePanel = grafana70.panel.gauge; local networkReceived = graphPanel.new( 'Network Received', - description="Network received (bits/s)", + description='Network received (bits/s)', datasource='$datasource', span=6, format='bps', @@ -276,12 +279,13 @@ local gaugePanel = grafana70.panel.gauge; .addTarget(prometheus.target( 'rate(node_network_receive_bytes_total{%(nodeExporterSelector)s, instance="$instance", device!="lo"}[$__rate_interval]) * 8' % config, legendFormat='{{device}}', + intervalFactor=1, )), local networkTransmitted = graphPanel.new( 'Network Transmitted', - description="Network transmitted (bits/s)", + description='Network transmitted (bits/s)', datasource='$datasource', span=6, format='bps', @@ -291,6 +295,7 @@ local gaugePanel = grafana70.panel.gauge; .addTarget(prometheus.target( 'rate(node_network_transmit_bytes_total{%(nodeExporterSelector)s, instance="$instance", device!="lo"}[$__rate_interval]) * 8' % config, legendFormat='{{device}}', + intervalFactor=1, )), local cpuRow =