sensu-plugins-mysql 2.7.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 28da8b8dda887c5405c1328498b1a2756fe5115cb0eaac7919e95c9582ce2678
4
- data.tar.gz: 97b4ebe627681a7d71ab58ed9e7ac9cb9e6a82eb9d86811f4ec4a3c83c6ae5e5
3
+ metadata.gz: 5922468dc21649e24a29345516eb02ff4f9002aee5415d1aa6248a5cd387bbd9
4
+ data.tar.gz: c934f6e0c33d107072e897ad3a1ae1e8e316cdfd029df64100114f6f2aae849c
5
5
  SHA512:
6
- metadata.gz: e040bfbb772dc2c2568e9556e48324cfcca839dbf8f1da17f4ce10c76cb55f7769f575ca2d5c679eb49171b4d3af89abdadd5783d1c1049112588d921f149537
7
- data.tar.gz: a5fce726a73bd536ea44c1829372e5a3c8859b79818b6bba4ab57806d521dd22a1aa5dc805f714bf60558a2a476e7c870edf14d8a8802229a4549cb297786ca9
6
+ metadata.gz: 20418c01d373e088978a0162297164776e1a2e4eeed071a9fa45218906ddaa2fa00980215c7fd4362b01b9f164fb24afbf29762d69e063c0d5fdce40a1da5e57
7
+ data.tar.gz: 7202eeb5502b433c9aced5191a8cb9ebb1287cff3fc977535276042acf97f77665fabed0a4738b9be5a077d29a67cb4f44d6e165a9e243c9c9f19cb320659247
@@ -5,6 +5,17 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+
9
+ ## [3.0.0] - 2018-12-04
10
+ ### Security
11
+ - updated rubocop dependency to `~> 0.51.0` per: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-8418. (@majormoses)
12
+
13
+ ### Breaking Changes
14
+ - removed < ruby 2.3 support as they are EOL (@majormoses)
15
+
16
+ ### Changed
17
+ - appeased the cops (@majormoses)
18
+
8
19
  ## [2.7.0] - 2018-11-25
9
20
  ### Added
10
21
  - metrics-mysql-select-count.rb script (@nagyt234)
@@ -141,7 +152,8 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
141
152
  ### Added
142
153
  - initial release
143
154
 
144
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-mysql/compare/2.7.0...HEAD
155
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-mysql/compare/3.0.0...HEAD
156
+ [3.0.0]: https://github.com/sensu-plugins/sensu-plugins-mysql/compare/2.7.0...3.0.0
145
157
  [2.7.0]: https://github.com/sensu-plugins/sensu-plugins-mysql/compare/2.6.0...2.7.0
146
158
  [2.6.0]: https://github.com/sensu-plugins/sensu-plugins-mysql/compare/2.5.1...2.6.0
147
159
  [2.5.1]: https://github.com/sensu-plugins/sensu-plugins-mysql/compare/2.5.0...2.5.1
@@ -97,7 +97,7 @@ class CheckMysqlDisk < Sensu::Plugin::Check::CLI
97
97
  total_size = 0.0
98
98
  db = Mysql.real_connect(config[:host], db_user, db_pass, nil, config[:port], config[:socket])
99
99
 
100
- results = db.query <<-EOSQL
100
+ results = db.query <<-SQL
101
101
  SELECT table_schema,
102
102
  count(*) TABLES,
103
103
  concat(round(sum(table_rows)/1000000,2),'M') rows,
@@ -106,7 +106,7 @@ class CheckMysqlDisk < Sensu::Plugin::Check::CLI
106
106
  round(sum(data_length+index_length)/(1024*1024*1024),2) total_size,
107
107
  round(sum(index_length)/sum(data_length),2) idxfrac
108
108
  FROM information_schema.TABLES group by table_schema
109
- EOSQL
109
+ SQL
110
110
 
111
111
  unless results.nil?
112
112
  results.each_hash do |row|
@@ -125,14 +125,11 @@ class CheckMysqlDisk < Sensu::Plugin::Check::CLI
125
125
  else
126
126
  ok diskstr
127
127
  end
128
-
129
128
  rescue Mysql::Error => e
130
129
  errstr = "Error code: #{e.errno} Error message: #{e.error}"
131
130
  critical "#{errstr} SQLSTATE: #{e.sqlstate}" if e.respond_to?('sqlstate')
132
-
133
- rescue => e
131
+ rescue StandardError => e
134
132
  critical e
135
-
136
133
  ensure
137
134
  db.close if db
138
135
  end
@@ -140,7 +140,6 @@ class CheckMySQLInnoDBLock < Sensu::Plugin::Check::CLI
140
140
  else
141
141
  critical "Detected Locks #{lock_info}"
142
142
  end
143
-
144
143
  rescue Mysql::Error => e
145
144
  critical "MySQL check failed: #{e.error}"
146
145
  ensure
@@ -74,6 +74,16 @@ class CheckMysqlMSRReplicationStatus < Sensu::Plugin::Check::CLI
74
74
  default: 1800,
75
75
  proc: proc(&:to_i)
76
76
 
77
+ def set_status(io_thread_status, sql_thread_status, seconds_behind_master)
78
+ if io_thread_status == 'No' || sql_thread_status == 'No' || seconds_behind_master > config[:crit]
79
+ 2
80
+ elsif seconds_behind_master > config[:warn] && seconds_behind_master <= config[:crit]
81
+ 1
82
+ else
83
+ 0
84
+ end
85
+ end
86
+
77
87
  def run
78
88
  if config[:ini]
79
89
  ini = IniFile.load(config[:ini])
@@ -106,19 +116,13 @@ class CheckMysqlMSRReplicationStatus < Sensu::Plugin::Check::CLI
106
116
  io_thread_status = row['Slave_IO_Running']
107
117
  sql_thread_status = row['Slave_SQL_Running']
108
118
  seconds_behind_master = row['Seconds_Behind_Master'].to_i
109
- status = 0
110
- if io_thread_status == 'No' || sql_thread_status == 'No' || seconds_behind_master > config[:crit]
111
- status = 2
112
- end
113
- if seconds_behind_master > config[:warn] && seconds_behind_master <= config[:crit]
114
- status = 1
115
- end
119
+ status = set_status
116
120
  message = "#{channel['channel_name']} STATES:"
117
121
  message += " Slave_IO_Running=#{io_thread_status}"
118
122
  message += ", Slave_SQL_Running=#{sql_thread_status}"
119
123
  message += ", Seconds_Behind_Master=#{seconds_behind_master}"
120
124
 
121
- if status.zero?
125
+ if status == 0
122
126
  ok_statuses << message
123
127
  elsif status == 1
124
128
  warn_statuses << message
@@ -99,14 +99,11 @@ class MysqlQueryCountCheck < Sensu::Plugin::Check::CLI
99
99
  else
100
100
  ok 'Result count length is below thresholds'
101
101
  end
102
-
103
102
  rescue Mysql::Error => e
104
103
  errstr = "Error code: #{e.errno} Error message: #{e.error}"
105
104
  critical "#{errstr} SQLSTATE: #{e.sqlstate}" if e.respond_to?('sqlstate')
106
-
107
- rescue => e
105
+ rescue StandardError => e
108
106
  critical e
109
-
110
107
  ensure
111
108
  db.close if db
112
109
  end
@@ -93,6 +93,24 @@ class CheckMysqlReplicationStatus < Sensu::Plugin::Check::CLI
93
93
  # #YELLOW
94
94
  proc: lambda { |s| s.to_i } # rubocop:disable Lambda
95
95
 
96
+ def detect_replication_status?(row)
97
+ %w[
98
+ Slave_IO_State
99
+ Slave_IO_Running
100
+ Slave_SQL_Running
101
+ Last_IO_Error
102
+ Last_SQL_Error
103
+ Seconds_Behind_Master
104
+ ].all? { |key| row.key? key }
105
+ end
106
+
107
+ def slave_running?(row)
108
+ %w[
109
+ Slave_IO_Running
110
+ Slave_SQL_Running
111
+ ].all? { |key| row[key] =~ /Yes/ }
112
+ end
113
+
96
114
  def run
97
115
  if config[:ini]
98
116
  ini = IniFile.load(config[:ini])
@@ -121,14 +139,9 @@ class CheckMysqlReplicationStatus < Sensu::Plugin::Check::CLI
121
139
 
122
140
  unless results.nil?
123
141
  results.each_hash do |row|
124
- warn "couldn't detect replication status" unless
125
- %w(Slave_IO_State Slave_IO_Running Slave_SQL_Running Last_IO_Error Last_SQL_Error Seconds_Behind_Master).all? do |key|
126
- row.key? key
127
- end
142
+ warn "couldn't detect replication status" unless detect_replication_status?(row)
128
143
 
129
- slave_running = %w(Slave_IO_Running Slave_SQL_Running).all? do |key|
130
- row[key] =~ /Yes/
131
- end
144
+ slave_running = slave_running?(row)
132
145
 
133
146
  output = if db_conn.nil?
134
147
  'Slave not running!'
@@ -160,14 +173,11 @@ class CheckMysqlReplicationStatus < Sensu::Plugin::Check::CLI
160
173
  end
161
174
  ok 'show slave status was nil. This server is not a slave.'
162
175
  end
163
-
164
176
  rescue Mysql::Error => e
165
177
  errstr = "Error code: #{e.errno} Error message: #{e.error}"
166
178
  critical "#{errstr} SQLSTATE: #{e.sqlstate}" if e.respond_to?('sqlstate')
167
-
168
- rescue => e
179
+ rescue StandardError => e
169
180
  critical e
170
-
171
181
  ensure
172
182
  db.close if db
173
183
  end
@@ -102,14 +102,11 @@ class MysqlSelectCountCheck < Sensu::Plugin::Check::CLI
102
102
  else
103
103
  ok "Count is below thresholds : #{count} count"
104
104
  end
105
-
106
105
  rescue Mysql::Error => e
107
106
  errstr = "Error code: #{e.errno} Error message: #{e.error}"
108
107
  critical "#{errstr} SQLSTATE: #{e.sqlstate}" if e.respond_to?('sqlstate')
109
-
110
108
  rescue StandardError => e
111
109
  critical "unhandled exception: #{e}"
112
-
113
110
  ensure
114
111
  db.close if db
115
112
  end
@@ -139,7 +139,7 @@ class CheckMySQLStatus < Sensu::Plugin::Check::CLI
139
139
  else
140
140
  critical "Error message: status: #{status}"
141
141
  end
142
- rescue => e
142
+ rescue StandardError => e
143
143
  critical "Error message: status: #{status} | Exception: #{e}"
144
144
  ensure
145
145
  puts ''
@@ -162,14 +162,14 @@ class CheckMySQLStatus < Sensu::Plugin::Check::CLI
162
162
  end
163
163
  dict = []
164
164
  table.keys.to_a.each do |k|
165
- %w(Slave_IO_State Slave_IO_Running Slave_SQL_Running Last_IO_Error Last_SQL_Error Seconds_Behind_Master).each do |key|
165
+ %w[Slave_IO_State Slave_IO_Running Slave_SQL_Running Last_IO_Error Last_SQL_Error Seconds_Behind_Master].each do |key|
166
166
  dict.push(k.strip.to_s) if key.strip == k.strip
167
167
  end
168
168
  end
169
169
  table.each do |attribute, value|
170
170
  puts "#{attribute} : #{value}" if config[:debug]
171
171
  warn "couldn't detect replication status :#{dict.size}" unless dict.size == 6
172
- slave_running = %w(Slave_IO_Running Slave_SQL_Running).all? do |key|
172
+ slave_running = %w[Slave_IO_Running Slave_SQL_Running].all? do |key|
173
173
  table[key].to_s =~ /Yes/
174
174
  end
175
175
  output = 'Slave not running!'
@@ -189,7 +189,7 @@ class CheckMySQLStatus < Sensu::Plugin::Check::CLI
189
189
  end
190
190
  end
191
191
  ok 'show slave status was nil. This server is not a slave.'
192
- rescue => e
192
+ rescue StandardError => e
193
193
  critical "Error message: status: #{status} | Exception: #{e}"
194
194
  end
195
195
  end
@@ -90,10 +90,8 @@ class MysqlGraphite < Sensu::Plugin::Metric::CLI::Graphite
90
90
  long: '--verbose',
91
91
  boolean: true
92
92
 
93
- def run
94
- # props to https://github.com/coredump/hoardd/blob/master/scripts-available/mysql.coffee
95
-
96
- metrics = {
93
+ def metrics_hash
94
+ {
97
95
  'general' => {
98
96
  'Bytes_received' => 'rxBytes',
99
97
  'Bytes_sent' => 'txBytes',
@@ -117,14 +115,14 @@ class MysqlGraphite < Sensu::Plugin::Metric::CLI::Graphite
117
115
  'Select_range' => 'selectRange',
118
116
  'Select_range_check' => 'selectRange_check',
119
117
  'Select_scan' => 'selectScan',
120
- 'Slow_queries' => 'slowQueries'
118
+ 'Slow_queries' => 'slowQueries',
121
119
  },
122
120
  'querycache' => {
123
121
  'Qcache_queries_in_cache' => 'queriesInCache',
124
122
  'Qcache_hits' => 'cacheHits',
125
123
  'Qcache_inserts' => 'inserts',
126
124
  'Qcache_not_cached' => 'notCached',
127
- 'Qcache_lowmem_prunes' => 'lowMemPrunes'
125
+ 'Qcache_lowmem_prunes' => 'lowMemPrunes',
128
126
  },
129
127
  'commands' => {
130
128
  'Com_admin_commands' => 'admin_commands',
@@ -159,7 +157,7 @@ class MysqlGraphite < Sensu::Plugin::Metric::CLI::Graphite
159
157
  'Com_lock_tables' => 'lock_tables',
160
158
  'Com_show_create_table' => 'show_create_table',
161
159
  'Com_unlock_tables' => 'unlock_tables',
162
- 'Com_alter_table' => 'alter_table'
160
+ 'Com_alter_table' => 'alter_table',
163
161
  },
164
162
  'counters' => {
165
163
  'Handler_write' => 'handlerWrite',
@@ -174,7 +172,7 @@ class MysqlGraphite < Sensu::Plugin::Metric::CLI::Graphite
174
172
  'Handler_commit' => 'handlerCommit',
175
173
  'Handler_rollback' => 'handlerRollback',
176
174
  'Handler_savepoint' => 'handlerSavepoint',
177
- 'Handler_savepoint_rollback' => 'handlerSavepointRollback'
175
+ 'Handler_savepoint_rollback' => 'handlerSavepointRollback',
178
176
  },
179
177
  'innodb' => {
180
178
  'Innodb_buffer_pool_pages_total' => 'bufferTotal_pages',
@@ -195,15 +193,22 @@ class MysqlGraphite < Sensu::Plugin::Metric::CLI::Graphite
195
193
  'Innodb_rows_updated' => 'rowsUpdated',
196
194
  'Innodb_rows_read' => 'rowsRead',
197
195
  'Innodb_rows_deleted' => 'rowsDeleted',
198
- 'Innodb_rows_inserted' => 'rowsInserted'
196
+ 'Innodb_rows_inserted' => 'rowsInserted',
199
197
  },
200
198
  'configuration' => {
201
199
  'max_connections' => 'MaxConnections',
202
- 'Max_prepared_stmt_count' => 'MaxPreparedStmtCount'
203
- }
200
+ 'Max_prepared_stmt_count' => 'MaxPreparedStmtCount',
201
+ },
204
202
  }
203
+ end
204
+
205
+ def run
206
+ # props to https://github.com/coredump/hoardd/blob/master/scripts-available/mysql.coffee
207
+
208
+ metrics = metrics_hash
205
209
 
206
- config[:host].split(' ').each do |mysql_host|
210
+ # FIXME: break this up
211
+ config[:host].split(' ').each do |mysql_host| # rubocop:disable Metrics/BlockLength
207
212
  mysql_shorthostname = mysql_host.split('.')[0]
208
213
  if config[:ini]
209
214
  ini = IniFile.load(config[:ini])
@@ -218,7 +223,7 @@ class MysqlGraphite < Sensu::Plugin::Metric::CLI::Graphite
218
223
  mysql = Mysql.new(mysql_host, db_user, db_pass, nil, config[:port], config[:socket])
219
224
 
220
225
  results = mysql.query('SHOW GLOBAL STATUS')
221
- rescue => e
226
+ rescue StandardError => e
222
227
  puts e.message
223
228
  end
224
229
 
@@ -241,7 +246,7 @@ class MysqlGraphite < Sensu::Plugin::Metric::CLI::Graphite
241
246
  output "#{config[:scheme]}.#{mysql_shorthostname}.general.#{metrics['general'][key]}", value
242
247
  end
243
248
  end
244
- rescue => e
249
+ rescue StandardError => e
245
250
  puts "Error querying slave status: #{e}" if config[:verbose]
246
251
  end
247
252
 
@@ -251,12 +256,12 @@ class MysqlGraphite < Sensu::Plugin::Metric::CLI::Graphite
251
256
  category = 'configuration'
252
257
  variables_results.each_hash do |row|
253
258
  metrics[category].each do |metric, desc|
254
- if metric.casecmp(row['Variable_name']) == 0
259
+ if metric.casecmp(row['Variable_name']).zero?
255
260
  output "#{config[:scheme]}.#{mysql_shorthostname}.#{category}.#{desc}", row['Value']
256
261
  end
257
262
  end
258
263
  end
259
- rescue => e
264
+ rescue StandardError => e
260
265
  puts e.message
261
266
  end
262
267
 
@@ -94,33 +94,40 @@ class MetricsMySQLProcesses < Sensu::Plugin::Metric::CLI::Graphite
94
94
  long: '--socket SOCKET',
95
95
  description: 'MySQL Unix socket to connect to'
96
96
 
97
+ def set_default_metrics
98
+ {
99
+ 'user' => {},
100
+ 'database' => {},
101
+ 'command' => {},
102
+ }.each_value { |value| value.default = 0 }
103
+ end
104
+
105
+ def db_connection_creds
106
+ if config[:ini]
107
+ ini = IniFile.load(config[:ini])
108
+ section = ini[config[:ini_section]]
109
+ db_user = section['user']
110
+ db_pass = section['password']
111
+ else
112
+ db_user = config[:username]
113
+ db_pass = config[:password]
114
+ end
115
+ [db_user, db_pass]
116
+ end
117
+
97
118
  def run
98
119
  config[:host].split(' ').each do |mysql_host|
99
120
  mysql_shorthostname = mysql_host.split('.')[0]
100
- if config[:ini]
101
- ini = IniFile.load(config[:ini])
102
- section = ini[config[:ini_section]]
103
- db_user = section['user']
104
- db_pass = section['password']
105
- else
106
- db_user = config[:username]
107
- db_pass = config[:password]
108
- end
121
+ db_user, db_pass = db_connection_creds
109
122
  begin
110
123
  mysql = Mysql.new(mysql_host, db_user, db_pass, nil, config[:port], config[:socket])
111
124
 
112
125
  results = mysql.query('SHOW PROCESSLIST')
113
- rescue => e
126
+ rescue StandardError => e
114
127
  unknown "Unable to query MySQL: #{e.message}"
115
128
  end
116
129
 
117
- metrics = {
118
- 'user' => {},
119
- 'database' => {},
120
- 'command' => {}
121
- }
122
-
123
- metrics.each_value { |value| value.default = 0 }
130
+ metrics = set_default_metrics
124
131
 
125
132
  results.each_hash do |row|
126
133
  metrics['user'][row['User']] += 1
@@ -86,14 +86,11 @@ class MysqlQueryCountMetric < Sensu::Plugin::Metric::CLI::Graphite
86
86
 
87
87
  output config[:name], length
88
88
  ok
89
-
90
89
  rescue Mysql::Error => e
91
90
  errstr = "Error code: #{e.errno} Error message: #{e.error}"
92
91
  critical "#{errstr} SQLSTATE: #{e.sqlstate}" if e.respond_to?('sqlstate')
93
-
94
- rescue => e
92
+ rescue StandardError => e
95
93
  critical e
96
-
97
94
  ensure
98
95
  db.close if db
99
96
  end
@@ -182,7 +182,7 @@ class MetricsMySQLRaw < Sensu::Plugin::Metric::CLI::Graphite
182
182
  'Select_range' => 'selectRange',
183
183
  'Select_range_check' => 'selectRange_check',
184
184
  'Select_scan' => 'selectScan',
185
- 'Slow_queries' => 'slowQueries'
185
+ 'Slow_queries' => 'slowQueries',
186
186
  },
187
187
  'querycache' => {
188
188
  'Qcache_queries_in_cache' => 'queriesInCache',
@@ -190,7 +190,7 @@ class MetricsMySQLRaw < Sensu::Plugin::Metric::CLI::Graphite
190
190
  'Qcache_inserts' => 'inserts',
191
191
  'Qcache_not_cached' => 'notCached',
192
192
  'Qcache_lowmem_prunes' => 'lowMemPrunes',
193
- 'Qcache_free_memory' => 'freeMemory'
193
+ 'Qcache_free_memory' => 'freeMemory',
194
194
  },
195
195
  'commands' => {
196
196
  'Com_admin_commands' => 'admin_commands',
@@ -225,7 +225,7 @@ class MetricsMySQLRaw < Sensu::Plugin::Metric::CLI::Graphite
225
225
  'Com_lock_tables' => 'lock_tables',
226
226
  'Com_show_create_table' => 'show_create_table',
227
227
  'Com_unlock_tables' => 'unlock_tables',
228
- 'Com_alter_table' => 'alter_table'
228
+ 'Com_alter_table' => 'alter_table',
229
229
  },
230
230
  'counters' => {
231
231
  'Handler_write' => 'handlerWrite',
@@ -240,7 +240,7 @@ class MetricsMySQLRaw < Sensu::Plugin::Metric::CLI::Graphite
240
240
  'Handler_commit' => 'handlerCommit',
241
241
  'Handler_rollback' => 'handlerRollback',
242
242
  'Handler_savepoint' => 'handlerSavepoint',
243
- 'Handler_savepoint_rollback' => 'handlerSavepointRollback'
243
+ 'Handler_savepoint_rollback' => 'handlerSavepointRollback',
244
244
  },
245
245
  'innodb' => {
246
246
  'Innodb_buffer_pool_pages_total' => 'bufferTotal_pages',
@@ -261,11 +261,11 @@ class MetricsMySQLRaw < Sensu::Plugin::Metric::CLI::Graphite
261
261
  'Innodb_rows_updated' => 'rowsUpdated',
262
262
  'Innodb_rows_read' => 'rowsRead',
263
263
  'Innodb_rows_deleted' => 'rowsDeleted',
264
- 'Innodb_rows_inserted' => 'rowsInserted'
264
+ 'Innodb_rows_inserted' => 'rowsInserted',
265
265
  },
266
266
  'configuration' => {
267
- 'Max_prepared_stmt_count' => 'MaxPreparedStmtCount'
268
- }
267
+ 'Max_prepared_stmt_count' => 'MaxPreparedStmtCount',
268
+ },
269
269
  }
270
270
  metrics
271
271
  end
@@ -299,7 +299,7 @@ class MetricsMySQLRaw < Sensu::Plugin::Metric::CLI::Graphite
299
299
  output "#{config[:scheme]}.#{mysql_shorthostname}.general.#{metrics['general'][key]}", value
300
300
  end
301
301
  end
302
- rescue => e
302
+ rescue StandardError => e
303
303
  puts "Error querying slave status: #{e}" if config[:verbose]
304
304
  end
305
305
 
@@ -332,14 +332,15 @@ class MetricsMySQLRaw < Sensu::Plugin::Metric::CLI::Graphite
332
332
  end
333
333
  end
334
334
  end
335
- rescue => e
335
+ rescue StandardError => e
336
336
  puts e.message
337
337
  end
338
338
 
339
339
  # Fetch MySQL metrics
340
340
  def fetcher(db_user, db_pass, db_socket)
341
341
  metrics = metrics_hash
342
- if config[:check] == 'metric'
342
+ # FIXME: this needs refactoring
343
+ if config[:check] == 'metric' # rubocop:disable Style/GuardClause
343
344
  mysql_shorthostname = config[:hostname].tr('.', '_')
344
345
  begin
345
346
  table = []
@@ -362,7 +363,7 @@ class MetricsMySQLRaw < Sensu::Plugin::Metric::CLI::Graphite
362
363
  table.each do |row|
363
364
  metrics.each do |category, var_mapping|
364
365
  row_var_name = row['Variable_name'].to_s
365
- var_mapping.keys.each do |vmkey|
366
+ var_mapping.each_key do |vmkey|
366
367
  if row_var_name.to_s == vmkey.to_s
367
368
  prefix = "#{config[:scheme]}.#{mysql_shorthostname}.#{category}.#{vmkey[row_var_name]}"
368
369
  output prefix, row['Value'] unless mysql_shorthostname.to_s.chomp.empty?
@@ -373,7 +374,7 @@ class MetricsMySQLRaw < Sensu::Plugin::Metric::CLI::Graphite
373
374
  # Slave and configuration metrics here
374
375
  slave_metrics(metrics)
375
376
  configuration_metrics(metrics, db_user, db_pass, db_socket)
376
- rescue => e
377
+ rescue StandardError => e
377
378
  critical "Error message: status: #{status} | Exception: #{e.backtrace}"
378
379
  ensure
379
380
  ok ''
@@ -88,14 +88,11 @@ class MysqlQueryCountMetric < Sensu::Plugin::Metric::CLI::Graphite
88
88
 
89
89
  output config[:name], count
90
90
  ok
91
-
92
91
  rescue Mysql::Error => e
93
92
  errstr = "Error code: #{e.errno} Error message: #{e.error}"
94
93
  critical "#{errstr} SQLSTATE: #{e.sqlstate}" if e.respond_to?('sqlstate')
95
-
96
94
  rescue StandardError => e
97
95
  critical "unhandled exception: #{e}"
98
-
99
96
  ensure
100
97
  db.close if db
101
98
  end
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsMySql
2
2
  module Version
3
- MAJOR = 2
4
- MINOR = 7
3
+ MAJOR = 3
4
+ MINOR = 0
5
5
  PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-mysql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-22 00:00:00.000000000 Z
11
+ date: 2018-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inifile
@@ -53,33 +53,33 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.2'
55
55
  - !ruby/object:Gem::Dependency
56
- name: codeclimate-test-reporter
56
+ name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: '1.7'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '1.7'
69
69
  - !ruby/object:Gem::Dependency
70
- name: bundler
70
+ name: codeclimate-test-reporter
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.7'
75
+ version: '1.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.7'
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: github-markup
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.40.0
159
+ version: 0.51.0
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 0.40.0
166
+ version: 0.51.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: yard
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -245,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
245
245
  requirements:
246
246
  - - ">="
247
247
  - !ruby/object:Gem::Version
248
- version: 2.0.0
248
+ version: 2.3.0
249
249
  required_rubygems_version: !ruby/object:Gem::Requirement
250
250
  requirements:
251
251
  - - ">="