summaryrefslogtreecommitdiffstats
path: root/plugins/check_swap.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/check_swap.c')
-rw-r--r--plugins/check_swap.c31
1 files changed, 23 insertions, 8 deletions
diff --git a/plugins/check_swap.c b/plugins/check_swap.c
index cb95949a..dbf53a00 100644
--- a/plugins/check_swap.c
+++ b/plugins/check_swap.c
@@ -90,6 +90,14 @@ int main(int argc, char **argv) {
90 exit(STATE_UNKNOWN); 90 exit(STATE_UNKNOWN);
91 } 91 }
92 92
93 if (verbose) {
94 printf("Swap retrieval result:\n"
95 "\tFree: %llu\n"
96 "\tUsed: %llu\n"
97 "\tTotal: %llu\n",
98 data.metrics.free, data.metrics.used, data.metrics.total);
99 }
100
93 double percent_used; 101 double percent_used;
94 mp_check overall = mp_check_init(); 102 mp_check overall = mp_check_init();
95 if (config.output_format_is_set) { 103 if (config.output_format_is_set) {
@@ -164,7 +172,8 @@ int main(int argc, char **argv) {
164 } 172 }
165 173
166 if (config.warn_is_set) { 174 if (config.warn_is_set) {
167 if ((config.warn.is_percentage && (percent_used >= (100 - (double)config.warn.value))) || config.warn.value >= data.metrics.free) { 175 if ((config.warn.is_percentage && (percent_used >= (100 - (double)config.warn.value))) ||
176 config.warn.value >= data.metrics.free) {
168 sc1 = mp_set_subcheck_state(sc1, STATE_WARNING); 177 sc1 = mp_set_subcheck_state(sc1, STATE_WARNING);
169 } 178 }
170 } 179 }
@@ -174,13 +183,14 @@ int main(int argc, char **argv) {
174 } 183 }
175 184
176 if (config.crit_is_set) { 185 if (config.crit_is_set) {
177 if ((config.crit.is_percentage && (percent_used >= (100 - (double)config.crit.value))) || config.crit.value >= data.metrics.free) { 186 if ((config.crit.is_percentage && (percent_used >= (100 - (double)config.crit.value))) ||
187 config.crit.value >= data.metrics.free) {
178 sc1 = mp_set_subcheck_state(sc1, STATE_CRITICAL); 188 sc1 = mp_set_subcheck_state(sc1, STATE_CRITICAL);
179 } 189 }
180 } 190 }
181 191
182 xasprintf(&sc1.output, _("%g%% free (%lluMiB out of %lluMiB)"), (100 - percent_used), data.metrics.free >> 20, 192 xasprintf(&sc1.output, _("%g%% free (%lluMiB out of %lluMiB)"), (100 - percent_used),
183 data.metrics.total >> 20); 193 data.metrics.free >> 20, data.metrics.total >> 20);
184 194
185 overall.summary = "Swap"; 195 overall.summary = "Swap";
186 mp_add_subcheck_to_check(&overall, sc1); 196 mp_add_subcheck_to_check(&overall, sc1);
@@ -193,7 +203,9 @@ int check_swap(float free_swap_mb, float total_swap_mb, swap_config config) {
193 return config.no_swap_state; 203 return config.no_swap_state;
194 } 204 }
195 205
196 uint64_t free_swap = (uint64_t)(free_swap_mb * (1024 * 1024)); /* Convert back to bytes as warn and crit specified in bytes */ 206 uint64_t free_swap =
207 (uint64_t)(free_swap_mb *
208 (1024 * 1024)); /* Convert back to bytes as warn and crit specified in bytes */
197 209
198 if (!config.crit.is_percentage && config.crit.value >= free_swap) { 210 if (!config.crit.is_percentage && config.crit.value >= free_swap) {
199 return STATE_CRITICAL; 211 return STATE_CRITICAL;
@@ -202,13 +214,16 @@ int check_swap(float free_swap_mb, float total_swap_mb, swap_config config) {
202 return STATE_WARNING; 214 return STATE_WARNING;
203 } 215 }
204 216
205 uint64_t usage_percentage = (uint64_t)((total_swap_mb - free_swap_mb) / total_swap_mb) * HUNDRED_PERCENT; 217 uint64_t usage_percentage =
218 (uint64_t)((total_swap_mb - free_swap_mb) / total_swap_mb) * HUNDRED_PERCENT;
206 219
207 if (config.crit.is_percentage && config.crit.value != 0 && usage_percentage >= (HUNDRED_PERCENT - config.crit.value)) { 220 if (config.crit.is_percentage && config.crit.value != 0 &&
221 usage_percentage >= (HUNDRED_PERCENT - config.crit.value)) {
208 return STATE_CRITICAL; 222 return STATE_CRITICAL;
209 } 223 }
210 224
211 if (config.warn.is_percentage && config.warn.value != 0 && usage_percentage >= (HUNDRED_PERCENT - config.warn.value)) { 225 if (config.warn.is_percentage && config.warn.value != 0 &&
226 usage_percentage >= (HUNDRED_PERCENT - config.warn.value)) {
212 return STATE_WARNING; 227 return STATE_WARNING;
213 } 228 }
214 229