Skip to content

Commit 488ede9

Browse files
committed
feature: added new Server Version metric
1 parent 894adbf commit 488ede9

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

mamonsu/plugins/pgsql/health.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,24 @@ class PgHealth(Plugin):
1818
query_uptime = """
1919
SELECT ceil(extract(epoch FROM pg_postmaster_start_time()));
2020
"""
21+
query_version = """
22+
SELECT div(setting::int, 10000) || '.' || mod(setting::int, 10000)
23+
FROM pg_catalog.pg_settings WHERE name = 'server_version_num';
24+
"""
25+
2126
key_ping = "pgsql.ping{0}"
2227
key_uptime = "pgsql.uptime{0}"
2328
key_cache = "pgsql.cache{0}"
29+
key_version = "pgsql.version{0}"
2430

2531
def run(self, zbx):
2632
start_time = time.time()
2733
Pooler.query(self.query_health)
2834
zbx.send(self.key_ping.format("[]"), (time.time() - start_time) * 1000)
2935
result = Pooler.query(self.query_uptime)
3036
zbx.send(self.key_uptime.format("[]"), int(result[0][0]))
37+
result = Pooler.query(self.query_version)
38+
zbx.send(self.key_version.format("[]"), result[0][0])
3139

3240
def items(self, template, dashboard=False):
3341
result = ""
@@ -56,6 +64,12 @@ def items(self, template, dashboard=False):
5664
"value_type": value_type,
5765
"delay": delay,
5866
"units": Plugin.UNITS.unixtime
67+
}) + template.item({
68+
"name": "PostgreSQL: server version",
69+
"key": self.right_type(self.key_version),
70+
"value_type": Plugin.VALUE_TYPE.text,
71+
"delay": delay,
72+
"units": Plugin.UNITS.none
5973
})
6074
if not dashboard:
6175
return result
@@ -96,5 +110,6 @@ def triggers(self, template, dashboard=False):
96110

97111
def keys_and_queries(self, template_zabbix):
98112
result = ["{0}[*],$2 $1 -c \"{1}\"".format(self.key_ping.format(""), self.query_health),
99-
"{0}[*],$2 $1 -c \"{1}\"".format(self.key_uptime.format(""), self.query_uptime)]
113+
"{0}[*],$2 $1 -c \"{1}\"".format(self.key_uptime.format(""), self.query_uptime),
114+
"{0}[*],$2 $1 -c \"{1}\"".format(self.key_version.format(""), self.query_version)]
100115
return template_zabbix.key_and_query(result)

0 commit comments

Comments
 (0)