Skip to content

Commit 837db9e

Browse files
committed
fix: added invalid indexes metrics active creation check via pg_locks
1 parent fef026c commit 837db9e

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

mamonsu/plugins/pgsql/databases.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ class Databases(Plugin):
2020
query_invalid_indexes = "SELECT count(*) " \
2121
"FROM pg_catalog.pg_class, pg_catalog.pg_index " \
2222
"WHERE pg_catalog.pg_index.indisvalid = false " \
23-
"AND pg_catalog.pg_index.indexrelid = pg_catalog.pg_class.oid;" \
23+
"AND pg_catalog.pg_index.indexrelid = pg_catalog.pg_class.oid " \
24+
"AND pg_catalog.pg_index.indexrelid NOT IN (SELECT DISTINCT relation FROM pg_catalog.pg_locks);"
2425

2526
# queries for zabbix agent
2627
query_agent_discovery = "SELECT json_build_object ('data',json_agg(json_build_object('{#DATABASE}',d.datname)))" \
@@ -36,8 +37,6 @@ class Databases(Plugin):
3637
DEFAULT_CONFIG = {'min_rows': str(50), 'bloat_scale': str(0.2)}
3738

3839
def run(self, zbx):
39-
if Pooler.server_version_greater('12'):
40-
self.query_invalid_indexes = self.query_invalid_indexes[:-1] + " AND pg_catalog.pg_class.oid NOT IN (SELECT index_relid FROM pg_catalog.pg_stat_progress_create_index);"
4140
result = Pooler.query('select \
4241
datname, pg_database_size(datname::text), age(datfrozenxid) \
4342
from pg_catalog.pg_database where datistemplate = false')
@@ -154,8 +153,6 @@ def discovery_rules(self, template, dashboard=False):
154153
return template.discovery_rule(rule=rule, conditions=conditions, items=items, graphs=graphs, triggers=triggers)
155154

156155
def keys_and_queries(self, template_zabbix):
157-
if LooseVersion(self.VersionPG) >= LooseVersion('12'):
158-
self.query_invalid_indexes = self.query_invalid_indexes[:-1] + " AND pg_catalog.pg_class.oid NOT IN (SELECT index_relid FROM pg_catalog.pg_stat_progress_create_index);"
159156
result = ['{0},$2 $1 -c "{1}"'.format(self.key_autovacumm.format("[*]"), Pooler.SQL['count_autovacuum'][0]),
160157
'{0},$2 $1 -c "{1}"'.format(self.key_db_discovery.format("[*]"), self.query_agent_discovery),
161158
'{0},echo "{1}" | $3 $2 -v p1="$1"'.format(self.key_db_size.format("[*]"), self.query_size),

0 commit comments

Comments
 (0)