sensu-plugins-mysql-boutetnico 1.0.0 → 1.1.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
  SHA1:
3
- metadata.gz: 146f44e13b444f45ee61db8098eb3b3062dbef74
4
- data.tar.gz: 8516156a74fc97731a1ad5c2d04c1663f9d75c64
3
+ metadata.gz: 88083d7375aae12be494d3310c685d57a4eca02a
4
+ data.tar.gz: 537c91b7469ff45310daf460474250a0f8788d5f
5
5
  SHA512:
6
- metadata.gz: 15df20ea87d2e4dc6ac85f2a93ef8de7eebf00d4c733684f8c5a10bf0b3950ee7f7ea195dca3485edf4db81170187f2d5b2f2c9e01f89887ac42c0c5ee63b0a7
7
- data.tar.gz: 1b63f91ac45984154d8a4c6873ff7d4b0d2e5409a9547daf9fbe6a85d0b7b5998fc74dce1af1613b813bcf803a54cc0d38fb18636583b97990db44a81f208c80
6
+ metadata.gz: 15254f89788f46d9e3bed61b3875f88f2c30a9ef3fa114c32afef080ed6f13b4e55d8d43501675c07f9cffe3a3dc106539aaf23e4bc28fdeef9112a81820a0a5
7
+ data.tar.gz: 8c7696536a30026176bf86b19e245a36d29cb2c9fa42b664382fb56e099401d9ef002487b0d803e04aa7851808f2481ce15f9418abc2e67ee41ef3357c9d7a69
@@ -1 +1 @@
1
- Can be found at [https://github.com/boutetnico/sensu-plugins-mysql/releases](https://github.com/boutetnico/sensu-plugins-mysql/releases).
1
+ Can be found at [https://github.com/boutetnico/sensu-plugins-mysql/releases](https://github.com/boutetnico/sensu-plugins-mysql/releases).
data/README.md CHANGED
@@ -10,21 +10,22 @@ This fork is automatically tested, built and published to [RubyGems](https://rub
10
10
  ## Files
11
11
  * bin/check-cloudwatch-mysql-sensu.rb
12
12
  * bin/check-mysql-alive.rb
13
- * bin/check-mysql-status.rb
14
13
  * bin/check-mysql-connections.rb
15
14
  * bin/check-mysql-disk.rb
16
15
  * bin/check-mysql-innodb-lock.rb
17
- * bin/check-mysql-threads.rb
16
+ * bin/check-mysql-msr-replication-status.rb
18
17
  * bin/check-mysql-query-result-count.rb
19
18
  * bin/check-mysql-select-count.rb
20
- * bin/check-mysql-msr-replication-status.rb
19
+ * bin/check-mysql-status.rb
20
+ * bin/check-mysql-threads.rb
21
+ * bin/metrics-mysql-disk.rb
21
22
  * bin/metrics-mysql-graphite.rb
22
23
  * bin/metrics-mysql-multiple-select-count.rb
23
24
  * bin/metrics-mysql-processes.rb
24
- * bin/metrics-mysql-raw.rb
25
- * bin/metrics-mysql.rb
26
25
  * bin/metrics-mysql-query-result-count.rb
26
+ * bin/metrics-mysql-raw.rb
27
27
  * bin/metrics-mysql-select-count.rb
28
+ * bin/metrics-mysql.rb
28
29
  * bin/mysql-metrics.sql
29
30
 
30
31
  ## Usage
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # MySQL Disk Usage Metrics
4
+ # ===
5
+
6
+ require 'sensu-plugin/metric/cli'
7
+ require 'mysql'
8
+ require 'inifile'
9
+
10
+ class CheckMysqlDisk < Sensu::Plugin::Metric::CLI::Graphite
11
+ option :host,
12
+ short: '-h',
13
+ long: '--host=VALUE',
14
+ description: 'Database host'
15
+
16
+ option :user,
17
+ short: '-u',
18
+ long: '--username=VALUE',
19
+ description: 'Database username'
20
+
21
+ option :pass,
22
+ short: '-p',
23
+ long: '--password=VALUE',
24
+ description: 'Database password'
25
+
26
+ option :ini,
27
+ description: 'My.cnf ini file',
28
+ short: '-i',
29
+ long: '--ini VALUE'
30
+
31
+ option :scheme,
32
+ description: 'Metric naming scheme, text to prepend to metric',
33
+ short: '-s SCHEME',
34
+ long: '--scheme SCHEME',
35
+ default: "#{Socket.gethostname}.mysql"
36
+
37
+ def run
38
+ if config[:ini]
39
+ ini = IniFile.load(config[:ini])
40
+ section = ini['client']
41
+ db_user = section['user']
42
+ db_pass = section['password']
43
+ else
44
+ db_user = config[:user]
45
+ db_pass = config[:pass]
46
+ end
47
+ db_host = config[:host]
48
+ mysql_shorthostname = db_host.split('.')[0]
49
+
50
+ if [db_host, db_user, db_pass].any?(&:nil?)
51
+ unknown 'Must specify host, user and password'
52
+ end
53
+
54
+ begin
55
+ db = Mysql.new(db_host, db_user, db_pass)
56
+
57
+ results = db.query <<-EOSQL
58
+ select table_schema,
59
+ count(*) as tables,
60
+ sum(table_rows) as rows,
61
+ sum(data_length) as data,
62
+ sum(index_length) as idx,
63
+ sum(data_length + index_length) as total_size
64
+ from information_schema.tables
65
+ where table_schema not in ("information_schema", "mysql", "performance_schema", "sys")
66
+ group by table_schema
67
+ EOSQL
68
+
69
+ unless results.nil?
70
+ results.each_hash do |row|
71
+ output "#{config[:scheme]}.#{mysql_shorthostname}.disk.#{row['table_schema']}.tables", row['tables']
72
+ output "#{config[:scheme]}.#{mysql_shorthostname}.disk.#{row['table_schema']}.rows", row['rows']
73
+ output "#{config[:scheme]}.#{mysql_shorthostname}.disk.#{row['table_schema']}.data", row['data']
74
+ output "#{config[:scheme]}.#{mysql_shorthostname}.disk.#{row['table_schema']}.idx", row['idx']
75
+ output "#{config[:scheme]}.#{mysql_shorthostname}.disk.#{row['table_schema']}.total_size", row['total_size']
76
+ end
77
+ end
78
+ ensure
79
+ db.close if db
80
+ end
81
+
82
+ ok
83
+ end
84
+ end
@@ -175,25 +175,37 @@ class MysqlGraphite < Sensu::Plugin::Metric::CLI::Graphite
175
175
  'Handler_savepoint_rollback' => 'handlerSavepointRollback',
176
176
  },
177
177
  'innodb' => {
178
- 'Innodb_buffer_pool_pages_total' => 'bufferTotal_pages',
179
- 'Innodb_buffer_pool_pages_free' => 'bufferFree_pages',
180
- 'Innodb_buffer_pool_pages_dirty' => 'bufferDirty_pages',
181
- 'Innodb_buffer_pool_pages_data' => 'bufferUsed_pages',
182
- 'Innodb_page_size' => 'pageSize',
183
- 'Innodb_pages_created' => 'pagesCreated',
184
- 'Innodb_pages_read' => 'pagesRead',
185
- 'Innodb_pages_written' => 'pagesWritten',
186
- 'Innodb_row_lock_current_waits' => 'currentLockWaits',
187
- 'Innodb_row_lock_waits' => 'lockWaitTimes',
188
- 'Innodb_row_lock_time' => 'rowLockTime',
189
- 'Innodb_data_reads' => 'fileReads',
190
- 'Innodb_data_writes' => 'fileWrites',
191
- 'Innodb_data_fsyncs' => 'fileFsyncs',
192
- 'Innodb_log_writes' => 'logWrites',
193
- 'Innodb_rows_updated' => 'rowsUpdated',
194
- 'Innodb_rows_read' => 'rowsRead',
195
- 'Innodb_rows_deleted' => 'rowsDeleted',
196
- 'Innodb_rows_inserted' => 'rowsInserted',
178
+ 'Innodb_buffer_pool_pages_total' => 'bufferTotal_pages',
179
+ 'Innodb_buffer_pool_pages_free' => 'bufferFree_pages',
180
+ 'Innodb_buffer_pool_pages_dirty' => 'bufferDirty_pages',
181
+ 'Innodb_buffer_pool_pages_data' => 'bufferUsed_pages',
182
+ 'Innodb_buffer_pool_pages_flushed' => 'bufferFlushed_pages',
183
+ 'Innodb_buffer_pool_pages_misc' => 'bufferMisc_pages',
184
+ 'Innodb_buffer_pool_bytes_data' => 'bufferUsed_bytes',
185
+ 'Innodb_buffer_pool_bytes_dirty' => 'bufferDirty_bytes',
186
+ 'Innodb_buffer_pool_read_ahead_rnd' => 'bufferReadAheadRnd',
187
+ 'Innodb_buffer_pool_read_ahead' => 'bufferReadAhead',
188
+ 'Innodb_buffer_pool_read_ahead_evicted' => 'bufferReadAheadEvicted',
189
+ 'Innodb_buffer_pool_read_requests' => 'bufferReadRequests',
190
+ 'Innodb_buffer_pool_reads' => 'bufferReads',
191
+ 'Innodb_buffer_pool_wait_free' => 'bufferWaitFree',
192
+ 'Innodb_buffer_pool_write_requests' => 'bufferWriteRequests',
193
+ 'innodb_buffer_pool_size' => 'poolSize',
194
+ 'Innodb_page_size' => 'pageSize',
195
+ 'Innodb_pages_created' => 'pagesCreated',
196
+ 'Innodb_pages_read' => 'pagesRead',
197
+ 'Innodb_pages_written' => 'pagesWritten',
198
+ 'Innodb_row_lock_current_waits' => 'currentLockWaits',
199
+ 'Innodb_row_lock_waits' => 'lockWaitTimes',
200
+ 'Innodb_row_lock_time' => 'rowLockTime',
201
+ 'Innodb_data_reads' => 'fileReads',
202
+ 'Innodb_data_writes' => 'fileWrites',
203
+ 'Innodb_data_fsyncs' => 'fileFsyncs',
204
+ 'Innodb_log_writes' => 'logWrites',
205
+ 'Innodb_rows_updated' => 'rowsUpdated',
206
+ 'Innodb_rows_read' => 'rowsRead',
207
+ 'Innodb_rows_deleted' => 'rowsDeleted',
208
+ 'Innodb_rows_inserted' => 'rowsInserted',
197
209
  },
198
210
  'configuration' => {
199
211
  'max_connections' => 'MaxConnections',
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsMySql
2
2
  module Version
3
3
  MAJOR = 1
4
- MINOR = 0
4
+ MINOR = 1
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-boutetnico
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.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: 2020-06-09 00:00:00.000000000 Z
11
+ date: 2020-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inifile
@@ -191,6 +191,7 @@ executables:
191
191
  - check-mysql-select-count.rb
192
192
  - metrics-mysql-query-result-count.rb
193
193
  - metrics-mysql-graphite.rb
194
+ - metrics-mysql-disk.rb
194
195
  - check-mysql-status.rb
195
196
  - metrics-mysql.rb
196
197
  - check-mysql-replication-status.rb
@@ -219,6 +220,7 @@ files:
219
220
  - bin/check-mysql-select-count.rb
220
221
  - bin/check-mysql-status.rb
221
222
  - bin/check-mysql-threads.rb
223
+ - bin/metrics-mysql-disk.rb
222
224
  - bin/metrics-mysql-graphite.rb
223
225
  - bin/metrics-mysql-multiple-select-count.rb
224
226
  - bin/metrics-mysql-processes.rb