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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 862a9ac244272cb6c2291e84adacf7d73363592f
4
- data.tar.gz: 57ff050c889a7b61fdd7e4a744b1745a48bbf834
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MzI3MDUzOGU1YWFhMjcxNDA5MWNlZGNkM2IyMTgxODYwMGM2ZTA1OQ==
5
+ data.tar.gz: !binary |-
6
+ YTVmZTY5ZmMyNDkzZGQ5ZmI3MDdkZWVmODFmZmQwZmM4NzI2OGE0OQ==
5
7
  SHA512:
6
- metadata.gz: 0170d2e57c44da74fbb0dc1b69f12863286e3cbb77fcd2dd2baaa837e002dde081be5489f81106efd061584a2eebb02aa56400275be6458637bcb9aeda0a5393
7
- data.tar.gz: cc837bbc49ea6bf2bc2759712453c87a0dc546c0c46692c07859b7a8f891ca6f644f828fde53f744132e7c258b63eddea65260c5190f24d20965cf4067bbc5fb
8
+ metadata.gz: !binary |-
9
+ OTczMDgxNTQ3OTBiOWZmNzRhZWZkZTY3MjYzMzdlYzgxNmE4ODVjNjJlNjNi
10
+ NjE4ZmE4ZjVlZmJjZjc0YzU2ZmFiNTM1NmQ5ZDgyMGY2ZmNiMWZlNTRkZGE0
11
+ YjNiODU4YTlkMjIzZDBmNWUyZWVlOWE0MDkzZTExZGMwNzFiMWE=
12
+ data.tar.gz: !binary |-
13
+ MTAyYmVmYWEwYzk2YTk0YjVjNGMzZTRhNjI4YzA0MzNlZTg0YTBlZmQ0MzJi
14
+ NjE5OGY4ODY5ODU2ZDkzYmVlZTI1NmFjYTZkMWI5YjZkNDc5YmIwOGY5YmUx
15
+ MWUzNmMyN2MxNDljZGY3ZWRmZDU3MzkyZTY1N2NlYWViZmVmM2Q=
@@ -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.1 - 2015-05-21
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
@@ -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
@@ -1,10 +1,10 @@
1
1
  #! /usr/bin/env ruby
2
2
  #
3
- # check-consul-leader
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 status/leader and ensures there is a current leader.
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
@@ -1,7 +1,7 @@
1
1
  module SensuPluginsConsul
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 0
4
+ MINOR = 1
5
5
  PATCH = 7
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
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.0.7
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.0
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.0
26
+ version: '1.2'
49
27
  - !ruby/object:Gem::Dependency
50
- name: rest-client
28
+ name: diplomat
51
29
  requirement: !ruby/object:Gem::Requirement
52
30
  requirements:
53
31
  - - '='
54
32
  - !ruby/object:Gem::Version
55
- version: 1.8.0
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: 1.8.0
40
+ version: 0.14.0
63
41
  - !ruby/object:Gem::Dependency
64
- name: diplomat
42
+ name: rest-client
65
43
  requirement: !ruby/object:Gem::Requirement
66
44
  requirements:
67
45
  - - '='
68
46
  - !ruby/object:Gem::Version
69
- version: 0.14.0
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: 0.14.0
54
+ version: 1.8.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.32.1
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.32.1
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.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: '3.2'
152
+ version: '0.37'
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 Consul
204
- email: "<sensu-users@googlegroups.com>"
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: "@mattyjones"
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.8
235
+ rubygems_version: 2.4.5
249
236
  signing_key:
250
237
  specification_version: 4
251
238
  summary: Sensu plugins for Consul
@@ -1,2 +0,0 @@
1
- �4���D��~���`]Jz���d��ze o'P��!�y�K8��� Q�T=];B�?�L��
2
- ՟ޤھ{ &��� �?�Q�zO�Bp���6�FS��Y{����s�lpl�9�L���j�rꓗ�NCa�Nj`b�w�ʅ��Tf����],�8�"����&�&h{��Y�x�̙ Ϭo��)�K�� �����@ ���mXY�Ν̌rF�X�(�����q��~ԟ(��I��;n���D(}���v
data.tar.gz.sig DELETED
@@ -1,2 +0,0 @@
1
- .H1���bC�^ImZ{k�j�
2
- v�:���%��{$ad�|v�E��⃌�Ԁ&��]y�"!>�^�]�sS����p�n��YEW���;|�/��-���ׯ�B�Y������B�;�&�k'�J�*�)"���!�9�c<��f#�����I>�T�����RWR���G���q@��*�ŋ�j��D2��WՃ!��^A�/���3�/�Y&b$���Ѯs��N�̱�e8T�㫩��:~TK�0�j�b��Z�m�1�
metadata.gz.sig DELETED
@@ -1,2 +0,0 @@
1
- #~N��P��Қ�m[[5��L��1�CZ�[9iRZ����=)e4�Sd^���Ω���t���N��vdV�o����GN���M�uژK��oV�%Q^��\��Q�����q3��l< ,��3GM��z|�F�֮@�P��,�zE0
2
- ��r3��g�tSKE�+�.�T��3p���J�)�[�\J�V������fr2}�=BP���/r��џ��t�Z=�i��%۝���+9b[_������K����U?E�|H