sensu-plugins-etcd 0.1.0 → 1.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
  SHA1:
3
- metadata.gz: 414ed48ba733f6e53dac7c9ab73757a057af5697
4
- data.tar.gz: 1e29c7a7c231359a9a41f3e8e899df03f741edff
3
+ metadata.gz: 719e2f8bad357bce3388a0a8c3694bd1ba8c0ae9
4
+ data.tar.gz: 608f276a0bae2bf555e13e72ad2bdeaa754d9d09
5
5
  SHA512:
6
- metadata.gz: 8153bbe4f17f9990eec412618cdd5dedfd55af36309901a22320e0a4f44dacfbc80bee51f62a6de632c9c9e1f9279e77110866bdbcdf3f95962cdd8b34dd0ae3
7
- data.tar.gz: 7879b5f63f05f046cbb0cdf8493f93d5682ee2d677023f15d6643d5ec80364fe82945f7c909dee54c6456bd28a2f8e047b724ed78348175ba1809055017c4325
6
+ metadata.gz: 8af6cd869e12042603890f0b35c35ca024fa38d721e2327d5dbe2fa175b3a78422d280c29a9e4d52b6007239950caa0313f74bd07fd580d4869e4bced0042b13
7
+ data.tar.gz: 1dee2b818781cf20dee2684dcb410190260a97814da6e919a7ffb50222e18dbb054d4e11671227d22ebec9b8950b254fb951f4643d528fa4855d3ae0898ed650
data/CHANGELOG.md CHANGED
@@ -3,7 +3,18 @@ This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
- ## Unreleased
6
+ ## [Unreleased]
7
+
8
+ ## [1.0.0] - 2016-08-10
9
+ ### Changed
10
+ - Removed Ruby 1.9 support
11
+ - Updated sensu-plugin dependency from `= 1.2.0` to `~> 1.3`
12
+
13
+ ### Added
14
+ - Added full cluster health check option for check-etcd
15
+ - Added healthy peer count check
16
+ - Adding flanneld subnet check for etcd
17
+ - Added missing require 'json'
7
18
 
8
19
  ## [0.1.0] - 2015-08-27
9
20
  ### Added
@@ -13,15 +24,19 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
13
24
  ### Changed
14
25
  - updated sensu-plugin gem to 1.2.0
15
26
 
16
- ## 0.0.1 - 2015-04-30
17
-
18
- ### Added
19
- - initial release
20
-
21
27
  ## [0.0.2] - 2015-06-02
22
-
23
28
  ### Fixed
24
29
  - added binstubs
25
30
 
26
31
  ### Changed
27
32
  - removed cruft from /lib
33
+
34
+ ## 0.0.1 - 2015-04-30
35
+ ### Added
36
+ - initial release
37
+
38
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-etcd/compare/1.0.0...HEAD
39
+ [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-etcd/compare/0.1.0...1.0.0
40
+ [0.1.0]: https://github.com/sensu-plugins/sensu-plugins-etcd/compare/0.0.3...0.1.0
41
+ [0.0.3]: https://github.com/sensu-plugins/sensu-plugins-etcd/compare/0.0.2...0.0.3
42
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-etcd/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -5,11 +5,13 @@
5
5
  [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-etcd/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-etcd)
6
6
  [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-etcd/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-etcd)
7
7
  [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-etcd.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-etcd)
8
- [ ![Codeship Status for sensu-plugins/sensu-plugins-etcd](https://codeship.com/projects/55e83d10-d1e4-0132-a14d-4afb0344239b/status?branch=master)](https://codeship.com/projects/77418)
8
+
9
9
  ## Functionality
10
10
 
11
11
  ## Files
12
12
  * bin/check-etcd.rb
13
+ * bin/check-etcd-peer-count.rb
14
+ * bin/check-flannel-subnet-count.rb
13
15
  * bin/metrics-etcd.rb
14
16
 
15
17
  ## Usage
@@ -0,0 +1,106 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-etcd-peer-count
4
+ #
5
+ # DESCRIPTION:
6
+ # This plugin checks that the number of etcd members reporting is correct
7
+ #
8
+ # OUTPUT:
9
+ # plain text
10
+ #
11
+ # PLATFORMS:
12
+ # Linux
13
+ #
14
+ # DEPENDENCIES:
15
+ # gem: sensu-plugin
16
+ # gem: rest-client
17
+ #
18
+ # USAGE:
19
+ # #YELLOW
20
+ #
21
+ # NOTES:
22
+ #
23
+ # LICENSE:
24
+ # Barry Martin <nyxcharon@gmail.com>
25
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
26
+ # for details.
27
+ #
28
+
29
+ require 'sensu-plugin/check/cli'
30
+ require 'rest-client'
31
+ require 'openssl'
32
+ require 'json'
33
+
34
+ #
35
+ # Etcd Node Status
36
+ #
37
+ class EtcdNodeStatus < Sensu::Plugin::Check::CLI
38
+ option :server,
39
+ description: 'Etcd host, defaults to localhost',
40
+ short: '-h HOST',
41
+ long: '--host HOST',
42
+ default: 'localhost'
43
+
44
+ option :port,
45
+ description: 'Etcd port, defaults to 2379',
46
+ short: '-p PORT',
47
+ long: '--port PORT',
48
+ default: '2379'
49
+
50
+ option :cert,
51
+ description: 'client SSL cert',
52
+ long: '--cert CERT',
53
+ default: nil
54
+
55
+ option :key,
56
+ description: 'client SSL key',
57
+ long: '--key KEY',
58
+ default: nil
59
+
60
+ option :passphrase,
61
+ description: 'passphrase of the SSL key',
62
+ long: '--passphrase PASSPHRASE',
63
+ default: nil
64
+
65
+ option :ca,
66
+ description: 'SSL CA file',
67
+ long: '--ca CA',
68
+ default: nil
69
+
70
+ option :insecure,
71
+ description: 'change SSL verify mode to false',
72
+ long: '--insecure'
73
+
74
+ option :ssl,
75
+ description: 'use HTTPS (default false)',
76
+ long: '--ssl'
77
+
78
+ option :peercount,
79
+ description: 'Number of expected etcd peers',
80
+ short: '-c NUMBER',
81
+ long: '--count NUMBER',
82
+ required: true,
83
+ proc: proc(&:to_i)
84
+
85
+ def run
86
+ protocol = config[:ssl] ? 'https' : 'http'
87
+ r = RestClient::Resource.new("#{protocol}://#{config[:server]}:#{config[:port]}/v2/members",
88
+ timeout: 5,
89
+ ssl_client_cert: (OpenSSL::X509::Certificate.new(File.read(config[:cert])) unless config[:cert].nil?),
90
+ ssl_client_key: (OpenSSL::PKey::RSA.new(File.read(config[:key]), config[:passphrase]) unless config[:key].nil?),
91
+ ssl_ca_file: config[:ca],
92
+ verify_ssl: config[:insecure] ? 0 : 1).get
93
+ peers = JSON.parse(r.to_str)['members'].length
94
+ if r.code == 200 && peers == config[:peercount]
95
+ ok 'Etcd has correct number of peers'
96
+ else
97
+ critical "Etcd peer count incorrect, expected #{config[:peercount]} got #{peers}"
98
+ end
99
+ rescue Errno::ECONNREFUSED
100
+ critical 'Etcd is not responding'
101
+ rescue RestClient::RequestTimeout
102
+ critical 'Etcd Connection timed out'
103
+ rescue StandardError => e
104
+ unknown 'A exception occurred: ' + e.message
105
+ end
106
+ end
data/bin/check-etcd.rb CHANGED
@@ -29,6 +29,8 @@
29
29
  require 'sensu-plugin/check/cli'
30
30
  require 'rest-client'
31
31
  require 'openssl'
32
+ require 'uri'
33
+ require 'json'
32
34
 
33
35
  #
34
36
  # Etcd Node Status
@@ -74,24 +76,56 @@ class EtcdNodeStatus < Sensu::Plugin::Check::CLI
74
76
  description: 'use HTTPS (default false)',
75
77
  long: '--ssl'
76
78
 
77
- def run
78
- protocol = config[:ssl] ? 'https' : 'http'
79
+ option :allmembers,
80
+ description: 'check health of all etcd members',
81
+ long: '--all',
82
+ short: '-a',
83
+ default: false
79
84
 
80
- r = RestClient::Resource.new("#{protocol}://#{config[:server]}:#{config[:port]}/v2/stats/self",
81
- timeout: 5,
82
- ssl_client_cert: (OpenSSL::X509::Certificate.new(File.read(config[:cert])) unless config[:cert].nil?),
83
- ssl_client_key: (OpenSSL::PKey::RSA.new(File.read(config[:key]), config[:passphrase]) unless config[:key].nil?),
84
- ssl_ca_file: config[:ca],
85
- verify_ssl: config[:insecure] ? 0 : 1
86
- ).get
87
- if r.code == 200
88
- ok 'etcd is up'
85
+ def run
86
+ if config[:allmembers]
87
+ members = JSON.parse(request('/v2/members', config[:server]).to_str)['members']
88
+ bad_peers = []
89
+ members.each do |member|
90
+ client_host = URI.parse(member['clientURLs'][0]).host
91
+ begin
92
+ r = request('/health', client_host)
93
+ unless r.code == 200 && JSON.parse(r.to_str)['health'] == 'true'
94
+ bad_peers += [client_host]
95
+ end
96
+ rescue StandardError
97
+ bad_peers += [client_host]
98
+ end
99
+ end
100
+ if bad_peers.count != 0
101
+ critical "Found bad etcd peers: #{bad_peers}"
102
+ else
103
+ ok 'Etcd healthly'
104
+ end
89
105
  else
90
- critical 'Etcd is not responding'
106
+ r = request('/health', config[:server])
107
+ if r.code == 200 && JSON.parse(r.to_str)['health'] == 'true'
108
+ ok 'Etcd healthy'
109
+ else
110
+ critical 'Etcd unhealthy'
111
+ end
91
112
  end
92
- rescue Errno::ECONNREFUSED
93
- critical 'Etcd is not responding'
113
+
114
+ rescue Errno::ECONNREFUSED => e
115
+ critical 'Etcd is not responding' + e.message
94
116
  rescue RestClient::RequestTimeout
95
117
  critical 'Etcd Connection timed out'
118
+ rescue StandardError => e
119
+ unknown 'A exception occurred:' + e.message
120
+ end
121
+
122
+ def request(path, server)
123
+ protocol = config[:ssl] ? 'https' : 'http'
124
+ RestClient::Resource.new("#{protocol}://#{server}:#{config[:port]}/#{path}",
125
+ timeout: 5,
126
+ ssl_client_cert: (OpenSSL::X509::Certificate.new(File.read(config[:cert])) unless config[:cert].nil?),
127
+ ssl_client_key: (OpenSSL::PKey::RSA.new(File.read(config[:key]), config[:passphrase]) unless config[:key].nil?),
128
+ ssl_ca_file: config[:ca],
129
+ verify_ssl: config[:insecure] ? 0 : 1).get
96
130
  end
97
131
  end
@@ -0,0 +1,130 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # check-flannel-subnet-count
4
+ #
5
+ # DESCRIPTION:
6
+ # This plugin checks that the number of flannel subnets is within limits
7
+ #
8
+ # OUTPUT:
9
+ # plain text
10
+ #
11
+ # PLATFORMS:
12
+ # Linux
13
+ #
14
+ # DEPENDENCIES:
15
+ # gem: sensu-plugin
16
+ # gem: rest-client
17
+ #
18
+ # USAGE:
19
+ # #YELLOW
20
+ #
21
+ # NOTES:
22
+ #
23
+ # LICENSE:
24
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
25
+ # for details.
26
+ #
27
+
28
+ require 'sensu-plugin/check/cli'
29
+ require 'rest-client'
30
+ require 'openssl'
31
+ require 'uri'
32
+ require 'json'
33
+
34
+ #
35
+ # Etcd Node Status
36
+ #
37
+ class FlannelSubnetStatus < Sensu::Plugin::Check::CLI
38
+ option :server,
39
+ description: 'Etcd host, defaults to localhost',
40
+ short: '-h HOST',
41
+ long: '--host HOST',
42
+ default: 'localhost'
43
+
44
+ option :port,
45
+ description: 'Etcd port, defaults to 2379',
46
+ short: '-p PORT',
47
+ long: '--port PORT',
48
+ default: '2379'
49
+
50
+ option :cert,
51
+ description: 'client SSL cert',
52
+ long: '--cert CERT',
53
+ default: nil
54
+
55
+ option :key,
56
+ description: 'client SSL key',
57
+ long: '--key KEY',
58
+ default: nil
59
+
60
+ option :passphrase,
61
+ description: 'passphrase of the SSL key',
62
+ long: '--passphrase PASSPHRASE',
63
+ default: nil
64
+
65
+ option :ca,
66
+ description: 'SSL CA file',
67
+ long: '--ca CA',
68
+ default: nil
69
+
70
+ option :insecure,
71
+ description: 'change SSL verify mode to false',
72
+ long: '--insecure'
73
+
74
+ option :ssl,
75
+ description: 'use HTTPS (default false)',
76
+ long: '--ssl'
77
+
78
+ option :warncount,
79
+ description: 'Warn when number of subnets exceeds the max minus this threshold',
80
+ short: '-w COUNT',
81
+ long: '--warn COUNT',
82
+ default: 20,
83
+ proc: proc(&:to_i)
84
+
85
+ def run
86
+ begin # Get the network configuration
87
+ flannel_config = request('v2/keys/coreos.com/network/config', config[:server])
88
+ # The value is stored as a json string within the json, so we have to parse, pull out the string and re-parse...
89
+ num_address = JSON.parse(JSON.parse(flannel_config.to_str)['node']['value'])['Network']
90
+ subnet_len = JSON.parse(JSON.parse(flannel_config.to_str)['node']['value'])['SubnetLen']
91
+ rescue StandardError => e
92
+ critical "Could not fetch network configuration: #{e.message}"
93
+ end
94
+
95
+ begin # Calculate the number of available subnets
96
+ network_cidr = num_address[num_address.index('/') + 1..-1]
97
+ num_addresses = 2**(32 - network_cidr.to_i)
98
+ num_subnets = num_addresses / (2**(32 - subnet_len.to_i))
99
+ rescue StandardError => e
100
+ critical "Could not parse network configuration: #{e.message}"
101
+ end
102
+
103
+ begin # Calculate the actual number of subnets in use
104
+ data = JSON.parse(request('v2/keys/coreos.com/network/subnets', config[:server]))
105
+ num_address_used = data['node']['nodes'].size
106
+ rescue StandardError => e
107
+ critical "Could not fetch subnet information: #{e.message}"
108
+ end
109
+
110
+ if num_address_used >= num_subnets
111
+ critical "Number of subnets has hit max capacity. Threshold: #{num_subnets} Actual: #{num_address_used}"
112
+ elsif num_address_used >= num_subnets - config[:warncount]
113
+ warning "Subnet threshold count exceeded. Threshold: #{num_subnets - config[:warncount]} Actual: #{num_address_used}"
114
+ else
115
+ ok "Number of subnets below threshold. #{num_address_used} total subnets"
116
+ end
117
+ end
118
+
119
+ def request(path, server)
120
+ protocol = config[:ssl] ? 'https' : 'http'
121
+ RestClient::Resource.new(
122
+ "#{protocol}://#{server}:#{config[:port]}/#{path}",
123
+ timeout: 5,
124
+ ssl_client_cert: (OpenSSL::X509::Certificate.new(File.read(config[:cert])) unless config[:cert].nil?),
125
+ ssl_client_key: (OpenSSL::PKey::RSA.new(File.read(config[:key]), config[:passphrase]) unless config[:key].nil?),
126
+ ssl_ca_file: config[:ca],
127
+ verify_ssl: config[:insecure] ? 0 : 1
128
+ ).get
129
+ end
130
+ end
data/bin/metrics-etcd.rb CHANGED
@@ -59,8 +59,48 @@ class EtcdMetrics < Sensu::Plugin::Metric::CLI::Graphite
59
59
  boolean: true,
60
60
  default: false
61
61
 
62
- def run # rubocop:disable all
63
- client = Etcd.client(host: config[:etcd_host], port: config[:etcd_port])
62
+ option :cert,
63
+ description: 'client SSL cert',
64
+ long: '--cert CERT',
65
+ default: nil
66
+
67
+ option :key,
68
+ description: 'client SSL key',
69
+ long: '--key KEY',
70
+ default: nil
71
+
72
+ option :passphrase,
73
+ description: 'passphrase of the SSL key',
74
+ long: '--passphrase PASSPHRASE',
75
+ default: nil
76
+
77
+ option :ca,
78
+ description: 'SSL CA file',
79
+ long: '--ca CA',
80
+ default: nil
81
+
82
+ option :insecure,
83
+ description: 'change SSL verify mode to false',
84
+ long: '--insecure'
85
+
86
+ option :ssl,
87
+ description: 'use HTTPS (default false)',
88
+ long: '--ssl'
89
+
90
+ def run
91
+ if config[:ssl]
92
+ client = Etcd.client(
93
+ host: config[:etcd_host],
94
+ port: config[:etcd_port],
95
+ use_ssl: config[:ssl],
96
+ verify_mode: (config[:insecure] ? OpenSSL::SSL::VERIFY_NONE : OpenSSL::SSL::VERIFY_PEER),
97
+ ca_file: config[:ca],
98
+ ssl_cert: (OpenSSL::X509::Certificate.new(File.read(config[:cert])) unless config[:cert].nil?),
99
+ ssl_key: (OpenSSL::PKey::RSA.new(File.read(config[:key]), config[:passphrase]) unless config[:key].nil?)
100
+ )
101
+ else
102
+ client = Etcd.client(host: config[:etcd_host], port: config[:etcd_port])
103
+ end
64
104
  client.stats(:self).each do |k, v|
65
105
  output([config[:scheme], 'self', k].join('.'), v) if v.is_a? Integer
66
106
  end
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsEtcd
2
2
  module Version
3
- MAJOR = 0
4
- MINOR = 1
3
+ MAJOR = 1
4
+ MINOR = 0
5
5
  PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
metadata CHANGED
@@ -1,36 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-etcd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRIwEAYDVQQDDAltYXR0
14
- am9uZXMxGDAWBgoJkiaJk/IsZAEZFgh5aWVsZGJvdDETMBEGCgmSJomT8ixkARkW
15
- A2NvbTAeFw0xNTAxMjgyMTAyNTFaFw0xNjAxMjgyMTAyNTFaMEMxEjAQBgNVBAMM
16
- CW1hdHRqb25lczEYMBYGCgmSJomT8ixkARkWCHlpZWxkYm90MRMwEQYKCZImiZPy
17
- LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTSzVYnO
18
- CLgyrIyT1mBQakArQyW8xhi6MlDqyzXHJGeERT790U6EgoBVeS4XoK0ptFZNR8Tf
19
- zko0w+Nv47TarSCgkPOaxY+mxWnAVR10dOmfeLr7huiMyps+YD56/EF2FqQ3jf/+
20
- qohENfKD91qy1ieEy+Fn7Pf74ltbNKUdkb9a9eFXQ0DQ4ip5vik7DzjQkUTj4lca
21
- k6ArwnmHX4YDhZoYtrQJ8jVktN0/+NtA40M5qkCYHNe5tUW25b/tKVYuioxG6b2Z
22
- oIzaZxRLxf6HVAWpCVRT/F5+/yjigkX4u++eYacfLGleXQzoK7BL65vHGMJygWEE
23
- 0TKGqFOrl/L0AQIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
24
- HQ4EFgQUEf6a8Td7MrSZc8ImbLFZAENPbz0wIQYDVR0RBBowGIEWbWF0dGpvbmVz
25
- QHlpZWxkYm90LmNvbTAhBgNVHRIEGjAYgRZtYXR0am9uZXNAeWllbGRib3QuY29t
26
- MA0GCSqGSIb3DQEBBQUAA4IBAQBbzXAYA3BVGw8DZ0YYoY1VHPNEcH5qPIApmHO8
27
- rvSmuUT0yMEi7u00H/5uHRFf4LleGT/+sTdyXKsNPGT9kdRuQEgwi+vf7Zfvd8aX
28
- UF/+4VkEYf/8rV8Ere6u2QaWPgApdMV6JjKr1fAwCTd8AuGXNaWItiPPMseSQzLJ
29
- JKP4hVvbc1d+oS925B1lcBiqn2aYvElbyNAVmQPywNNqkWmvtlqj9ZVJfV5HQLdu
30
- 8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
- HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
- -----END CERTIFICATE-----
33
- date: 2015-08-27 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2016-08-11 00:00:00.000000000 Z
34
12
  dependencies:
35
13
  - !ruby/object:Gem::Dependency
36
14
  name: rest-client
@@ -50,16 +28,16 @@ dependencies:
50
28
  name: sensu-plugin
51
29
  requirement: !ruby/object:Gem::Requirement
52
30
  requirements:
53
- - - '='
31
+ - - "~>"
54
32
  - !ruby/object:Gem::Version
55
- version: 1.2.0
33
+ version: '1.3'
56
34
  type: :runtime
57
35
  prerelease: false
58
36
  version_requirements: !ruby/object:Gem::Requirement
59
37
  requirements:
60
- - - '='
38
+ - - "~>"
61
39
  - !ruby/object:Gem::Version
62
- version: 1.2.0
40
+ version: '1.3'
63
41
  - !ruby/object:Gem::Dependency
64
42
  name: etcd
65
43
  requirement: !ruby/object:Gem::Requirement
@@ -75,143 +53,147 @@ dependencies:
75
53
  - !ruby/object:Gem::Version
76
54
  version: 0.3.0
77
55
  - !ruby/object:Gem::Dependency
78
- name: codeclimate-test-reporter
56
+ name: bundler
79
57
  requirement: !ruby/object:Gem::Requirement
80
58
  requirements:
81
59
  - - "~>"
82
60
  - !ruby/object:Gem::Version
83
- version: '0.4'
61
+ version: '1.7'
84
62
  type: :development
85
63
  prerelease: false
86
64
  version_requirements: !ruby/object:Gem::Requirement
87
65
  requirements:
88
66
  - - "~>"
89
67
  - !ruby/object:Gem::Version
90
- version: '0.4'
68
+ version: '1.7'
91
69
  - !ruby/object:Gem::Dependency
92
- name: rubocop
70
+ name: codeclimate-test-reporter
93
71
  requirement: !ruby/object:Gem::Requirement
94
72
  requirements:
95
- - - '='
73
+ - - "~>"
96
74
  - !ruby/object:Gem::Version
97
- version: '0.30'
75
+ version: '0.4'
98
76
  type: :development
99
77
  prerelease: false
100
78
  version_requirements: !ruby/object:Gem::Requirement
101
79
  requirements:
102
- - - '='
80
+ - - "~>"
103
81
  - !ruby/object:Gem::Version
104
- version: '0.30'
82
+ version: '0.4'
105
83
  - !ruby/object:Gem::Dependency
106
- name: rspec
84
+ name: github-markup
107
85
  requirement: !ruby/object:Gem::Requirement
108
86
  requirements:
109
87
  - - "~>"
110
88
  - !ruby/object:Gem::Version
111
- version: '3.1'
89
+ version: '1.3'
112
90
  type: :development
113
91
  prerelease: false
114
92
  version_requirements: !ruby/object:Gem::Requirement
115
93
  requirements:
116
94
  - - "~>"
117
95
  - !ruby/object:Gem::Version
118
- version: '3.1'
96
+ version: '1.3'
119
97
  - !ruby/object:Gem::Dependency
120
- name: bundler
98
+ name: pry
121
99
  requirement: !ruby/object:Gem::Requirement
122
100
  requirements:
123
101
  - - "~>"
124
102
  - !ruby/object:Gem::Version
125
- version: '1.7'
103
+ version: '0.10'
126
104
  type: :development
127
105
  prerelease: false
128
106
  version_requirements: !ruby/object:Gem::Requirement
129
107
  requirements:
130
108
  - - "~>"
131
109
  - !ruby/object:Gem::Version
132
- version: '1.7'
110
+ version: '0.10'
133
111
  - !ruby/object:Gem::Dependency
134
112
  name: rake
135
113
  requirement: !ruby/object:Gem::Requirement
136
114
  requirements:
137
115
  - - "~>"
138
116
  - !ruby/object:Gem::Version
139
- version: '10.0'
117
+ version: '10.5'
140
118
  type: :development
141
119
  prerelease: false
142
120
  version_requirements: !ruby/object:Gem::Requirement
143
121
  requirements:
144
122
  - - "~>"
145
123
  - !ruby/object:Gem::Version
146
- version: '10.0'
124
+ version: '10.5'
147
125
  - !ruby/object:Gem::Dependency
148
- name: github-markup
126
+ name: redcarpet
149
127
  requirement: !ruby/object:Gem::Requirement
150
128
  requirements:
151
129
  - - "~>"
152
130
  - !ruby/object:Gem::Version
153
- version: '1.3'
131
+ version: '3.2'
154
132
  type: :development
155
133
  prerelease: false
156
134
  version_requirements: !ruby/object:Gem::Requirement
157
135
  requirements:
158
136
  - - "~>"
159
137
  - !ruby/object:Gem::Version
160
- version: '1.3'
138
+ version: '3.2'
161
139
  - !ruby/object:Gem::Dependency
162
- name: redcarpet
140
+ name: rubocop
163
141
  requirement: !ruby/object:Gem::Requirement
164
142
  requirements:
165
143
  - - "~>"
166
144
  - !ruby/object:Gem::Version
167
- version: '3.2'
145
+ version: 0.40.0
168
146
  type: :development
169
147
  prerelease: false
170
148
  version_requirements: !ruby/object:Gem::Requirement
171
149
  requirements:
172
150
  - - "~>"
173
151
  - !ruby/object:Gem::Version
174
- version: '3.2'
152
+ version: 0.40.0
175
153
  - !ruby/object:Gem::Dependency
176
- name: yard
154
+ name: rspec
177
155
  requirement: !ruby/object:Gem::Requirement
178
156
  requirements:
179
157
  - - "~>"
180
158
  - !ruby/object:Gem::Version
181
- version: '0.8'
159
+ version: '3.4'
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
163
  requirements:
186
164
  - - "~>"
187
165
  - !ruby/object:Gem::Version
188
- version: '0.8'
166
+ version: '3.4'
189
167
  - !ruby/object:Gem::Dependency
190
- name: pry
168
+ name: yard
191
169
  requirement: !ruby/object:Gem::Requirement
192
170
  requirements:
193
171
  - - "~>"
194
172
  - !ruby/object:Gem::Version
195
- version: '0.10'
173
+ version: '0.8'
196
174
  type: :development
197
175
  prerelease: false
198
176
  version_requirements: !ruby/object:Gem::Requirement
199
177
  requirements:
200
178
  - - "~>"
201
179
  - !ruby/object:Gem::Version
202
- version: '0.10'
203
- description: Sensu plugins for etcd
180
+ version: '0.8'
181
+ description: Sensu plugins for etcd health and status monitoring
204
182
  email: "<sensu-users@googlegroups.com>"
205
183
  executables:
206
- - metrics-etcd.rb
184
+ - check-etcd-peer-count.rb
207
185
  - check-etcd.rb
186
+ - check-flannel-subnet-count.rb
187
+ - metrics-etcd.rb
208
188
  extensions: []
209
189
  extra_rdoc_files: []
210
190
  files:
211
191
  - CHANGELOG.md
212
192
  - LICENSE
213
193
  - README.md
194
+ - bin/check-etcd-peer-count.rb
214
195
  - bin/check-etcd.rb
196
+ - bin/check-flannel-subnet-count.rb
215
197
  - bin/metrics-etcd.rb
216
198
  - lib/sensu-plugins-etcd.rb
217
199
  - lib/sensu-plugins-etcd/version.rb
@@ -233,7 +215,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
233
215
  requirements:
234
216
  - - ">="
235
217
  - !ruby/object:Gem::Version
236
- version: 1.9.3
218
+ version: 2.0.0
237
219
  required_rubygems_version: !ruby/object:Gem::Requirement
238
220
  requirements:
239
221
  - - ">="
@@ -241,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
241
223
  version: '0'
242
224
  requirements: []
243
225
  rubyforge_project:
244
- rubygems_version: 2.4.8
226
+ rubygems_version: 2.5.1
245
227
  signing_key:
246
228
  specification_version: 4
247
229
  summary: Sensu plugins for etcd
checksums.yaml.gz.sig DELETED
Binary file
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
Binary file