8000 feature: added extensions custom schema search to the Statements plugin · postgrespro/mamonsu@109af29 · GitHub
[go: up one dir, main page]

Skip to content

Commit 109af29

Browse files
committed
feature: added extensions custom schema search to the Statements plugin
1 parent 26769d4 commit 109af29

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

mamonsu/plugins/pgsql/statements.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@
77

88
class PgStatStatement(Plugin):
99
AgentPluginType = "pg"
10-
# TODO: добавить выбор схемы
1110
query = """
12-
SELECT {0}
13-
FROM public.{1};
11+
SELECT {metrics}
12+
FROM {extension_schema}.{extension};
1413
"""
1514
query_info = """
16-
SELECT {0}
15+
SELECT {metrics}
1716
FROM public.pg_stat_statements_info;
1817
"""
1918
key = "pgsql."
@@ -86,15 +85,17 @@ def run(self, zbx):
8685
self.disable_and_exit_if_extension_is_not_installed(ext="pg_stat_statements/pgpro_stats")
8786
if Pooler.is_pgpro() or Pooler.is_pgpro_ee():
8887
extension = "pgpro_stats_statements"
88+
extension_schema = self.extension_schema(extension="pgpro_stats")
8989
else:
9090
extension = "pg_stat_statements"
91+
extension_schema = self.extension_schema(extension="pg_stat_statements")
9192
if Pooler.server_version_greater("14"):
9293
self.Items[5][1] = self.Items[5][1].format("total_exec_time+total_plan_time")
9394
all_items = self.Items + self.Items_pg_13
9495
columns = [x[1] for x in all_items]
9596
info_items = self.Items_pg_14
9697
info_params = [x[1] for x in info_items]
97-
info_result = Pooler.query(self.query_info.format(", ".join(info_params)))
98+
info_result = Pooler.query(self.query_info.format(metrics=(", ".join(info_params))))
9899
for key, value in enumerate(info_result[0]):
99100
zbx_key, value = "pgsql.{0}".format(
100101
info_items[key][0]), int(value)
@@ -107,7 +108,7 @@ def run(self, zbx):
107108
self.Items[5][1] = self.Items[5][1].format("total_time")
108109
all_items = self.Items
109110
columns = [x[1] for x in all_items]
110-
result = Pooler.query(self.query.format(", ".join(columns), extension))
111+
result = Pooler.query(self.query.format(metrics=(", ".join(columns)), extension_schema=extension_schema, extension=extension))
111112
for key, value in enumerate(result[0]):
112113
zbx_key, value = "pgsql.{0}".format(all_items[key][0]), int(value)
113114
zbx.send(zbx_key, value, all_items[key][4])
@@ -173,14 +174,14 @@ def keys_and_queries(self, template_zabbix):
173174
for i, item in enumerate(all_items):
174175
keys = item[0].split("[")
175176
result.append("{0}[*],$2 $1 -c \"{1}\"".format("{0}{1}.{2}".format(self.key, keys[0], keys[1][:-1]),
176-
self.query.format(item[1], extension)))
177+
self.query.format(metrics=item[1], extension_schema=extension_schema, extension=extension)))
177178

178179
if LooseVersion(self.VersionPG) >= LooseVersion("14"):
179180
all_items = self.Items_pg_14
180181
for i, item in enumerate(all_items):
181182
keys = item[0].split("[")
182183
result.append("{0}[*],$2 $1 -c \"{1}\"".format("{0}{1}.{2}".format(self.key, keys[0], keys[1][:-1]),
183-
self.query_info.format(item[1])))
184+
self.query_info.format(metrics=(item[1]))))
184185
return template_zabbix.key_and_query(result)
185186
else:
186187
return

0 commit comments

Comments
 (0)
0