Module: check_mk
Branch: master
Commit: 1a6a1d0e35b4d2f94c0a881191c89e9af04c9f20
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=1a6a1d0e35b4d2…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Feb 9 14:13:29 2015 +0100
Conflicts:
ChangeLog
checks/df.include
---
.werks/1992 | 10 ++++++++++
ChangeLog | 1 +
checks/df.include | 14 ++++++++++----
3 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/.werks/1992 b/.werks/1992
new file mode 100644
index 0000000..c76873d
--- /dev/null
+++ b/.werks/1992
@@ -0,0 +1,10 @@
+Title: df: Show usages near to zero with a higher precision - not simply as 0.00
+Level: 1
+Component: checks
+Class: feature
+Compatible: compat
+State: unknown
+Version: 1.2.7i1
+Date: 1423487531
+
+
diff --git a/ChangeLog b/ChangeLog
index 87f8c6b..81d6f85 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -81,6 +81,7 @@
NOTE: Please refer to the migration notes!
* 1939 check_ftp: changed service description if the ftp port differs from 21...
NOTE: Please refer to the migration notes!
+ * 1992 df: Show usages near to zero with a higher precision - not simply as 0.00
* 1457 FIX: logins: new check renamed from "users" check...
NOTE: Please refer to the migration notes!
* 1762 FIX: lnx_thermal: Now ignoring trip points with level 0...
diff --git a/checks/df.include b/checks/df.include
index 79ee7fe..1254572 100644
--- a/checks/df.include
+++ b/checks/df.include
@@ -311,10 +311,16 @@ def df_check_filesystem_single(hostname, mountpoint, size_mb,
avail_mb, reserved
perfdata = [(perf_var, str(used_mb) + 'MB', warn_mb, crit_mb, 0, size_mb)]
perfdata.append(('fs_size', str(size_mb) + 'MB'))
- if size_gb < 10240:
- infotext = "%.1f%% used (%.2f of %.2f GB)" % (used_perc, used_mb /
1024.0, size_gb)
- else:
- infotext = "%.1f%% used (%.2f of %.2f TB)" % (used_perc, used_mb /
1024.0 / 1024.0, size_gb / 1024.0)
+ used_hr = get_bytes_human_readable(used_mb * 1024 * 1024)
+ size_hr = get_bytes_human_readable(size_mb * 1024 * 1024)
+ # If both numbers end with both MB or GB or TB, then drop the first one
+ if used_hr[-2:] == size_hr[-2:]:
+ used_hr = used_hr[:-3]
+
+ # Show enough decimal digits so that very small percentages are still
+ # visible!
+ perc_precision = max(1, 2 - int(round(math.log(used_perc, 10))))
+ infotext = "%%.%df%%%% used (%%s of %%s), %%s" % perc_precision %
(used_perc, used_hr, size_hr, levels["levels_text"])
status = 0
if warn_mb <= -1: