summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2024-11-10 01:58:41 +0100
committerLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2024-11-10 01:58:41 +0100
commit651925dffce258bf71a6717fd3d4e0969f29b6a6 (patch)
treea4f36840dfc454b3e9a03810cbe560813efa56de
parent4b7977b25bda44a9a781d53011b73e71f7167c02 (diff)
downloadmonitoring-plugins-651925dffce258bf71a6717fd3d4e0969f29b6a6.tar.gz
check_swap: Make check_swap work without thresholds
-rw-r--r--plugins/check_swap.c11
-rw-r--r--plugins/check_swap.d/check_swap.h7
-rw-r--r--plugins/check_swap.d/swap.c3
3 files changed, 9 insertions, 12 deletions
diff --git a/plugins/check_swap.c b/plugins/check_swap.c
index ef60ce1b..94f41a55 100644
--- a/plugins/check_swap.c
+++ b/plugins/check_swap.c
@@ -166,11 +166,6 @@ swap_config_wrapper process_arguments(int argc, char **argv) {
166 swap_config_wrapper conf_wrapper = {.errorcode = OK}; 166 swap_config_wrapper conf_wrapper = {.errorcode = OK};
167 conf_wrapper.config = swap_config_init(); 167 conf_wrapper.config = swap_config_init();
168 168
169 if (argc < 2) {
170 conf_wrapper.errorcode = ERROR;
171 return conf_wrapper;
172 }
173
174 static struct option longopts[] = {{"warning", required_argument, 0, 'w'}, {"critical", required_argument, 0, 'c'}, 169 static struct option longopts[] = {{"warning", required_argument, 0, 'w'}, {"critical", required_argument, 0, 'c'},
175 {"allswaps", no_argument, 0, 'a'}, {"no-swap", required_argument, 0, 'n'}, 170 {"allswaps", no_argument, 0, 'a'}, {"no-swap", required_argument, 0, 'n'},
176 {"verbose", no_argument, 0, 'v'}, {"version", no_argument, 0, 'V'}, 171 {"verbose", no_argument, 0, 'v'}, {"version", no_argument, 0, 'V'},
@@ -195,6 +190,7 @@ swap_config_wrapper process_arguments(int argc, char **argv) {
195 */ 190 */
196 size_t length; 191 size_t length;
197 length = strlen(optarg); 192 length = strlen(optarg);
193 conf_wrapper.config.warn.is_set = true;
198 194
199 if (optarg[length - 1] == '%') { 195 if (optarg[length - 1] == '%') {
200 /* It's percentage */ 196 /* It's percentage */
@@ -224,6 +220,7 @@ swap_config_wrapper process_arguments(int argc, char **argv) {
224 */ 220 */
225 size_t length; 221 size_t length;
226 length = strlen(optarg); 222 length = strlen(optarg);
223 conf_wrapper.config.crit.is_set = true;
227 224
228 if (optarg[length - 1] == '%') { 225 if (optarg[length - 1] == '%') {
229 /* It's percentage */ 226 /* It's percentage */
@@ -266,10 +263,6 @@ swap_config_wrapper process_arguments(int argc, char **argv) {
266 } 263 }
267 } 264 }
268 265
269 if (conf_wrapper.config.warn.value == 0 && conf_wrapper.config.crit.value == 0) {
270 conf_wrapper.errorcode = ERROR;
271 return conf_wrapper;
272 }
273 if ((conf_wrapper.config.warn.is_percentage == conf_wrapper.config.crit.is_percentage) && 266 if ((conf_wrapper.config.warn.is_percentage == conf_wrapper.config.crit.is_percentage) &&
274 (conf_wrapper.config.warn.value < conf_wrapper.config.crit.value)) { 267 (conf_wrapper.config.warn.value < conf_wrapper.config.crit.value)) {
275 /* This is NOT triggered if warn and crit are different units, e.g warn 268 /* This is NOT triggered if warn and crit are different units, e.g warn
diff --git a/plugins/check_swap.d/check_swap.h b/plugins/check_swap.d/check_swap.h
index 9e8be75f..e3e350c5 100644
--- a/plugins/check_swap.d/check_swap.h
+++ b/plugins/check_swap.d/check_swap.h
@@ -8,9 +8,10 @@
8#endif 8#endif
9 9
10typedef struct { 10typedef struct {
11 bool is_set;
11 bool is_percentage; 12 bool is_percentage;
12 uint64_t value; 13 uint64_t value;
13} threshold; 14} check_swap_threshold;
14 15
15typedef struct { 16typedef struct {
16 unsigned long long free; // Free swap in Bytes! 17 unsigned long long free; // Free swap in Bytes!
@@ -27,8 +28,8 @@ typedef struct {
27typedef struct { 28typedef struct {
28 bool allswaps; 29 bool allswaps;
29 int no_swap_state; 30 int no_swap_state;
30 threshold warn; 31 check_swap_threshold warn;
31 threshold crit; 32 check_swap_threshold crit;
32 bool on_aix; 33 bool on_aix;
33 int conversion_factor; 34 int conversion_factor;
34} swap_config; 35} swap_config;
diff --git a/plugins/check_swap.d/swap.c b/plugins/check_swap.d/swap.c
index 18db210c..293fdd71 100644
--- a/plugins/check_swap.d/swap.c
+++ b/plugins/check_swap.d/swap.c
@@ -10,6 +10,9 @@ swap_config swap_config_init(void) {
10 tmp.no_swap_state = STATE_CRITICAL; 10 tmp.no_swap_state = STATE_CRITICAL;
11 tmp.conversion_factor = SWAP_CONVERSION; 11 tmp.conversion_factor = SWAP_CONVERSION;
12 12
13 tmp.warn.is_set = false;
14 tmp.crit.is_set = false;
15
13#ifdef _AIX 16#ifdef _AIX
14 tmp.on_aix = true; 17 tmp.on_aix = true;
15#else 18#else