sensu-plugins-http 4.0.0 → 4.1.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,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 392f38a532bd780ca05f4ba075e4841ced0b9a1c4fac30fcd1c2f7f4273e8750
4
- data.tar.gz: f86e70a385942944fc43417256a1d9e62bfe04ee508b108f6280db9e8fab15ba
3
+ metadata.gz: 2fc8810ca0cb4a83430c6fec61fe2a3566deecce4ccc33171db3d97fcd6bf34b
4
+ data.tar.gz: b3d8e96a8fc4343291b48597685da546b838ea351815a1b2e953b69346d5d420
5
5
  SHA512:
6
- metadata.gz: e388a8756c7f593ac7a5a2b32bb2386676ed3e33065e9700578bc147af8d68244b192370fb136d82b905f4beeebba7c890826879421ada2fd064c73ff17f5f22
7
- data.tar.gz: 5e16b3a73fb256d5e56f75dd2ca119b5303a82112f4abf92b1e2d2a1269a050fa9b5635082d809f23278fbbf6d150da5ad8eb1aebe5a1164f5a4bfe8ac4ced1c
6
+ metadata.gz: 29198029e8d5a9f6d7242ed1433336fa134489f403b9eaba0000e9df132ac8e9beebbc1a74098938d783a0a2bafe735ef5996fe8c127025dbb29dd9edcb4c441
7
+ data.tar.gz: 94b0200a10ab99d668c98491f8f0517001e4c0c672d2ec011712298c59ea3d95ed8e5af00073d7207bf7dac74af6532aacb6f53fde615aeab96e9ead5e115b4a
data/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [4.1.0] - 2019-02-17
9
+ ### Added
10
+ - `check-http.rb`: Add options to set `--open-timeout` and `--read-timeout` for Net:HTTP. Additionally rescue `Net::OpenTimeout` and `Net::ReadTimeout` exception classes (@johanek)
11
+ - `check-http.rb`: exposed `--dns-timeout` for Ruby DNS Resolver. (@johanek)
12
+
13
+ ### Changed
14
+ - `check-http.rb`: switched to using rubies DNS resolver to allow catching DNS failures when Net::HTTP establishes connection. (@johanek)
15
+
16
+ ### Removed
17
+ - removed codeclimate (@tmonk42)
18
+
8
19
  ## [4.0.0] - 2018-12-17
9
20
  ### Breaking Changes
10
21
  - bumped dependency of `sensu-plugin` to `~> 3.0` (@dependabot) @majormoses
@@ -214,7 +225,8 @@ This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins
214
225
  ### Added
215
226
  - Initial release
216
227
 
217
- [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-http/compare/4.0.0...HEAD
228
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-http/compare/4.1.0...HEAD
229
+ [4.1.0]: https://github.com/sensu-plugins/sensu-plugins-http/compare/4.0.0...4.1.0
218
230
  [4.0.0]: https://github.com/sensu-plugins/sensu-plugins-http/compare/3.0.1...4.0.0
219
231
  [3.0.1]: https://github.com/sensu-plugins/sensu-plugins-http/compare/3.0.0...3.0.1
220
232
  [3.0.0]: https://github.com/sensu-plugins/sensu-plugins-http/compare/2.11.0...3.0.0
data/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-http.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-http)
4
4
  [![Gem Version](https://badge.fury.io/rb/sensu-plugins-http.svg)](http://badge.fury.io/rb/sensu-plugins-http)
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
- [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-http/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-http)
7
5
  [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-http.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-http)
8
6
 
9
7
  ## Functionality
data/bin/check-http.rb CHANGED
@@ -59,6 +59,7 @@ require 'sensu-plugin/check/cli'
59
59
  require 'net/http'
60
60
  require 'net/https'
61
61
  require 'digest'
62
+ require 'resolv-replace'
62
63
 
63
64
  #
64
65
  # Check HTTP
@@ -165,9 +166,27 @@ class CheckHttp < Sensu::Plugin::Check::CLI
165
166
  short: '-t SECS',
166
167
  long: '--timeout SECS',
167
168
  proc: proc(&:to_i),
168
- description: 'Set the timeout',
169
+ description: 'Set the total execution timeout in seconds',
169
170
  default: 15
170
171
 
172
+ option :open_timeout,
173
+ long: '--open-timeout SECS',
174
+ proc: proc(&:to_i),
175
+ description: 'Number of seconds to wait for the connection to open',
176
+ default: 15
177
+
178
+ option :read_timeout,
179
+ long: '--read-timeout SECS',
180
+ proc: proc(&:to_i),
181
+ description: 'Number of seconds to wait for one block to be read',
182
+ default: 15
183
+
184
+ option :dns_timeout,
185
+ long: '--dns-timeout SECS',
186
+ proc: proc(&:to_f),
187
+ description: 'Number of seconds to allow for DNS resolution. Accepts decimal number.',
188
+ default: 0.8
189
+
171
190
  option :redirectok,
172
191
  short: '-r',
173
192
  boolean: true,
@@ -250,10 +269,20 @@ class CheckHttp < Sensu::Plugin::Check::CLI
250
269
  config[:port] ||= config[:ssl] ? 443 : 80
251
270
  end
252
271
 
272
+ # Use Ruby DNS Resolver and set DNS resolution timeout to dns_timeout value
273
+ hosts_resolver = Resolv::Hosts.new
274
+ dns_resolver = Resolv::DNS.new
275
+ dns_resolver.timeouts = config[:dns_timeout]
276
+ Resolv::DefaultResolver.replace_resolvers([hosts_resolver, dns_resolver])
277
+
253
278
  begin
254
279
  Timeout.timeout(config[:timeout]) do
255
280
  acquire_resource
256
281
  end
282
+ rescue Net::OpenTimeout
283
+ critical 'Request timed out opening connection'
284
+ rescue Net::ReadTimeout
285
+ critical 'Request timed out reading data'
257
286
  rescue Timeout::Error
258
287
  critical 'Request timed out'
259
288
  rescue StandardError => e
@@ -279,8 +308,8 @@ class CheckHttp < Sensu::Plugin::Check::CLI
279
308
  else
280
309
  http = Net::HTTP.new(config[:host], config[:port])
281
310
  end
282
- http.read_timeout = config[:timeout]
283
- http.open_timeout = config[:timeout]
311
+ http.read_timeout = config[:read_timeout]
312
+ http.open_timeout = config[:open_timeout]
284
313
  http.ssl_timeout = config[:timeout]
285
314
  http.continue_timeout = config[:timeout]
286
315
  http.keep_alive_timeout = config[:timeout]
@@ -3,7 +3,7 @@
3
3
  module SensuPluginsHttp
4
4
  module Version
5
5
  MAJOR = 4
6
- MINOR = 0
6
+ MINOR = 1
7
7
  PATCH = 0
8
8
 
9
9
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-19 00:00:00.000000000 Z
11
+ date: 2019-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sensu-plugin
@@ -72,20 +72,6 @@ dependencies:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
74
  version: '1.7'
75
- - !ruby/object:Gem::Dependency
76
- name: codeclimate-test-reporter
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '0.4'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '0.4'
89
75
  - !ruby/object:Gem::Dependency
90
76
  name: github-markup
91
77
  requirement: !ruby/object:Gem::Requirement
@@ -148,14 +134,14 @@ dependencies:
148
134
  requirements:
149
135
  - - "~>"
150
136
  - !ruby/object:Gem::Version
151
- version: '0.19'
137
+ version: '1.3'
152
138
  type: :development
153
139
  prerelease: false
154
140
  version_requirements: !ruby/object:Gem::Requirement
155
141
  requirements:
156
142
  - - "~>"
157
143
  - !ruby/object:Gem::Version
158
- version: '0.19'
144
+ version: '1.3'
159
145
  - !ruby/object:Gem::Dependency
160
146
  name: pry
161
147
  requirement: !ruby/object:Gem::Requirement
@@ -314,7 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
314
300
  - !ruby/object:Gem::Version
315
301
  version: '0'
316
302
  requirements: []
317
- rubygems_version: 3.0.0
303
+ rubygems_version: 3.0.2
318
304
  signing_key:
319
305
  specification_version: 4
320
306
  summary: Sensu plugins for various http monitors and metrics