@@ -20,8 +20,7 @@ class Databases(Plugin):
20
20
query_invalid_indexes = "SELECT count(*) " \
21
21
"FROM pg_catalog.pg_class, pg_catalog.pg_index " \
22
22
"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;" \
25
24
26
25
# queries for zabbix agent
27
26
query_agent_discovery = "SELECT json_build_object ('data',json_agg(json_build_object('{#DATABASE}',d.datname)))" \
@@ -32,8 +31,7 @@ class Databases(Plugin):
32
31
key_db_age = "pgsql.database.max_age{0}"
33
32
key_db_bloating_tables = "pgsql.database.bloating_tables{0}"
34
33
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}"
37
35
38
36
DEFAULT_CONFIG = {'min_rows' : str (50 ), 'bloat_scale' : str (0.2 )}
39
37
@@ -59,20 +57,14 @@ def run(self, zbx):
59
57
zbx .send (
60
58
'pgsql.database.bloating_tables[{0}]' .format (info [0 ]),
61
59
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 ,
64
62
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 ))
71
63
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 ))
74
66
zbx .send ('pgsql.database.discovery[]' , zbx .json ({'data' : dbs }))
75
- del dbs , bloat_count
67
+ del dbs , bloat_count , invalid_indexes_count
76
68
77
69
result = Pooler .run_sql_type ('count_autovacuum' )
78
70
zbx .send ('pgsql.autovacumm.count[]' , int (result [0 ][0 ]))
@@ -123,11 +115,8 @@ def discovery_rules(self, template, dashboard=False):
123
115
{'key' : self .right_type (self .key_db_bloating_tables , var_discovery = "{#DATABASE}," ),
124
116
'name' : 'Count of bloating tables in database: {#DATABASE}' ,
125
117
'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}' ,
131
120
'delay' : self .plugin_config ('interval' )}
132
121
]
133
122
graphs = [
@@ -158,13 +147,9 @@ def discovery_rules(self, template, dashboard=False):
158
147
}
159
148
]
160
149
triggers = [{
161
- 'name' : 'PostgreSQL indexes corrupted during REINDEX in database '
150
+ 'name' : 'PostgreSQL invalid indexes in database '
162
151
'{#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' }
168
153
]
169
154
return template .discovery_rule (rule = rule , conditions = conditions , items = items , graphs = graphs , triggers = triggers )
170
155
@@ -179,8 +164,6 @@ def keys_and_queries(self, template_zabbix):
179
164
self .query_bloating_tables .format (
180
165
self .plugin_config ('bloat_scale' ),
181
166
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 )]
186
169
return template_zabbix .key_and_query (result )
0 commit comments