Skip to content

Commit 1430318

Browse files
committed
fix: merged invalid indexes metrics
1 parent c56e9f7 commit 1430318

File tree

1 file changed

+13
-30
lines changed

1 file changed

+13
-30
lines changed

mamonsu/plugins/pgsql/databases.py

Lines changed: 13 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ 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 " \
24-
"AND substring(pg_catalog.pg_class.relname, '([^_]+$)') ~ '^cc{0}';"
23+
"AND pg_catalog.pg_index.indexrelid = pg_catalog.pg_class.oid;" \
2524

2625
# queries for zabbix agent
2726
query_agent_discovery = "SELECT json_build_object ('data',json_agg(json_build_object('{#DATABASE}',d.datname)))" \
@@ -32,8 +31,7 @@ class Databases(Plugin):
3231
key_db_age = "pgsql.database.max_age{0}"
3332
key_db_bloating_tables = "pgsql.database.bloating_tables{0}"
3433
key_autovacumm = "pgsql.autovacumm.count{0}"
35-
key_invalid_rebuilt_indexes = "pgsql.database.invalid_rebuilt_indexes{0}"
36-
key_invalid_old_indexes = "pgsql.database.invalid_old_indexes{0}"
34+
key_invalid_indexes = "pgsql.database.invalid_indexes{0}"
3735

3836
DEFAULT_CONFIG = {'min_rows': str(50), 'bloat_scale': str(0.2)}
3937

@@ -59,20 +57,14 @@ def run(self, zbx):
5957
zbx.send(
6058
'pgsql.database.bloating_tables[{0}]'.format(info[0]),
6159
int(bloat_count))
62-
invalid_rebuilt_indexes_count = Pooler.query(
63-
self.query_invalid_indexes.format('new'),
60+
invalid_indexes_count = Pooler.query(
61+
self.query_invalid_indexes,
6462
info[0])[0][0]
65-
invalid_old_indexes_count = Pooler.query(
66-
self.query_invalid_indexes.format('old'),
67-
info[0])[0][0]
68-
zbx.send(
69-
'pgsql.database.invalid_rebuilt_indexes[{0}]'.format(info[0]),
70-
int(invalid_rebuilt_indexes_count))
7163
zbx.send(
72-
'pgsql.database.invalid_old_indexes[{0}]'.format(info[0]),
73-
int(invalid_old_indexes_count))
64+
'pgsql.database.invalid_indexes[{0}]'.format(info[0]),
65+
int(invalid_indexes_count))
7466
zbx.send('pgsql.database.discovery[]', zbx.json({'data': dbs}))
75-
del dbs, bloat_count
67+
del dbs, bloat_count, invalid_indexes_count
7668

7769
result = Pooler.run_sql_type('count_autovacuum')
7870
zbx.send('pgsql.autovacumm.count[]', int(result[0][0]))
@@ -123,11 +115,8 @@ def discovery_rules(self, template, dashboard=False):
123115
{'key': self.right_type(self.key_db_bloating_tables, var_discovery="{#DATABASE},"),
124116
'name': 'Count of bloating tables in database: {#DATABASE}',
125117
'delay': self.plugin_config('interval')},
126-
{'key': self.right_type(self.key_invalid_rebuilt_indexes, var_discovery="{#DATABASE},"),
127-
'name': 'Count of indexes corrupted during REINDEX in database: {#DATABASE}',
128-
'delay': self.plugin_config('interval')},
129-
{'key': self.right_type(self.key_invalid_old_indexes, var_discovery="{#DATABASE},"),
130-
'name': 'Count of old invalid indexes in database: {#DATABASE}',
118+
{'key': self.right_type(self.key_invalid_indexes, var_discovery="{#DATABASE},"),
119+
'name': 'Count of invalid indexes in database: {#DATABASE}',
131120
'delay': self.plugin_config('interval')}
132121
]
133122
graphs = [
@@ -158,13 +147,9 @@ def discovery_rules(self, template, dashboard=False):
158147
}
159148
]
160149
triggers = [{
161-
'name': 'PostgreSQL indexes corrupted during REINDEX in database '
150+
'name': 'PostgreSQL invalid indexes in database '
162151
'{#DATABASE} (hostname={HOSTNAME} value={ITEM.LASTVALUE})',
163-
'expression': '{#TEMPLATE:pgsql.database.invalid_rebuilt_indexes[{#DATABASE}].last()}>0'},
164-
{
165-
'name': 'PostgreSQL old invalid indexes in database '
166-
'{#DATABASE} (hostname={HOSTNAME} value={ITEM.LASTVALUE})',
167-
'expression': '{#TEMPLATE:pgsql.database.invalid_old_indexes[{#DATABASE}].last()}>0'}
152+
'expression': '{#TEMPLATE:pgsql.database.invalid_indexes[{#DATABASE}].last()}>0'}
168153
]
169154
return template.discovery_rule(rule=rule, conditions=conditions, items=items, graphs=graphs, triggers=triggers)
170155

@@ -179,8 +164,6 @@ def keys_and_queries(self, template_zabbix):
179164
self.query_bloating_tables.format(
180165
self.plugin_config('bloat_scale'),
181166
self.plugin_config('min_rows'))),
182-
'{0},$3 $2 -d "$1" -c "{1}"'.format(self.key_invalid_rebuilt_indexes.format("[*]"),
183-
self.query_invalid_indexes.format('new')),
184-
'{0},$3 $2 -d "$1" -c "{1}"'.format(self.key_invalid_old_indexes.format("[*]"),
185-
self.query_invalid_indexes.format('old'))]
167+
'{0},$3 $2 -d "$1" -c "{1}"'.format(self.key_invalid_indexes.format("[*]"),
168+
self.query_invalid_indexes)]
186169
return template_zabbix.key_and_query(result)

0 commit comments

Comments
 (0)