From 5a7b85876d6108a91f0d8673c0d7eca38687671b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Knecht?= Date: Thu, 24 Oct 2019 18:13:36 +0200 Subject: [PATCH] docs/node-mixin: Improve memory pressure rule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `instance:node_memory_swap_io_pages:rate1m` rule was intended to measure the amount of memory pressure a system is under, but its name is a bit misleading (it specifically refers to swap), and the rate of `node_vmstat_pgmajfault` is a better metric for memory pressure (see #1524). This commit renames `instance:node_memory_swap_io_pages:rate1m` to `instance:node_vmstat_pgmajfault:rate1m`, and defines it as `rate(node_vmstat_pgmajfault{%(nodeExporterSelector)s}[1m])`. The dashboards are updated accordingly. Signed-off-by: BenoƮt Knecht --- docs/node-mixin/dashboards/use.libsonnet | 8 ++++---- docs/node-mixin/rules/rules.libsonnet | 8 ++------ 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/node-mixin/dashboards/use.libsonnet b/docs/node-mixin/dashboards/use.libsonnet index 8463ab95..d2a568f5 100644 --- a/docs/node-mixin/dashboards/use.libsonnet +++ b/docs/node-mixin/dashboards/use.libsonnet @@ -53,8 +53,8 @@ local g = import 'grafana-builder/grafana.libsonnet'; { yaxes: g.yaxes({ format: 'percentunit', max: 1 }) }, ) .addPanel( - g.panel('Memory Saturation (Swapped Pages)') + - g.queryPanel('instance:node_memory_swap_io_pages:rate1m{%(nodeExporterSelector)s}' % $._config, '{{instance}}', legendLink) + + g.panel('Memory Saturation (Major Page Faults)') + + g.queryPanel('instance:node_vmstat_pgmajfault:rate1m{%(nodeExporterSelector)s}' % $._config, '{{instance}}', legendLink) + g.stack + { yaxes: g.yaxes('rps') }, ) @@ -201,8 +201,8 @@ local g = import 'grafana-builder/grafana.libsonnet'; { yaxes: g.yaxes('percentunit') }, ) .addPanel( - g.panel('Memory Saturation (pages swapped per second)') + - g.queryPanel('instance:node_memory_swap_io_pages:rate1m{%(nodeExporterSelector)s, instance="$instance"}' % $._config, 'Swap IO') + + g.panel('Memory Saturation (Major Page Faults)') + + g.queryPanel('instance:node_vmstat_pgmajfault:rate1m{%(nodeExporterSelector)s, instance="$instance"}' % $._config, 'Major page faults') + { yaxes: g.yaxes('short'), legend+: { show: false }, diff --git a/docs/node-mixin/rules/rules.libsonnet b/docs/node-mixin/rules/rules.libsonnet index 85f7618d..6b396e3b 100644 --- a/docs/node-mixin/rules/rules.libsonnet +++ b/docs/node-mixin/rules/rules.libsonnet @@ -50,13 +50,9 @@ ||| % $._config, }, { - record: 'instance:node_memory_swap_io_pages:rate1m', + record: 'instance:node_vmstat_pgmajfault:rate1m', expr: ||| - ( - rate(node_vmstat_pgpgin{%(nodeExporterSelector)s}[1m]) - + - rate(node_vmstat_pgpgout{%(nodeExporterSelector)s}[1m]) - ) + rate(node_vmstat_pgmajfault{%(nodeExporterSelector)s}[1m]) ||| % $._config, }, {