sensu-plugins-consul 0.0.7 → 0.1.7
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 +13 -5
- data/CHANGELOG.md +22 -8
- data/README.md +3 -1
- data/bin/check-consul-kv-ttl.rb +164 -0
- data/bin/check-consul-leader.rb +1 -1
- data/bin/check-consul-members.rb +100 -0
- data/bin/check-consul-servers.rb +2 -2
- data/bin/check-consul-service-health.rb +84 -0
- data/lib/sensu-plugins-consul/version.rb +1 -1
- metadata +75 -88
- checksums.yaml.gz.sig +0 -2
- data.tar.gz.sig +0 -2
- metadata.gz.sig +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MzI3MDUzOGU1YWFhMjcxNDA5MWNlZGNkM2IyMTgxODYwMGM2ZTA1OQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YTVmZTY5ZmMyNDkzZGQ5ZmI3MDdkZWVmODFmZmQwZmM4NzI2OGE0OQ==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
OTczMDgxNTQ3OTBiOWZmNzRhZWZkZTY3MjYzMzdlYzgxNmE4ODVjNjJlNjNi
|
10
|
+
NjE4ZmE4ZjVlZmJjZjc0YzU2ZmFiNTM1NmQ5ZDgyMGY2ZmNiMWZlNTRkZGE0
|
11
|
+
YjNiODU4YTlkMjIzZDBmNWUyZWVlOWE0MDkzZTExZGMwNzFiMWE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MTAyYmVmYWEwYzk2YTk0YjVjNGMzZTRhNjI4YzA0MzNlZTg0YTBlZmQ0MzJi
|
14
|
+
NjE5OGY4ODY5ODU2ZDkzYmVlZTI1NmFjYTZkMWI5YjZkNDc5YmIwOGY5YmUx
|
15
|
+
MWUzNmMyN2MxNDljZGY3ZWRmZDU3MzkyZTY1N2NlYWViZmVmM2Q=
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,12 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
|
|
6
6
|
## [Unreleased]
|
7
7
|
- Nothing
|
8
8
|
|
9
|
+
## [0.0.8] - 2016-04-03
|
10
|
+
### Added
|
11
|
+
- check-consul-service-health will check the health of a specific service (Yieldbot)
|
12
|
+
- check-consul-kv-ttl will check Consul KV namespace for timed out global operations (Yieldbot)
|
13
|
+
- Added check to alert on consul cluster members, supports querying wan members @aianchici
|
14
|
+
|
9
15
|
## [0.0.7] - 2015-11-12
|
10
16
|
### Changed
|
11
17
|
- Consul checks with UNKNOWN status should fail gracefully
|
@@ -23,7 +29,7 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
|
|
23
29
|
|
24
30
|
## [0.0.4] - 2015-07-14
|
25
31
|
### Added
|
26
|
-
- Adding script to remove failed consul nodes prior to 72 hour consul window.
|
32
|
+
- Adding script to remove failed consul nodes prior to 72 hour consul window.
|
27
33
|
|
28
34
|
## [0.0.3] - 2015-07-14
|
29
35
|
### Changed
|
@@ -32,15 +38,23 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
|
|
32
38
|
### Fixed
|
33
39
|
- Added check to support removing of failed consul nodes from the cluster
|
34
40
|
|
35
|
-
## 0.0.
|
36
|
-
|
37
|
-
### Added
|
38
|
-
- initial release
|
39
|
-
|
40
|
-
## 0.0.2 - 2015-06-02
|
41
|
-
|
41
|
+
## [0.0.2] - 2015-06-02
|
42
42
|
### Fixed
|
43
43
|
- added binstubs
|
44
44
|
|
45
45
|
### Changed
|
46
46
|
- removed cruft from /lib
|
47
|
+
|
48
|
+
## [0.0.1] - 2015-05-21
|
49
|
+
|
50
|
+
### Added
|
51
|
+
- initial release
|
52
|
+
|
53
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-consul/compare/0.0.8...HEAD
|
54
|
+
[0.0.8]: https://github.com/sensu-plugins/sensu-plugins-consul/compare/0.0.7...0.0.8
|
55
|
+
[0.0.7]: https://github.com/sensu-plugins/sensu-plugins-consul/compare/0.0.6...0.0.7
|
56
|
+
[0.0.6]: https://github.com/sensu-plugins/sensu-plugins-consul/compare/0.0.5...0.0.6
|
57
|
+
[0.0.5]: https://github.com/sensu-plugins/sensu-plugins-consul/compare/0.0.4...0.0.5
|
58
|
+
[0.0.4]: https://github.com/sensu-plugins/sensu-plugins-consul/compare/0.0.3...0.0.4
|
59
|
+
[0.0.3]: https://github.com/sensu-plugins/sensu-plugins-consul/compare/0.0.2...0.0.3
|
60
|
+
[0.0.2]: https://github.com/sensu-plugins/sensu-plugins-consul/compare/0.0.1...0.0.2
|
data/README.md
CHANGED
@@ -5,14 +5,16 @@
|
|
5
5
|
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-consul)
|
6
6
|
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-consul)
|
7
7
|
[](https://gemnasium.com/sensu-plugins/sensu-plugins-consul)
|
8
|
-
[](https://codeship.com/projects/76354)
|
9
8
|
|
10
9
|
## Functionality
|
11
10
|
|
12
11
|
## Files
|
12
|
+
* bin/check-consul-kv-ttl.rb
|
13
|
+
* bin/check-consul-service-health.rb
|
13
14
|
* bin/check-consul-failures.rb
|
14
15
|
* bin/check-consul-leader.rb
|
15
16
|
* bin/check-consul-servers.rb
|
17
|
+
* bin/check-consul-members.rb
|
16
18
|
* bin/check-service-consul.rb
|
17
19
|
|
18
20
|
## Usage
|
@@ -0,0 +1,164 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-consul-kv-ttl
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# This plugin assists in checking a Consul KV namespace for timed out global operations
|
7
|
+
#
|
8
|
+
# OUTPUT:
|
9
|
+
# plain text
|
10
|
+
#
|
11
|
+
# PLATFORMS:
|
12
|
+
# Linux
|
13
|
+
#
|
14
|
+
# DEPENDENCIES:
|
15
|
+
# gem: sensu-plugin
|
16
|
+
# gem: diplomat
|
17
|
+
#
|
18
|
+
# USAGE:
|
19
|
+
# ./check-consul-kv-ttl -kv 'ttl/service/tag' -w 30 -c 60
|
20
|
+
# ./check-consul-kv-ttl -kv 'ttl/service/tag' -w 30 -c 60 -j -t 'date'
|
21
|
+
# ./check-consul-kv-ttl -kv 'ttl/service/tag' -w 30 -c 60 -j -t 'date' -s 'status'
|
22
|
+
#
|
23
|
+
# NOTES:
|
24
|
+
#
|
25
|
+
# LICENSE:
|
26
|
+
# Copyright 2015 Yieldbot, Inc. <devops@yieldbot.com>
|
27
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
28
|
+
# for details.
|
29
|
+
#
|
30
|
+
|
31
|
+
require 'sensu-plugin/check/cli'
|
32
|
+
require 'diplomat'
|
33
|
+
require 'json'
|
34
|
+
require 'time'
|
35
|
+
|
36
|
+
class Hash
|
37
|
+
def dig(dotted_path)
|
38
|
+
parts = dotted_path.split '.', 2
|
39
|
+
match = self[parts[0]]
|
40
|
+
if !parts[1] || match.nil? # rubocop:disable Style/GuardClause
|
41
|
+
return match
|
42
|
+
else
|
43
|
+
return match.dig(parts[1])
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
#
|
49
|
+
# Service Status
|
50
|
+
#
|
51
|
+
class CheckConsulKvTTL < Sensu::Plugin::Check::CLI
|
52
|
+
option :consul,
|
53
|
+
description: 'consul server',
|
54
|
+
long: '--consul SERVER',
|
55
|
+
default: 'http://localhost:8500'
|
56
|
+
|
57
|
+
option :kv,
|
58
|
+
description: 'kv namespace to pull data from',
|
59
|
+
short: '-k NAMESPACE',
|
60
|
+
long: '--kv NAMESPACE',
|
61
|
+
default: nil,
|
62
|
+
required: true
|
63
|
+
|
64
|
+
option :json,
|
65
|
+
description: 'Process the value as JSON',
|
66
|
+
short: '-j',
|
67
|
+
long: '--json',
|
68
|
+
default: true
|
69
|
+
|
70
|
+
option :timestamp_key,
|
71
|
+
description: 'Use the given dotted path to alert based on the time(ISO8601), if processing as JSON',
|
72
|
+
short: '-t PATH',
|
73
|
+
long: '--timestamp PATH',
|
74
|
+
default: nil
|
75
|
+
|
76
|
+
option :status_key,
|
77
|
+
description: 'Use the given dotted path to alert based on the status, if processing as JSON',
|
78
|
+
short: '-s PATH',
|
79
|
+
long: '--status PATH',
|
80
|
+
default: nil
|
81
|
+
|
82
|
+
option :warning,
|
83
|
+
description: 'Warning TTL Threshold',
|
84
|
+
short: '-w THRESHOLD',
|
85
|
+
long: '--warning THRESHOLD',
|
86
|
+
proc: proc { |a| a.to_i },
|
87
|
+
default: 30
|
88
|
+
|
89
|
+
option :critical,
|
90
|
+
description: 'Critical TTL Threshold',
|
91
|
+
short: '-c THRESHOLD',
|
92
|
+
long: '--critical THRESHOLD',
|
93
|
+
proc: proc { |a| a.to_i },
|
94
|
+
default: 60
|
95
|
+
|
96
|
+
# Do work
|
97
|
+
def run
|
98
|
+
Diplomat.configure do |dip|
|
99
|
+
dip.url = config[:consul]
|
100
|
+
end
|
101
|
+
|
102
|
+
begin
|
103
|
+
# Retrieve the kv
|
104
|
+
data = Diplomat::Kv.get(config[:kv])
|
105
|
+
rescue Faraday::ResourceNotFound
|
106
|
+
critical "Key/Value(#{config[:kv]}) pair does not exist in Consul."
|
107
|
+
rescue Exception => e # rubocop:disable Lint/RescueException
|
108
|
+
critical "Unhandled exception(#{e.class}) -- #{e.message}"
|
109
|
+
end
|
110
|
+
|
111
|
+
# Check if the data is JSON or a timestamp
|
112
|
+
if config[:json]
|
113
|
+
begin
|
114
|
+
# Convert the data to JSON
|
115
|
+
json_data = JSON.parse(data)
|
116
|
+
|
117
|
+
# If the status is set add that to the processing chain
|
118
|
+
if config[:status_key]
|
119
|
+
# Dig to the status
|
120
|
+
kv_status = json_data.dig(config[:status_key])
|
121
|
+
|
122
|
+
# Critical if we can not retrieve the status
|
123
|
+
critical "Unable to retrieve status from JSON data: #{data}" if kv_status.nil?
|
124
|
+
|
125
|
+
# Downcase to ease integration
|
126
|
+
kv_status = kv_status.downcase
|
127
|
+
|
128
|
+
# Flag based off of status
|
129
|
+
warning 'Warning status detected!' if %w(warning).include? kv_status
|
130
|
+
critical 'Critical status detected!' if %w(critical unknown).include? kv_status
|
131
|
+
end
|
132
|
+
|
133
|
+
# Dig to the time
|
134
|
+
kv_time = json_data.dig(config[:timestamp_key])
|
135
|
+
|
136
|
+
# Critical if we can not retrieve the time
|
137
|
+
critical "Unable to retrieve time from JSON data: #{data}" if kv_time.nil?
|
138
|
+
rescue JSON::ParserError => e # rubocop:disable Lint/UselessAssignment
|
139
|
+
critical "Unable to parse JSON data: #{data}"
|
140
|
+
end
|
141
|
+
else
|
142
|
+
kv_time = data
|
143
|
+
end
|
144
|
+
|
145
|
+
# Timestamp calculation
|
146
|
+
begin
|
147
|
+
# Convert the time into ISO8601 DateTime object
|
148
|
+
start_time = Time.iso8601(kv_time)
|
149
|
+
|
150
|
+
# Get the current time UTC
|
151
|
+
end_time = Time.now.utc
|
152
|
+
|
153
|
+
# Get diff in seconds between start and end time
|
154
|
+
elapsed_seconds = (end_time - start_time).to_i
|
155
|
+
|
156
|
+
critical "TTL calculation issue -- check date formats -- elapsed seconds is negative(#{elapsed_seconds})" if elapsed_seconds <= -1
|
157
|
+
critical "TTL Expired! Elapsed Time: #{elapsed_seconds}" if elapsed_seconds > config[:critical]
|
158
|
+
warning "TTL Expiration Approaching! Elapsed Time: #{elapsed_seconds}" if elapsed_seconds > config[:warning]
|
159
|
+
ok
|
160
|
+
rescue
|
161
|
+
critical 'Unable to process DateTime objects!'
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
data/bin/check-consul-leader.rb
CHANGED
@@ -61,7 +61,7 @@ class ConsulStatus < Sensu::Plugin::Check::CLI
|
|
61
61
|
def strip_ip(str)
|
62
62
|
ipv4_regex = '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'
|
63
63
|
ipv6_regex = '\[.*\]'
|
64
|
-
if str =~ /^.*#{ipv4_regex}.*$/
|
64
|
+
if str =~ /^.*#{ipv4_regex}.*$/ # rubocop:disable Style/GuardClause
|
65
65
|
return str.match(/#{ipv4_regex}/)
|
66
66
|
elsif str =~ /^.*#{ipv6_regex}.*$/
|
67
67
|
return str[/#{ipv6_regex}/][1..-2]
|
@@ -0,0 +1,100 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-consul-members
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# This plugin checks if consul is up and reachable. It then checks
|
7
|
+
# the status of the members of the cluster to determine if the correct
|
8
|
+
# number of peers are reporting as 'alive'
|
9
|
+
#
|
10
|
+
# OUTPUT:
|
11
|
+
# plain text
|
12
|
+
#
|
13
|
+
# PLATFORMS:
|
14
|
+
# Linux
|
15
|
+
#
|
16
|
+
# DEPENDENCIES:
|
17
|
+
# gem: sensu-plugin
|
18
|
+
# gem: rest-client
|
19
|
+
# gem: json
|
20
|
+
#
|
21
|
+
# USAGE:
|
22
|
+
# Check to make sure the min number of peers needed is present in the cluster
|
23
|
+
# ./check-consul-members -s 127.0.0.1 -p 8500 -g 5 -e 8
|
24
|
+
#
|
25
|
+
# NOTES:
|
26
|
+
#
|
27
|
+
# LICENSE:
|
28
|
+
# Copyright 2015 Sonian, Inc. and contributors. <support@sensuapp.org>
|
29
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
30
|
+
# for details.
|
31
|
+
#
|
32
|
+
|
33
|
+
require 'sensu-plugin/check/cli'
|
34
|
+
require 'rest-client'
|
35
|
+
require 'json'
|
36
|
+
|
37
|
+
#
|
38
|
+
# Consul Status
|
39
|
+
#
|
40
|
+
class ConsulStatus < Sensu::Plugin::Check::CLI
|
41
|
+
option :server,
|
42
|
+
description: 'consul server',
|
43
|
+
short: '-s SERVER',
|
44
|
+
long: '--server SERVER',
|
45
|
+
default: '127.0.0.1'
|
46
|
+
|
47
|
+
option :port,
|
48
|
+
description: 'consul http port',
|
49
|
+
short: '-p PORT',
|
50
|
+
long: '--port PORT',
|
51
|
+
default: '8500'
|
52
|
+
|
53
|
+
option :min,
|
54
|
+
description: 'minimum number of peers',
|
55
|
+
short: '-g GREATER THAN',
|
56
|
+
long: '--greater GREATER THAN',
|
57
|
+
default: 3
|
58
|
+
|
59
|
+
option :expected,
|
60
|
+
description: 'expected number of peers',
|
61
|
+
short: '-e EXPECT',
|
62
|
+
long: '--expect EXPECT',
|
63
|
+
default: 5
|
64
|
+
|
65
|
+
option :wan,
|
66
|
+
description: 'whether to check the wan members',
|
67
|
+
short: '-w',
|
68
|
+
long: '--wan',
|
69
|
+
boolean: false
|
70
|
+
|
71
|
+
def run
|
72
|
+
url = "http://#{config[:server]}:#{config[:port]}/v1/agent/members"
|
73
|
+
if config[:wan]
|
74
|
+
url += '?wan=1'
|
75
|
+
end
|
76
|
+
json = RestClient::Resource.new(url, timeout: 5).get
|
77
|
+
peers = 0
|
78
|
+
members = JSON.parse(json)
|
79
|
+
members.each do |member|
|
80
|
+
# only count the member if its status is alive
|
81
|
+
if member.key?('Tags') && member['Tags']['role'] == 'consul' && member['Status'] == 1
|
82
|
+
peers += 1
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
if peers < config[:min].to_i
|
87
|
+
critical "[#{peers}] peers is below critical threshold of [#{config[:min]}]"
|
88
|
+
elsif peers != config[:expected].to_i
|
89
|
+
warning "[#{peers}] peers is outside of expected count of [#{config[:expected]}]"
|
90
|
+
else
|
91
|
+
ok 'Peers within threshold'
|
92
|
+
end
|
93
|
+
rescue Errno::ECONNREFUSED
|
94
|
+
critical 'Consul is not responding'
|
95
|
+
rescue RestClient::RequestTimeout
|
96
|
+
critical 'Consul Connection timed out'
|
97
|
+
rescue RestClient::Exception => e
|
98
|
+
unknown "Consul returned: #{e}"
|
99
|
+
end
|
100
|
+
end
|
data/bin/check-consul-servers.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
2
|
#
|
3
|
-
# check-consul-
|
3
|
+
# check-consul-servers
|
4
4
|
#
|
5
5
|
# DESCRIPTION:
|
6
6
|
# This plugin checks if consul is up and reachable. It then checks
|
7
|
-
# the
|
7
|
+
# the number of peers matches the excepted value
|
8
8
|
#
|
9
9
|
# OUTPUT:
|
10
10
|
# plain text
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-consul-service-health
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# This plugin assists in checking the check status of a Consul Service
|
7
|
+
# In addition, it provides additional Yieldbot logic for Output containing
|
8
|
+
# JSON.
|
9
|
+
#
|
10
|
+
# OUTPUT:
|
11
|
+
# plain text
|
12
|
+
#
|
13
|
+
# PLATFORMS:
|
14
|
+
# Linux
|
15
|
+
#
|
16
|
+
# DEPENDENCIES:
|
17
|
+
# gem: sensu-plugin
|
18
|
+
# gem: diplomat
|
19
|
+
#
|
20
|
+
# USAGE:
|
21
|
+
# ./check-consul-service-health -s influxdb
|
22
|
+
# ./check-consul-service-health -a
|
23
|
+
#
|
24
|
+
# NOTES:
|
25
|
+
#
|
26
|
+
# LICENSE:
|
27
|
+
# Copyright 2015 Yieldbot, Inc. <devops@yieldbot.com>
|
28
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
29
|
+
# for details.
|
30
|
+
#
|
31
|
+
|
32
|
+
require 'sensu-plugin/check/cli'
|
33
|
+
require 'diplomat'
|
34
|
+
require 'json'
|
35
|
+
|
36
|
+
#
|
37
|
+
# Service Status
|
38
|
+
#
|
39
|
+
class CheckConsulServiceHealth < Sensu::Plugin::Check::CLI
|
40
|
+
option :service,
|
41
|
+
description: 'a service managed by consul',
|
42
|
+
short: '-s SERVICE',
|
43
|
+
long: '--service SERVICE',
|
44
|
+
default: 'consul'
|
45
|
+
|
46
|
+
option :all,
|
47
|
+
description: 'get all services',
|
48
|
+
short: '-a',
|
49
|
+
long: '--all'
|
50
|
+
|
51
|
+
# Get the service checks for the given service
|
52
|
+
def acquire_service_data
|
53
|
+
if config[:all]
|
54
|
+
Diplomat::Health.checks
|
55
|
+
else
|
56
|
+
Diplomat::Health.checks(config[:service])
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Do work
|
61
|
+
def run
|
62
|
+
warnings = false
|
63
|
+
criticals = false
|
64
|
+
checks = {}
|
65
|
+
|
66
|
+
# Process all of the nonpassing service checks
|
67
|
+
acquire_service_data.each do |d|
|
68
|
+
checkId = d['CheckID'] # rubocop:disable Style/VariableName
|
69
|
+
checkStatus = d['Status'] # rubocop:disable Style/VariableName
|
70
|
+
|
71
|
+
# If we are passing do nothing
|
72
|
+
next if checkStatus == 'passing'
|
73
|
+
|
74
|
+
checks[checkId] = d['Output']
|
75
|
+
|
76
|
+
warnings = true if %w(warning).include? checkStatus
|
77
|
+
criticals = true if %w(critical unknown).include? checkStatus
|
78
|
+
end
|
79
|
+
|
80
|
+
critical checks if criticals
|
81
|
+
warning checks if warnings
|
82
|
+
ok
|
83
|
+
end
|
84
|
+
end
|
metadata
CHANGED
@@ -1,212 +1,196 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-consul
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.7
|
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-11-12 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-04-03 00:00:00.000000000 Z
|
34
12
|
dependencies:
|
35
13
|
- !ruby/object:Gem::Dependency
|
36
14
|
name: sensu-plugin
|
37
15
|
requirement: !ruby/object:Gem::Requirement
|
38
16
|
requirements:
|
39
|
-
- -
|
17
|
+
- - ~>
|
40
18
|
- !ruby/object:Gem::Version
|
41
|
-
version: 1.2
|
19
|
+
version: '1.2'
|
42
20
|
type: :runtime
|
43
21
|
prerelease: false
|
44
22
|
version_requirements: !ruby/object:Gem::Requirement
|
45
23
|
requirements:
|
46
|
-
- -
|
24
|
+
- - ~>
|
47
25
|
- !ruby/object:Gem::Version
|
48
|
-
version: 1.2
|
26
|
+
version: '1.2'
|
49
27
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
28
|
+
name: diplomat
|
51
29
|
requirement: !ruby/object:Gem::Requirement
|
52
30
|
requirements:
|
53
31
|
- - '='
|
54
32
|
- !ruby/object:Gem::Version
|
55
|
-
version:
|
33
|
+
version: 0.14.0
|
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:
|
40
|
+
version: 0.14.0
|
63
41
|
- !ruby/object:Gem::Dependency
|
64
|
-
name:
|
42
|
+
name: rest-client
|
65
43
|
requirement: !ruby/object:Gem::Requirement
|
66
44
|
requirements:
|
67
45
|
- - '='
|
68
46
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
47
|
+
version: 1.8.0
|
70
48
|
type: :runtime
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
51
|
requirements:
|
74
52
|
- - '='
|
75
53
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
54
|
+
version: 1.8.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.37'
|
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.37'
|
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:
|
204
|
-
|
180
|
+
version: '0.8'
|
181
|
+
description: ! "This plugin provides native instrumentation for monitoring Consul,
|
182
|
+
including:\n Consul server service and cluster health,
|
183
|
+
and querying the Consul API to check\n for passing/critical
|
184
|
+
services."
|
185
|
+
email: <sensu-users@googlegroups.com>
|
205
186
|
executables:
|
206
|
-
- check-service-consul.rb
|
207
|
-
- check-consul-servers.rb
|
208
|
-
- check-consul-leader.rb
|
209
187
|
- check-consul-failures.rb
|
188
|
+
- check-consul-kv-ttl.rb
|
189
|
+
- check-consul-leader.rb
|
190
|
+
- check-consul-members.rb
|
191
|
+
- check-consul-servers.rb
|
192
|
+
- check-consul-service-health.rb
|
193
|
+
- check-service-consul.rb
|
210
194
|
extensions: []
|
211
195
|
extra_rdoc_files: []
|
212
196
|
files:
|
@@ -214,8 +198,11 @@ files:
|
|
214
198
|
- LICENSE
|
215
199
|
- README.md
|
216
200
|
- bin/check-consul-failures.rb
|
201
|
+
- bin/check-consul-kv-ttl.rb
|
217
202
|
- bin/check-consul-leader.rb
|
203
|
+
- bin/check-consul-members.rb
|
218
204
|
- bin/check-consul-servers.rb
|
205
|
+
- bin/check-consul-service-health.rb
|
219
206
|
- bin/check-service-consul.rb
|
220
207
|
- lib/sensu-plugins-consul.rb
|
221
208
|
- lib/sensu-plugins-consul/version.rb
|
@@ -223,7 +210,7 @@ homepage: https://github.com/sensu-plugins/sensu-plugins-consul
|
|
223
210
|
licenses:
|
224
211
|
- MIT
|
225
212
|
metadata:
|
226
|
-
maintainer:
|
213
|
+
maintainer: ! '@mattyjones'
|
227
214
|
development_status: active
|
228
215
|
production_status: unstable - testing recommended
|
229
216
|
release_draft: 'false'
|
@@ -235,17 +222,17 @@ require_paths:
|
|
235
222
|
- lib
|
236
223
|
required_ruby_version: !ruby/object:Gem::Requirement
|
237
224
|
requirements:
|
238
|
-
- -
|
225
|
+
- - ! '>='
|
239
226
|
- !ruby/object:Gem::Version
|
240
227
|
version: 1.9.3
|
241
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
242
229
|
requirements:
|
243
|
-
- -
|
230
|
+
- - ! '>='
|
244
231
|
- !ruby/object:Gem::Version
|
245
232
|
version: '0'
|
246
233
|
requirements: []
|
247
234
|
rubyforge_project:
|
248
|
-
rubygems_version: 2.4.
|
235
|
+
rubygems_version: 2.4.5
|
249
236
|
signing_key:
|
250
237
|
specification_version: 4
|
251
238
|
summary: Sensu plugins for Consul
|
checksums.yaml.gz.sig
DELETED
data.tar.gz.sig
DELETED
metadata.gz.sig
DELETED