Module: check_mk
Branch: master
Commit: 69f0ea53bee57d6d2b85789ef7cb5c2172de887a
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=69f0ea53bee57d…
Author: Florian Kromer <fk(a)mathias-kettner.de>
Date: Thu Apr 25 14:55:38 2019 +0200
postgres_stats: refactoring 3
Change-Id: Ie3a0b33aeaac032f647b8b91e07429be64024ff6
---
checks/postgres_stats | 34 +++++++++-------------
.../checks/generictests/datasets/postgres_stats.py | 7 +++--
2 files changed, 18 insertions(+), 23 deletions(-)
diff --git a/checks/postgres_stats b/checks/postgres_stats
index 13d1841..9104f85 100644
--- a/checks/postgres_stats
+++ b/checks/postgres_stats
@@ -93,31 +93,23 @@ def check_postgres_stats(item, params, parsed):
return
count = len(never_checked)
+ levels = params.get("never_analyze_vacuum")
infotext = "%d tables were never %s: %s%s" % (count, text,
"/".join(never_checked[:5]),
" (first 5 shown)" if count
> 5 else "")
- if "never_analyze_vacuum" in params:
- last_ts = get_item_state(key)
- if last_ts is None:
- set_item_state(key, now)
- yield 0, infotext
- return
-
- age = now - last_ts
- warn, crit = params["never_analyze_vacuum"]
- state = 0
- if age >= crit:
- state = 2
- elif age >= warn:
- state = 1
- if state:
- infotext += " (warn/crit at %s/%s)" % \
- (get_age_human_readable(warn),
- get_age_human_readable(crit),)
- yield state, infotext
+ yield int(levels is None), infotext
- else:
- yield 1, infotext
+ last_ts = get_item_state(key)
+ if last_ts is None:
+ set_item_state(key, now)
+ return
+ yield check_levels(
+ now - last_ts,
+ None,
+ levels,
+ human_readable_func=get_age_human_readable,
+ infoname='Unhandled tables for',
+ )
check_info['postgres_stats'] = {
diff --git a/tests/unit/checks/generictests/datasets/postgres_stats.py
b/tests/unit/checks/generictests/datasets/postgres_stats.py
index 087e883..647eed2 100644
--- a/tests/unit/checks/generictests/datasets/postgres_stats.py
+++ b/tests/unit/checks/generictests/datasets/postgres_stats.py
@@ -36,12 +36,14 @@ checks = {
(u'ANALYZE adwebconnect', {'never_analyze_vacuum': (1000, 1100)},
[
(0, u'Table: auftrag', []),
(0, 'Time since last vacuum: 674 d', []),
- (2, u'2 tables were never analyzed: anrede/auftrag_mediadaten (warn/crit
at 16 m/18 m)', []),
+ (0, '2 tables were never analyzed: anrede/auftrag_mediadaten', []),
+ (2, u'Unhandled tables for: 20 m (warn/crit at 16 m/18 m)', []),
]),
(u'ANALYZE adwebconnect', {}, [
(0, u'Table: auftrag', []),
(0, 'Time since last vacuum: 674 d', []),
(1, u'2 tables were never analyzed: anrede/auftrag_mediadaten', []),
+ (0, u'Unhandled tables for: 20 m', []),
]),
(u'ANALYZE postgres', {}, [
(0, 'No never checked tables', []),
@@ -49,7 +51,8 @@ checks = {
(u'VACUUM adwebconnect', {}, [
(0, u'Table: auftrag', []),
(0, 'Time since last vacuum: 674 d', []),
- (1, u'2 tables were never vacuumed: anrede/auftrag_mediadaten', []),
+ (1, '2 tables were never vacuumed: anrede/auftrag_mediadaten', []),
+ (0, u'Unhandled tables for: 20 m', []),
]),
(u'VACUUM postgres', {}, [
(0, 'No never checked tables', []),