diff options
Diffstat (limited to 'plugins/check_swap.c')
| -rw-r--r-- | plugins/check_swap.c | 31 |
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 | ||
