sensu-plugins-consul 0.0.7 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-consul/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-consul)
|
6
6
|
[![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-consul/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-consul)
|
7
7
|
[![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-consul.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-consul)
|
8
|
-
[![Codeship Status for sensu-plugins/sensu-plugins-consul](https://codeship.com/projects/c01130b0-cddd-0132-9d10-36838894891f/status?branch=master)](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