sensu-plugins-http 0.2.1 → 0.3.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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9c309c06264eee4c7d39e9a24be622984ce3c71f
4
- data.tar.gz: a77f72ec94d1e27aea3cbe6dbb7163b46bed56f3
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZTI3NjhiYzA4YmZkZTExOGYyMWUyMDJlNTUxOTJmY2ZkZDRlMzI5Mw==
5
+ data.tar.gz: !binary |-
6
+ ZjE0NTFjZjMwMTg1ZTQ0ODE4MWEwMjdmOTYxNWI2MGRkODgxMzhlOQ==
5
7
  SHA512:
6
- metadata.gz: 9eac5ce3ff21aca15984145a8f979edb90d1b74627c6c9fa26ea3aa51911ae8921d84c8ed3d7806aaf2621022f5afbf04acf7622e718805cdcf3e09f459d426e
7
- data.tar.gz: 93411d49c91be084810b8a518ca198ac518d841dbd2fd801eac8fad0075e948b12d43f2c093d68933506296d795106d0bb9c8b423da1f8de47f2a50bf6aa6f8b
8
+ metadata.gz: !binary |-
9
+ MTJlOTNkYzQ4NDRmNDIwZmRiMDM2ZjE4NWNjZjFmYmNmOTk5NjI3ZjNlMThm
10
+ ZDE3YTVlYmI2OGVhZTYyMDY5YzFlY2I1NzExNzVkYzVkM2M4NTI5YzU2NDA2
11
+ YzQ5NDEwNWIwODBjYjdjYzlkMTQxY2JkMTk2MTk4NTAwOWJiZjg=
12
+ data.tar.gz: !binary |-
13
+ YWVjMDE3MTUwYWU3NzkwMmZjMDNkNzViYTU4NjYzZWFjYjE2MzhhMDU5ZmNi
14
+ MDY0ZmFkNDZkMjkxYzVkYWQ2NDAxNzNmOWYyM2VlMTIxYWQxMmY3YjM3YTZm
15
+ MGI5MGM3OTMyY2RlY2U1MmFmNjYyY2FlOTlkMzE3MDg4NzIxZDY=
data/CHANGELOG.md CHANGED
@@ -3,16 +3,36 @@ 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
7
 
8
- ## 0.2.1 - 2015-12-14
8
+ ## [0.3.0] - 2016-04-08
9
+ ### Added
10
+ - Add `metrics-http-json-deep` plugin that generates metrics from a JSON endpoint
11
+ - Support POST requests in `check-http.rb`
12
+ - Support comma+space-separated headers in `check-http.rb`
13
+ - Add a Test Kitchen config and BATS tests for CI
14
+ - `metrics-curl` now returns the http_code from the request
15
+ - `metrics-curl` will now exit with a warning if the curl call returns non zero
16
+ - Add Ruby 2.3 to travis tests
17
+ - Add usage examples for `check-http`
18
+
19
+ ### Fixed
20
+ - Fix Ruby 2.3 deprecation warning on use of timeout (#35)
21
+
22
+ ### Changed
23
+ - Update to rubocop 0.37 and resolve issues
24
+
25
+ ### Removed
26
+ - Remove Ruby 2.0 from travis tests
27
+
28
+ ## [0.2.1] - 2015-12-14
9
29
  ### Added
10
30
  - Added validation check for proxy url option in check-http.rb
11
31
 
12
32
  ### Fixed
13
33
  - Fixed SSL verification error raised erroneously when using -e flag with check-http.rb
14
34
 
15
- ## 0.2.0 - 2015-11-17
35
+ ## [0.2.0]- 2015-11-17
16
36
  ### Fixed
17
37
  - check-http.rb will no longer fail if the plugin timeout is longer than the net/http default timeout
18
38
  - check-http-json.rb will no longer fail when comparing strings
@@ -32,14 +52,22 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
32
52
  ### Changed
33
53
  - updated sensu-plugin gem to 1.2.0
34
54
 
35
- ## 0.1.0 - 2015-06-18
55
+ ## [0.1.0] - 2015-06-18
36
56
  - A new non-breaking feature - the ability to print the whole response from the http call done in the check-http.rb check to the sensu alert. This can be done by specifying the ```-w``` or ```--whole-response``` parameters.
37
57
  - Gitignore was updated with more files from Intellij IDEA
38
58
 
39
- ## 0.0.2 - 2015-06-03
59
+ ## [0.0.2] - 2015-06-03
40
60
  - Fix the build
41
61
 
42
62
  ## 0.0.1 - 2015-05-21
43
63
 
44
64
  ### Added
45
65
  - Initial release
66
+
67
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-http/compare/0.3.0...HEAD
68
+ [0.3.0]: https://github.com/sensu-plugins/sensu-plugins-http/compare/0.2.1...0.3.0
69
+ [0.2.1]: https://github.com/sensu-plugins/sensu-plugins-http/compare/0.2.0...0.2.1
70
+ [0.2.0]: https://github.com/sensu-plugins/sensu-plugins-http/compare/0.1.1...0.2.0
71
+ [0.1.1]: https://github.com/sensu-plugins/sensu-plugins-http/compare/0.1.0...0.1.1
72
+ [0.1.0]: https://github.com/sensu-plugins/sensu-plugins-http/compare/0.0.2...0.1.0
73
+ [0.0.2]: https://github.com/sensu-plugins/sensu-plugins-http/compare/0.0.1...0.0.2
data/README.md CHANGED
@@ -5,7 +5,6 @@
5
5
  [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-http/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-http)
6
6
  [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-http/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-http)
7
7
  [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-http.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-http)
8
- [![Codeship Status for sensu-plugins/sensu-plugins-http](https://codeship.com/projects/38675d80-ccdc-0132-c33d-1edd85dc7674/status?branch=master)](https://codeship.com/projects/76165)
9
8
 
10
9
  ## Functionality
11
10
 
@@ -15,6 +14,7 @@
15
14
  * bin/check-https-cert.rb
16
15
  * bin/check-last-modified.rb
17
16
  * bin/metrics-curl.rb
17
+ * bin/metrics-http-json-deep.rb
18
18
 
19
19
  ## Usage
20
20
 
@@ -73,7 +73,7 @@ class CheckJson < Sensu::Plugin::Check::CLI
73
73
  end
74
74
 
75
75
  begin
76
- timeout(config[:timeout]) do
76
+ Timeout.timeout(config[:timeout]) do
77
77
  acquire_resource
78
78
  end
79
79
  rescue Timeout::Error
@@ -104,11 +104,11 @@ class CheckJson < Sensu::Plugin::Check::CLI
104
104
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE if config[:insecure]
105
105
  end
106
106
 
107
- if config[:method] == 'POST'
108
- req = Net::HTTP::Post.new([config[:path], config[:query]].compact.join('?'))
109
- else
110
- req = Net::HTTP::Get.new([config[:path], config[:query]].compact.join('?'))
111
- end
107
+ req = if config[:method] == 'POST'
108
+ Net::HTTP::Post.new([config[:path], config[:query]].compact.join('?'))
109
+ else
110
+ Net::HTTP::Get.new([config[:path], config[:query]].compact.join('?'))
111
+ end
112
112
  if config[:postbody]
113
113
  post_body = IO.readlines(config[:postbody])
114
114
  req.body = post_body.join
@@ -134,11 +134,11 @@ class CheckJson < Sensu::Plugin::Check::CLI
134
134
  keys = config[:key].scan(/(?:\\\.|[^.])+/).map { |key| key.gsub(/\\./, '.') }
135
135
 
136
136
  leaf = keys.reduce(json) do |tree, key|
137
- fail "could not find key: #{config[:key]}" unless tree.key?(key)
137
+ raise "could not find key: #{config[:key]}" unless tree.key?(key)
138
138
  tree[key]
139
139
  end
140
140
 
141
- fail "unexpected value for key: '#{config[:value]}' != '#{leaf}'" unless leaf.to_s == config[:value].to_s
141
+ raise "unexpected value for key: '#{config[:value]}' != '#{leaf}'" unless leaf.to_s == config[:value].to_s
142
142
 
143
143
  ok "key has expected value: '#{config[:key]}' = '#{config[:value]}'"
144
144
  rescue => e
data/bin/check-http.rb CHANGED
@@ -16,7 +16,17 @@
16
16
  # gem: sensu-plugin
17
17
  #
18
18
  # USAGE:
19
- # #YELLOW
19
+ # Basic HTTP check - expect a 200 response
20
+ # check-http.rb -u http://my.site.com
21
+ #
22
+ # Pattern check - expect a 200 response and the string 'OK' in the body
23
+ # check-http.rb -u http://my.site.com/health -q 'OK'
24
+ #
25
+ # Check response code - expect a 301 response
26
+ # check-http.rb -u https://my.site.com/redirect --response-code 301 -r
27
+ #
28
+ # Use a proxy to check a URL
29
+ # check-http.rb -u https://www.google.com --proxy-url http://my.proxy.com:3128
20
30
  #
21
31
  # NOTES:
22
32
  #
@@ -65,10 +75,22 @@ class CheckHttp < Sensu::Plugin::Check::CLI
65
75
  long: '--request-uri PATH',
66
76
  description: 'Specify a uri path'
67
77
 
78
+ option :method,
79
+ short: '-m GET|POST',
80
+ long: '--method GET|POST',
81
+ description: 'Specify a GET or POST operation; defaults to GET',
82
+ in: %w(GET POST),
83
+ default: 'GET'
84
+
68
85
  option :header,
69
86
  short: '-H HEADER',
70
87
  long: '--header HEADER',
71
- description: 'Check for a HEADER'
88
+ description: 'Send one or more comma-separated headers with the request'
89
+
90
+ option :body,
91
+ short: '-b BODY',
92
+ long: '--body BODY',
93
+ description: 'Send a body string with the request'
72
94
 
73
95
  option :ssl,
74
96
  short: '-s',
@@ -180,7 +202,7 @@ class CheckHttp < Sensu::Plugin::Check::CLI
180
202
  end
181
203
 
182
204
  begin
183
- timeout(config[:timeout]) do
205
+ Timeout.timeout(config[:timeout]) do
184
206
  acquire_resource
185
207
  end
186
208
  rescue Timeout::Error
@@ -232,7 +254,12 @@ class CheckHttp < Sensu::Plugin::Check::CLI
232
254
  end
233
255
  end
234
256
 
235
- req = Net::HTTP::Get.new(config[:request_uri], 'User-Agent' => config[:ua])
257
+ req = case config[:method]
258
+ when 'GET'
259
+ Net::HTTP::Get.new(config[:request_uri], 'User-Agent' => config[:ua])
260
+ when 'POST'
261
+ Net::HTTP::Post.new(config[:request_uri], 'User-Agent' => config[:ua])
262
+ end
236
263
 
237
264
  if !config[:user].nil? && !config[:password].nil?
238
265
  req.basic_auth config[:user], config[:password]
@@ -240,20 +267,22 @@ class CheckHttp < Sensu::Plugin::Check::CLI
240
267
  if config[:header]
241
268
  config[:header].split(',').each do |header|
242
269
  h, v = header.split(':', 2)
243
- req[h] = v.strip
270
+ req[h.strip] = v.strip
244
271
  end
245
272
  end
273
+ req.body = config[:body] if config[:body]
274
+
246
275
  res = http.request(req)
247
276
 
248
- if config[:whole_response]
249
- body = "\n" + res.body
250
- else
251
- if config[:response_bytes]
252
- body = "\n" + res.body[0..config[:response_bytes]]
253
- else
254
- body = ''
255
- end
256
- end
277
+ body = if config[:whole_response]
278
+ "\n" + res.body
279
+ else
280
+ body = if config[:response_bytes] # rubocop:disable Lint/UselessAssignment
281
+ "\n" + res.body[0..config[:response_bytes]]
282
+ else
283
+ ''
284
+ end
285
+ end
257
286
 
258
287
  if config[:require_bytes] && res.body.length != config[:require_bytes]
259
288
  critical "Response was #{res.body.length} bytes instead of #{config[:require_bytes]}" + body
@@ -298,10 +327,9 @@ class CheckHttp < Sensu::Plugin::Check::CLI
298
327
  critical(res.code + body) unless config[:response_code]
299
328
  else
300
329
  warning(res.code + body) unless config[:response_code]
301
- end
330
+ end
302
331
 
303
- # #YELLOW
304
- if config[:response_code] # rubocop:disable GuardClause
332
+ if config[:response_code]
305
333
  if config[:response_code] == res.code
306
334
  ok "#{res.code}, #{size} bytes" + body
307
335
  else
@@ -62,11 +62,11 @@ class CheckHttpCert < Sensu::Plugin::Check::CLI
62
62
  uri = URI.parse(config[:url])
63
63
  http = Net::HTTP.new(uri.host, uri.port)
64
64
  http.use_ssl = true
65
- if config[:insecure]
66
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
67
- else
68
- http.verify_mode = OpenSSL::SSL::VERIFY_PEER
69
- end
65
+ http.verify_mode = if config[:insecure]
66
+ OpenSSL::SSL::VERIFY_NONE
67
+ else
68
+ OpenSSL::SSL::VERIFY_PEER
69
+ end
70
70
 
71
71
  http.start do |h|
72
72
  @cert = h.peer_cert
data/bin/metrics-curl.rb CHANGED
@@ -29,6 +29,7 @@
29
29
  #
30
30
 
31
31
  require 'socket'
32
+ require 'English'
32
33
  require 'sensu-plugin/metric/cli'
33
34
 
34
35
  #
@@ -56,19 +57,24 @@ class CurlMetrics < Sensu::Plugin::Metric::CLI::Graphite
56
57
 
57
58
  def run
58
59
  cmd = "curl --silent --output /dev/null #{config[:curl_args]} "
59
- cmd += '-w "%{time_total},%{time_namelookup},%{time_connect},%{time_pretransfer},%{time_redirect},%{time_starttransfer}" '
60
+ cmd += '-w "%{time_total},%{time_namelookup},%{time_connect},%{time_pretransfer},%{time_redirect},%{time_starttransfer},%{http_code}" '
60
61
  cmd += config[:url]
61
62
 
62
63
  output = `#{cmd}`
63
64
 
64
- (time_total, time_namelookup, time_connect, time_pretransfer, time_redirect, time_starttransfer) = output.split(',')
65
+ (time_total, time_namelookup, time_connect, time_pretransfer, time_redirect, time_starttransfer, http_code) = output.split(',')
65
66
  output "#{config[:scheme]}.time_total", time_total
66
67
  output "#{config[:scheme]}.time_namelookup", time_namelookup
67
68
  output "#{config[:scheme]}.time_connect", time_connect
68
69
  output "#{config[:scheme]}.time_pretransfer", time_pretransfer
69
70
  output "#{config[:scheme]}.time_redirect", time_redirect
70
71
  output "#{config[:scheme]}.time_starttransfer", time_starttransfer
72
+ output "#{config[:scheme]}.http_code", http_code
71
73
 
72
- ok
74
+ if $CHILD_STATUS.to_i == 0
75
+ ok
76
+ else
77
+ warning
78
+ end
73
79
  end
74
80
  end
@@ -0,0 +1,122 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # metrics-http-json-deep
4
+ #
5
+ # DESCRIPTION:
6
+ # Get metrics in json format via http/https
7
+ #
8
+ # OUTPUT:
9
+ # metric data
10
+ #
11
+ # PLATFORMS:
12
+ # Linux
13
+ #
14
+ # DEPENDENCIES:
15
+ # gem: sensu-plugin
16
+ # gem: uri
17
+ # gem: socket
18
+ # gem: oj
19
+ #
20
+ # USAGE:
21
+ #
22
+ # NOTES:
23
+ #
24
+ # LICENSE:
25
+ # Copyright 2016 Hayato Matsuura
26
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
27
+ # for details.
28
+ #
29
+
30
+ require 'sensu-plugin/metric/cli'
31
+ require 'net/https'
32
+ require 'uri'
33
+ require 'socket'
34
+ require 'oj'
35
+
36
+ #
37
+ # JSON Metrics
38
+ #
39
+ class JsonDeepMetrics < Sensu::Plugin::Metric::CLI::Graphite
40
+ option :url,
41
+ short: '-u URL',
42
+ long: '--url URL',
43
+ description: 'Full URL to JSON, example: https://example.com/foo.json This ignores --hostname and --port options'
44
+
45
+ option :hostname,
46
+ short: '-h HOSTNAME',
47
+ long: '--host HOSTNAME',
48
+ description: 'App server hostname',
49
+ default: '127.0.0.1'
50
+
51
+ option :port,
52
+ short: '-P PORT',
53
+ long: '--port PORT',
54
+ description: 'App server port',
55
+ default: '80'
56
+
57
+ option :path,
58
+ short: '-p PATH',
59
+ long: '--path ROOTPATH',
60
+ description: 'Path for json',
61
+ default: 'status'
62
+
63
+ option :root,
64
+ short: '-r ROOTPATH',
65
+ long: '--rootpath ROOTPATH',
66
+ description: 'Root attribute for json',
67
+ default: 'value'
68
+
69
+ option :scheme,
70
+ description: 'Metric naming scheme, text to prepend to metric',
71
+ short: '-s SCHEME',
72
+ long: '--scheme SCHEME',
73
+ default: "#{Socket.gethostname}.json"
74
+
75
+ option :numonly,
76
+ description: 'Output numbers only',
77
+ short: '-n',
78
+ long: '--number'
79
+
80
+ def deep_value(hash, scheme = '')
81
+ hash.each do |key, value|
82
+ ekey = key.tr(/ /, '_')
83
+ if value.is_a?(Hash)
84
+ deep_value(value, "#{scheme}.#{ekey}")
85
+ else
86
+ output "#{scheme}.#{ekey}", value unless config[:numonly] && !value.is_a?(Fixnum)
87
+ end
88
+ end
89
+ end
90
+
91
+ def run
92
+ found = false
93
+ attempts = 0
94
+ until found || attempts >= 10
95
+ attempts += 1
96
+ if config[:url]
97
+ uri = URI.parse(config[:url])
98
+ http = Net::HTTP.new(uri.host, uri.port)
99
+ if uri.scheme == 'https'
100
+ http.use_ssl = true
101
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
102
+ end
103
+ request = Net::HTTP::Get.new(uri.request_uri)
104
+ response = http.request(request)
105
+ if response.code == '200'
106
+ found = true
107
+ elsif !response.header['location'].nil?
108
+ config[:url] = response.header['location']
109
+ end
110
+ else
111
+ response = Net::HTTP.start(config[:hostname], config[:port]) do |connection|
112
+ request = Net::HTTP::Get.new("/#{config[:path]}")
113
+ connection.request(request)
114
+ end
115
+ end
116
+ end # until
117
+
118
+ metrics = Oj.load(response.body, mode: :compat)
119
+ deep_value(metrics[config[:root]], config[:scheme])
120
+ ok
121
+ end
122
+ end
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsHttp
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 2
5
- PATCH = 1
4
+ MINOR = 3
5
+ PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,189 +1,223 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.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-12-14 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2016-04-08 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
28
  name: bundler
51
29
  requirement: !ruby/object:Gem::Requirement
52
30
  requirements:
53
- - - "~>"
31
+ - - ~>
54
32
  - !ruby/object:Gem::Version
55
33
  version: '1.7'
56
34
  type: :development
57
35
  prerelease: false
58
36
  version_requirements: !ruby/object:Gem::Requirement
59
37
  requirements:
60
- - - "~>"
38
+ - - ~>
61
39
  - !ruby/object:Gem::Version
62
40
  version: '1.7'
63
41
  - !ruby/object:Gem::Dependency
64
42
  name: codeclimate-test-reporter
65
43
  requirement: !ruby/object:Gem::Requirement
66
44
  requirements:
67
- - - "~>"
45
+ - - ~>
68
46
  - !ruby/object:Gem::Version
69
47
  version: '0.4'
70
48
  type: :development
71
49
  prerelease: false
72
50
  version_requirements: !ruby/object:Gem::Requirement
73
51
  requirements:
74
- - - "~>"
52
+ - - ~>
75
53
  - !ruby/object:Gem::Version
76
54
  version: '0.4'
77
55
  - !ruby/object:Gem::Dependency
78
56
  name: github-markup
79
57
  requirement: !ruby/object:Gem::Requirement
80
58
  requirements:
81
- - - "~>"
59
+ - - ~>
82
60
  - !ruby/object:Gem::Version
83
61
  version: '1.3'
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
68
  version: '1.3'
91
69
  - !ruby/object:Gem::Dependency
92
70
  name: pry
93
71
  requirement: !ruby/object:Gem::Requirement
94
72
  requirements:
95
- - - "~>"
73
+ - - ~>
96
74
  - !ruby/object:Gem::Version
97
75
  version: '0.10'
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
82
  version: '0.10'
105
83
  - !ruby/object:Gem::Dependency
106
84
  name: rake
107
85
  requirement: !ruby/object:Gem::Requirement
108
86
  requirements:
109
- - - "~>"
87
+ - - ~>
110
88
  - !ruby/object:Gem::Version
111
89
  version: '10.0'
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
96
  version: '10.0'
119
97
  - !ruby/object:Gem::Dependency
120
98
  name: redcarpet
121
99
  requirement: !ruby/object:Gem::Requirement
122
100
  requirements:
123
- - - "~>"
101
+ - - ~>
124
102
  - !ruby/object:Gem::Version
125
103
  version: '3.2'
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
110
  version: '3.2'
133
111
  - !ruby/object:Gem::Dependency
134
112
  name: rspec
135
113
  requirement: !ruby/object:Gem::Requirement
136
114
  requirements:
137
- - - "~>"
115
+ - - ~>
138
116
  - !ruby/object:Gem::Version
139
117
  version: '3.1'
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
124
  version: '3.1'
147
125
  - !ruby/object:Gem::Dependency
148
126
  name: rubocop
149
127
  requirement: !ruby/object:Gem::Requirement
150
128
  requirements:
151
- - - '='
129
+ - - ~>
152
130
  - !ruby/object:Gem::Version
153
- version: 0.32.1
131
+ version: '0.37'
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: 0.32.1
138
+ version: '0.37'
161
139
  - !ruby/object:Gem::Dependency
162
140
  name: yard
163
141
  requirement: !ruby/object:Gem::Requirement
164
142
  requirements:
165
- - - "~>"
143
+ - - ~>
166
144
  - !ruby/object:Gem::Version
167
145
  version: '0.8'
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
152
  version: '0.8'
175
- description: |-
176
- This plugin provides native HTTP instrumentation
177
- for monitoring and metrics collection, including:
178
- response code, JSON response, HTTP last modified,
179
- SSL expiry, and metrics via `curl`.
180
- email: "<sensu-users@googlegroups.com>"
153
+ - !ruby/object:Gem::Dependency
154
+ name: test-kitchen
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ~>
158
+ - !ruby/object:Gem::Version
159
+ version: '1.6'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ version: '1.6'
167
+ - !ruby/object:Gem::Dependency
168
+ name: kitchen-vagrant
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '0.19'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ~>
179
+ - !ruby/object:Gem::Version
180
+ version: '0.19'
181
+ - !ruby/object:Gem::Dependency
182
+ name: kitchen-localhost
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ~>
186
+ - !ruby/object:Gem::Version
187
+ version: '0.3'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ~>
193
+ - !ruby/object:Gem::Version
194
+ version: '0.3'
195
+ - !ruby/object:Gem::Dependency
196
+ name: net-ssh
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ~>
200
+ - !ruby/object:Gem::Version
201
+ version: '2.9'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ~>
207
+ - !ruby/object:Gem::Version
208
+ version: '2.9'
209
+ description: ! "This plugin provides native HTTP instrumentation\n for
210
+ monitoring and metrics collection, including:\n response
211
+ code, JSON response, HTTP last modified,\n SSL expiry,
212
+ and metrics via `curl`."
213
+ email: <sensu-users@googlegroups.com>
181
214
  executables:
215
+ - metrics-http-json-deep.rb
216
+ - check-http-json.rb
182
217
  - metrics-curl.rb
183
218
  - check-last-modified.rb
184
219
  - check-https-cert.rb
185
220
  - check-http.rb
186
- - check-http-json.rb
187
221
  extensions: []
188
222
  extra_rdoc_files: []
189
223
  files:
@@ -195,6 +229,7 @@ files:
195
229
  - bin/check-https-cert.rb
196
230
  - bin/check-last-modified.rb
197
231
  - bin/metrics-curl.rb
232
+ - bin/metrics-http-json-deep.rb
198
233
  - lib/sensu-plugins-http.rb
199
234
  - lib/sensu-plugins-http/version.rb
200
235
  homepage: https://github.com/sensu-plugins/sensu-plugins-http
@@ -213,17 +248,17 @@ require_paths:
213
248
  - lib
214
249
  required_ruby_version: !ruby/object:Gem::Requirement
215
250
  requirements:
216
- - - ">="
251
+ - - ! '>='
217
252
  - !ruby/object:Gem::Version
218
253
  version: 1.9.3
219
254
  required_rubygems_version: !ruby/object:Gem::Requirement
220
255
  requirements:
221
- - - ">="
256
+ - - ! '>='
222
257
  - !ruby/object:Gem::Version
223
258
  version: '0'
224
259
  requirements: []
225
260
  rubyforge_project:
226
- rubygems_version: 2.4.8
261
+ rubygems_version: 2.4.3
227
262
  signing_key:
228
263
  specification_version: 4
229
264
  summary: Sensu plugins for various http monitors and metrics
checksums.yaml.gz.sig DELETED
Binary file
data.tar.gz.sig DELETED
@@ -1,3 +0,0 @@
1
- n*�7m��n�!�a�s�e�$ͷ˽M�
2
- Fs�*z�M0�Ւ�u�j:4�l�~�Amf�}��>Hz���d�\Oͺq����F�z)1��'�Ӄct��|u�n�E"����W`��u �Td�5,�8�%J��2.-�߯ א�W�N��),�L�v������’v/�A��r�����э�=� ���D���+��E\//˼߽�K��'E�������-�!���Q^�+|�
3
- �b�)'n��M3N�
metadata.gz.sig DELETED
Binary file