Module: check_mk
Branch: master
Commit: eba9fefde0f6a4c898752e870b4dc3ed40ce1d55
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=eba9fefde0f6a4…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Feb 17 21:48:03 2011 +0100
df trend: Initializing trend with zero
Initializing the trend with a value of zero to prevent strange
random behaviour until the first full time intervall has passed.
Signed-off-by: Lars Michelsen <lm(a)mathias-kettner.de>
---
checks/df.include | 14 ++++++++------
modules/check_mk_base.py | 4 +++-
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/checks/df.include b/checks/df.include
index 2d5658f..a34054e 100644
--- a/checks/df.include
+++ b/checks/df.include
@@ -157,14 +157,16 @@ def df_check_filesystem(hostname, mountpoint, size_mb, avail_mb,
params):
range = levels["trend_range"] # in hours
range_sec = range * 3600.0
this_time = time.time()
- timdif, rate = get_counter("df.%s.delta" % mountpoint, this_time,
used_mb, True) # rate in MB/s, allow negative
+ # rate in MB/s, allow negative
+ timdif, rate = get_counter("df.%s.delta" % mountpoint, this_time,
used_mb, True)
perfdata.append(("growth", rate * range_sec))
- timedif, rate_avg = get_average("df.%s.trend" % mountpoint,
this_time, rate, range_sec)
-
- # rate_avg is groth in MB/sec
+ # average trend, initialize with zero
+ timedif, rate_avg = get_average("df.%s.trend" % mountpoint,
this_time, rate, range_sec, True)
+
+ # rate_avg is groth in MB/sec
trend = rate_avg * range_sec
sign = trend > 0 and "+" or ""
- infotext += ", trend: %s%s / %g hours" % (sign,
get_bytes_human_readable(trend * MB), range)
+ infotext += ", trend: %s%s / %g hours" % (sign,
get_bytes_human_readable(trend * MB), range)
# apply levels for absolute growth in MB / interval
trend_mb = levels.get("trend_mb")
@@ -211,7 +213,7 @@ def df_check_filesystem(hostname, mountpoint, size_mb, avail_mb,
params):
problems.append("only %.1fh until disk full!" %
hours_left)
elif hours_left <= wa * 2:
problems.append("time left: %.1fh" % hours_left)
-
+
except MKCounterWrapped:
# need more data for computing a trend
diff --git a/modules/check_mk_base.py b/modules/check_mk_base.py
index f3f2241..7bf3e35 100755
--- a/modules/check_mk_base.py
+++ b/modules/check_mk_base.py
@@ -636,10 +636,12 @@ def get_counter(countername, this_time, this_val,
allow_negative=False):
return timedif, per_sec
-def get_average(itemname, this_time, this_val, backlog):
+def get_average(itemname, this_time, this_val, backlog, initialize_zero = True):
# first call: take current value as average
if not itemname in g_counters:
+ if initialize_zero:
+ this_val = 0
g_counters[itemname] = (this_time, this_val)
return 1.0, this_val