@@ -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