diff --git a/node-mixin/alerts/alerts.libsonnet b/node-mixin/alerts/alerts.libsonnet index c66d76db..17bbda8b 100644 --- a/node-mixin/alerts/alerts.libsonnet +++ b/node-mixin/alerts/alerts.libsonnet @@ -7,11 +7,11 @@ { alert: 'NodeFilesystemSpaceFillingUp', expr: ||| - predict_linear(node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s}[6h], 24*60*60) < 0 + predict_linear(node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s}[6h], 24*60*60) < 0 and - node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_size{%(nodeExporterSelector)s,%(fsSelectors)s} < 0.4 + node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_size{%(nodeExporterSelector)s,%(fsSelectors)s} < 0.4 and - node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 + node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 ||| % $._config, 'for': '1h', labels: { @@ -24,11 +24,11 @@ { alert: 'NodeFilesystemSpaceFillingUp', expr: ||| - predict_linear(node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s}[6h], 4*60*60) < 0 + predict_linear(node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s}[6h], 4*60*60) < 0 and - node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_size{%(nodeExporterSelector)s,%(fsSelectors)s} < 0.2 + node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_size{%(nodeExporterSelector)s,%(fsSelectors)s} < 0.2 and - node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 + node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 ||| % $._config, 'for': '1h', labels: { @@ -41,9 +41,9 @@ { alert: 'NodeFilesystemOutOfSpace', expr: ||| - node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_size{%(nodeExporterSelector)s,%(fsSelectors)s} * 100 < 5 + node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_size{%(nodeExporterSelector)s,%(fsSelectors)s} * 100 < 5 and - node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 + node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 ||| % $._config, 'for': '1h', labels: { @@ -56,9 +56,9 @@ { alert: 'NodeFilesystemOutOfSpace', expr: ||| - node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_size{%(nodeExporterSelector)s,%(fsSelectors)s} * 100 < 3 + node_filesystem_avail{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_size{%(nodeExporterSelector)s,%(fsSelectors)s} * 100 < 3 and - node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 + node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 ||| % $._config, 'for': '1h', labels: { @@ -71,11 +71,11 @@ { alert: 'NodeFilesystemFilesFillingUp', expr: ||| - predict_linear(node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s}[6h], 24*60*60) < 0 + predict_linear(node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s}[6h], 24*60*60) < 0 and - node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_files{%(nodeExporterSelector)s,%(fsSelectors)s} < 0.4 + node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_files{%(nodeExporterSelector)s,%(fsSelectors)s} < 0.4 and - node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 + node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 ||| % $._config, 'for': '1h', labels: { @@ -88,11 +88,11 @@ { alert: 'NodeFilesystemFilesFillingUp', expr: ||| - predict_linear(node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s}[6h], 4*60*60) < 0 + predict_linear(node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s}[6h], 4*60*60) < 0 and - node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_files{%(nodeExporterSelector)s,%(fsSelectors)s} < 0.2 + node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_files{%(nodeExporterSelector)s,%(fsSelectors)s} < 0.2 and - node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 + node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 ||| % $._config, 'for': '1h', labels: { @@ -105,9 +105,9 @@ { alert: 'NodeFilesystemOutOfFiles', expr: ||| - node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_files{%(nodeExporterSelector)s,%(fsSelectors)s} * 100 < 5 + node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_files{%(nodeExporterSelector)s,%(fsSelectors)s} * 100 < 5 and - node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 + node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 ||| % $._config, 'for': '1h', labels: { @@ -120,9 +120,9 @@ { alert: 'NodeFilesystemOutOfSpace', expr: ||| - node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_files{%(nodeExporterSelector)s,%(fsSelectors)s} * 100 < 3 + node_filesystem_files_free{%(nodeExporterSelector)s,%(fsSelectors)s} / node_filesystem_files{%(nodeExporterSelector)s,%(fsSelectors)s} * 100 < 3 and - node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 + node_filesystem_readonly{%(nodeExporterSelector)s,%(fsSelectors)s} == 0 ||| % $._config, 'for': '1h', labels: { diff --git a/node-mixin/dashboards/node.libsonnet b/node-mixin/dashboards/node.libsonnet index ba092cf7..4594e3ed 100644 --- a/node-mixin/dashboards/node.libsonnet +++ b/node-mixin/dashboards/node.libsonnet @@ -60,9 +60,9 @@ local gauge = promgrafonnet.gauge; local memoryGauge = gauge.new( 'Memory Usage', ||| - node_memory_MemAvailable{%(nodeExporterSelector)s, instance="$instance"} + node_memory_MemAvailable{%(nodeExporterSelector)s, instance="$instance"} / - node_memory_MemTotal{%(nodeExporterSelector)s, instance="$instance"} + node_memory_MemTotal{%(nodeExporterSelector)s, instance="$instance"} ||| % $._config, ).withLowerBeingBetter(); diff --git a/node-mixin/rules/rules.libsonnet b/node-mixin/rules/rules.libsonnet index 7c70540e..72b18b9c 100644 --- a/node-mixin/rules/rules.libsonnet +++ b/node-mixin/rules/rules.libsonnet @@ -29,9 +29,9 @@ // Can go over 100%. >100% is bad. record: 'instance:node_cpu_saturation_load1:', expr: ||| - sum by (instance) (node_load1{%(nodeExporterSelector)s}) + sum by (instance) (node_load1{%(nodeExporterSelector)s}) / - instance:node_num_cpu:sum + instance:node_num_cpu:sum ||| % $._config, }, { @@ -52,7 +52,7 @@ / node_memory_MemTotal{%(nodeExporterSelector)s} ) - |||, + ||| % $._config, }, { record: 'instance:node_memory_swap_io_bytes:sum_rate',