Skip to content

Commit 12094cb

Browse files
committed
refactor: add zabbix agent support
1 parent b5fd168 commit 12094cb

File tree

1 file changed

+49
-29
lines changed

1 file changed

+49
-29
lines changed

mamonsu/plugins/common/health.py

Lines changed: 49 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77

88
class Health(Plugin):
9+
AgentPluginType = 'sys'
910

1011
DEFAULT_CONFIG = {'max_memory_usage': str(40 * 1024 * 1024)}
1112

@@ -23,38 +24,57 @@ def run(self, zbx):
2324

2425
def items(self, template):
2526
# see supervisor.py:
26-
result = template.item({
27-
'name': 'Mamonsu: plugin errors',
28-
'key': 'mamonsu.plugin.errors[]',
29-
'value_type': Plugin.VALUE_TYPE.text # text
30-
}) + template.item({
31-
'name': 'Mamonsu: plugin keep alive',
32-
'key': 'mamonsu.plugin.keepalive[]'
33-
})
34-
if platform.LINUX:
35-
result += template.item({
36-
'name': 'Mamonsu: rss memory max usage',
37-
'key': 'mamonsu.memory.rss[max]',
38-
'units': Plugin.UNITS.bytes
27+
if self.Type == "mamonsu":
28+
result = template.item({
29+
'name': 'Mamonsu: plugin errors',
30+
'key': 'mamonsu.plugin.errors[]',
31+
'value_type': Plugin.VALUE_TYPE.text # text
32+
}) + template.item({
33+
'name': 'Mamonsu: plugin keep alive',
34+
'key': self.right_type("mamonsu.plugin.keepalive{0}")
35+
})
36+
if platform.LINUX:
37+
result += template.item({
38+
'name': 'Mamonsu: rss memory max usage',
39+
'key': 'mamonsu.memory.rss[max]',
40+
'units': Plugin.UNITS.bytes
41+
})
42+
else:
43+
result = template.item({
44+
'name': 'Mamonsu: plugin keep alive',
45+
'key': self.right_type("mamonsu.plugin.keepalive{0}")
3946
})
4047
return result
4148

4249
def triggers(self, template):
43-
result = template.trigger({
44-
'name': 'Mamonsu plugin errors '
45-
'on {HOSTNAME}. {ITEM.LASTVALUE}',
46-
'expression': '{#TEMPLATE:mamonsu.plugin.errors[].strlen()'
47-
'}>1'
48-
}) + template.trigger({
49-
'name': 'Mamonsu nodata from {HOSTNAME}',
50-
'expression': '{#TEMPLATE:mamonsu.plugin.keepalive[]'
51-
'.nodata(180)}=1'
52-
})
53-
if platform.LINUX:
54-
result += template.trigger({
55-
'name': 'Mamonsu agent memory usage alert '
56-
'on {HOSTNAME}: {ITEM.LASTVALUE} bytes',
57-
'expression': '{#TEMPLATE:mamonsu.memory.rss[max].last()}'
58-
'>' + self.plugin_config('max_memory_usage')
50+
if self.Type == "mamonsu":
51+
result = template.trigger({
52+
'name': 'Mamonsu plugin errors '
53+
'on {HOSTNAME}. {ITEM.LASTVALUE}',
54+
'expression': '{#TEMPLATE:mamonsu.plugin.errors[].strlen()'
55+
'}>1'
56+
}) + template.trigger({
57+
'name': 'Mamonsu nodata from {HOSTNAME}',
58+
'expression': '{#TEMPLATE:' + self.right_type("mamonsu.plugin.keepalive{0}") +
59+
'.nodata(180)}=1'
60+
})
61+
if platform.LINUX:
62+
result += template.trigger({
63+
'name': 'Mamonsu agent memory usage alert '
64+
'on {HOSTNAME}: {ITEM.LASTVALUE} bytes',
65+
'expression': '{#TEMPLATE:mamonsu.memory.rss[max].last()}'
66+
'>' + self.plugin_config('max_memory_usage')
67+
})
68+
else:
69+
result = template.trigger({
70+
'name': 'Mamonsu nodata from {HOSTNAME}',
71+
'expression': '{#TEMPLATE:' + self.right_type("mamonsu.plugin.keepalive{0}") +
72+
'.nodata(180)}=1'
5973
})
6074
return result
75+
76+
def keys_and_queries(self, template_zabbix):
77+
result = []
78+
result.append('{0},{1}'.format("mamonsu.plugin.keepalive", "echo 0"))
79+
return template_zabbix.key_and_query(result)
80+

0 commit comments

Comments
 (0)