sensu-plugins-etcd 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -7
- data/README.md +3 -1
- data/bin/check-etcd-peer-count.rb +106 -0
- data/bin/check-etcd.rb +48 -14
- data/bin/check-flannel-subnet-count.rb +130 -0
- data/bin/metrics-etcd.rb +42 -2
- data/lib/sensu-plugins-etcd/version.rb +2 -2
- metadata +43 -61
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 719e2f8bad357bce3388a0a8c3694bd1ba8c0ae9
|
4
|
+
data.tar.gz: 608f276a0bae2bf555e13e72ad2bdeaa754d9d09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-etcd)
|
6
6
|
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-etcd)
|
7
7
|
[](https://gemnasium.com/sensu-plugins/sensu-plugins-etcd)
|
8
|
-
|
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
|
-
|
78
|
-
|
79
|
+
option :allmembers,
|
80
|
+
description: 'check health of all etcd members',
|
81
|
+
long: '--all',
|
82
|
+
short: '-a',
|
83
|
+
default: false
|
79
84
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
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
|
-
|
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
|
-
|
93
|
-
|
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
|
-
|
63
|
-
|
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
|
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:
|
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.
|
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.
|
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:
|
56
|
+
name: bundler
|
79
57
|
requirement: !ruby/object:Gem::Requirement
|
80
58
|
requirements:
|
81
59
|
- - "~>"
|
82
60
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
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: '
|
68
|
+
version: '1.7'
|
91
69
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
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.
|
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.
|
82
|
+
version: '0.4'
|
105
83
|
- !ruby/object:Gem::Dependency
|
106
|
-
name:
|
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
|
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
|
96
|
+
version: '1.3'
|
119
97
|
- !ruby/object:Gem::Dependency
|
120
|
-
name:
|
98
|
+
name: pry
|
121
99
|
requirement: !ruby/object:Gem::Requirement
|
122
100
|
requirements:
|
123
101
|
- - "~>"
|
124
102
|
- !ruby/object:Gem::Version
|
125
|
-
version: '
|
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: '
|
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.
|
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.
|
124
|
+
version: '10.5'
|
147
125
|
- !ruby/object:Gem::Dependency
|
148
|
-
name:
|
126
|
+
name: redcarpet
|
149
127
|
requirement: !ruby/object:Gem::Requirement
|
150
128
|
requirements:
|
151
129
|
- - "~>"
|
152
130
|
- !ruby/object:Gem::Version
|
153
|
-
version: '
|
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: '
|
138
|
+
version: '3.2'
|
161
139
|
- !ruby/object:Gem::Dependency
|
162
|
-
name:
|
140
|
+
name: rubocop
|
163
141
|
requirement: !ruby/object:Gem::Requirement
|
164
142
|
requirements:
|
165
143
|
- - "~>"
|
166
144
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
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:
|
152
|
+
version: 0.40.0
|
175
153
|
- !ruby/object:Gem::Dependency
|
176
|
-
name:
|
154
|
+
name: rspec
|
177
155
|
requirement: !ruby/object:Gem::Requirement
|
178
156
|
requirements:
|
179
157
|
- - "~>"
|
180
158
|
- !ruby/object:Gem::Version
|
181
|
-
version: '
|
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: '
|
166
|
+
version: '3.4'
|
189
167
|
- !ruby/object:Gem::Dependency
|
190
|
-
name:
|
168
|
+
name: yard
|
191
169
|
requirement: !ruby/object:Gem::Requirement
|
192
170
|
requirements:
|
193
171
|
- - "~>"
|
194
172
|
- !ruby/object:Gem::Version
|
195
|
-
version: '0.
|
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.
|
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
|
-
-
|
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:
|
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.
|
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
|