Skip to content

Commit 72a3187

Browse files
committed
fix: fixed extension schema search
1 parent b8dcb12 commit 72a3187

File tree

3 files changed

+35
-26
lines changed

3 files changed

+35
-26
lines changed

mamonsu/plugins/pgsql/driver/pool.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,15 @@ def extension_schema(self, extension, db=None):
172172
db = self._normalize_db(db)
173173
if db in self._cache['extension_schema'][extension]:
174174
return self._cache['extension_schema'][extension][db]
175-
self._cache['extension_schema'][extension][db] = self.query(
176-
"select n.nspname from pg_extension e "
177-
"join pg_namespace n "
178-
"on e.extnamespace = n.oid where e.extname = '{0}'".format(extension), db)[0][0]
179-
return self._cache['extension_schema'][extension][db]
175+
try:
176+
self._cache['extension_schema'][extension][db] = self.query(
177+
"select n.nspname from pg_extension e "
178+
"join pg_namespace n "
179+
"on e.extnamespace = n.oid where e.extname = '{0}'".format(extension), db)[0][0]
180+
return self._cache['extension_schema'][extension][db]
181+
except:
182+
self._connections[db].log.info('{0} is not installed'.format(extension))
183+
self._cache['pgproee'][db] = False
180184

181185
def databases(self):
182186
result, databases = self.query(

mamonsu/plugins/pgsql/pg_buffercache.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,11 @@ def graphs(self, template, dashboard=False):
6262
'position': 2}}]
6363

6464
def keys_and_queries(self, template_zabbix):
65-
result = []
66-
for i, item in enumerate(self.Items):
67-
result.append('{0}[*],$2 $1 -c "{1}"'.format(self.key.format('.' + item[0]),
68-
self.query[i].format(self.extension_schema(extension='pg_buffercache'))))
69-
return template_zabbix.key_and_query(result)
65+
if self.extension_installed('pg_buffercache'):
66+
result = []
67+
for i, item in enumerate(self.Items):
68+
result.append('{0}[*],$2 $1 -c "{1}"'.format(self.key.format('.' + item[0]),
69+
self.query[i].format(self.extension_schema(extension='pg_buffercache'))))
70+
return template_zabbix.key_and_query(result)
71+
else:
72+
return

mamonsu/plugins/pgsql/pg_stat_statement.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -150,24 +150,26 @@ def graphs(self, template, dashboard=False):
150150
return []
151151

152152
def keys_and_queries(self, template_zabbix):
153-
result = []
154-
if LooseVersion(self.VersionPG) < LooseVersion('13'):
155-
self.Items[5][1] = self.Items[5][1].format("total_time")
156-
all_items = self.Items
157-
else:
158-
self.Items[5][1] = self.Items[5][1].format("total_exec_time+total_plan_time")
159-
all_items = self.Items + self.Items_pg_13
153+
if self.extension_installed('pg_stat_statements'):
154+
result = []
155+
if LooseVersion(self.VersionPG) < LooseVersion('13'):
156+
self.Items[5][1] = self.Items[5][1].format("total_time")
157+
all_items = self.Items
158+
else:
159+
self.Items[5][1] = self.Items[5][1].format("total_exec_time+total_plan_time")
160+
all_items = self.Items + self.Items_pg_13
160161

161-
for i, item in enumerate(all_items):
162-
keys = item[0].split('[')
163-
result.append('{0}[*],$2 $1 -c "{1}"'.format('{0}{1}.{2}'.format(self.key, keys[0], keys[1][:-1]),
164-
self.query.format(item[1])))
165-
166-
if LooseVersion(self.VersionPG) >= LooseVersion('14'):
167-
all_items = self.Items_pg_14
168162
for i, item in enumerate(all_items):
169163
keys = item[0].split('[')
170164
result.append('{0}[*],$2 $1 -c "{1}"'.format('{0}{1}.{2}'.format(self.key, keys[0], keys[1][:-1]),
171-
self.query_info.format(item[1])))
165+
self.query.format(item[1])))
172166

173-
return template_zabbix.key_and_query(result)
167+
if LooseVersion(self.VersionPG) >= LooseVersion('14'):
168+
all_items = self.Items_pg_14
169+
for i, item in enumerate(all_items):
170+
keys = item[0].split('[')
171+
result.append('{0}[*],$2 $1 -c "{1}"'.format('{0}{1}.{2}'.format(self.key, keys[0], keys[1][:-1]),
172+
self.query_info.format(item[1])))
173+
return template_zabbix.key_and_query(result)
174+
else:
175+
return

0 commit comments

Comments
 (0)