sensu-plugins-http-boutetnico 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,137 @@
1
+ #! /usr/bin/env ruby
2
+ # frozen_string_literal: false
3
+
4
+ # metrics-http-json.rb
5
+ #
6
+ # DESCRIPTION:
7
+ # Hits an HTTP endpoint which emits JSON and pushes data into Graphite.
8
+ #
9
+ # OUTPUT:
10
+ # Graphite formatted data
11
+ #
12
+ # PLATFORMS:
13
+ # Linux
14
+ #
15
+ # DEPENDENCIES:
16
+ # gem: sensu-plugin
17
+ # gem: rest-client
18
+ #
19
+ # USAGE:
20
+ # EX: ./metrics-http-json.rb -u 'http://127.0.0.1:8080/jolokia/read/com\
21
+ # .mchange.v2.c3p0:name=datasource,type=PooledDataSource' -s hostname.c3p0\
22
+ # -m 'Connections::numConnections,BusyConnections::numBusyConnections'\
23
+ # -o 'value'
24
+ #
25
+ # NOTES:
26
+ # The metric option is a comma separated list of the metric (how it will
27
+ # appear in Graphite) and the JSON key which holds the value you want to
28
+ # graph. The object option is optional and is the name of the JSON object
29
+ # which holds the key/value pairs you want to graph.
30
+ #
31
+ # LICENSE:
32
+ # phamby@gmail.com
33
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
34
+ # for details.
35
+ #
36
+
37
+ require 'sensu-plugin/metric/cli'
38
+ require 'rest-client'
39
+ require 'socket'
40
+ require 'json'
41
+ require 'uri'
42
+ #
43
+ # HttpJsonGraphite - see description above
44
+ #
45
+ class HttpJsonGraphite < Sensu::Plugin::Metric::CLI::Graphite
46
+ option :url,
47
+ description: 'Full URL to the endpoint',
48
+ short: '-u URL',
49
+ long: '--url URL',
50
+ default: 'http://localhost:8080'
51
+
52
+ option :scheme,
53
+ description: 'Metric naming scheme',
54
+ short: '-s SCHEME',
55
+ long: '--scheme SCHEME',
56
+ default: Socket.gethostname.to_s
57
+
58
+ option :metric,
59
+ description: 'Metric/JSON key pair ex:Connections::numConnections',
60
+ short: '-m METRIC::JSONKEY',
61
+ long: '--metric METRIC::JSONKEY'
62
+
63
+ option :headers,
64
+ description: 'Additional HTTP request headers to send. Example: Authorization:XYZ,User-Agent:ABC',
65
+ short: '-H HEADER1:val,HEADER2:val',
66
+ long: '--headers HEADER1:val,HEADER2:val'
67
+
68
+ option :object,
69
+ description: 'The JSON object containing the data',
70
+ short: '-o OBJECT',
71
+ long: '--object OBJECT'
72
+
73
+ option :insecure,
74
+ description: 'By default, every SSL connection made is verified to be secure. This option allows you to disable the verification',
75
+ short: '-k',
76
+ long: '--insecure',
77
+ boolean: true,
78
+ default: false
79
+
80
+ option :debug,
81
+ short: '-d',
82
+ long: '--debug',
83
+ default: false
84
+
85
+ def run
86
+ puts "args config: #{config}" if config[:debug]
87
+
88
+ scheme = config[:scheme].to_s
89
+ metric_pair_input = config[:metric].to_s
90
+ if config[:object]
91
+ object = config[:object].to_s
92
+ end
93
+
94
+ header_dict = {}
95
+ if config[:headers]
96
+ config[:headers].split(',').each do |header|
97
+ h, v = header.split(':', 2)
98
+ header_dict[h] = v.strip
99
+ end
100
+ end
101
+
102
+ # TODO: figure out what to do here
103
+ url = URI.encode(config[:url].to_s) # rubocop:disable Lint/UriEscapeUnescape
104
+ begin
105
+ r = RestClient::Request.execute(
106
+ url: url,
107
+ method: :get,
108
+ verify_ssl: !config[:insecure],
109
+ headers: header_dict
110
+ )
111
+
112
+ puts "Http response: #{r}" if config[:debug]
113
+ metric_pair_array = metric_pair_input.split(/,/)
114
+ metric_pair_array.each do |m|
115
+ metric, attribute = m.to_s.split(/::/)
116
+ puts "metric: #{metric}, attribute: #{attribute}" if config[:debug]
117
+ unless object.nil?
118
+ ::JSON.parse(r)[object].each do |k, v|
119
+ if k == attribute
120
+ output([scheme, metric].join('.'), v)
121
+ end
122
+ end
123
+ end
124
+ ::JSON.parse(r).each do |k, v|
125
+ if k == attribute
126
+ output([scheme, metric].join('.'), v)
127
+ end
128
+ end
129
+ end
130
+ rescue Errno::ECONNREFUSED
131
+ critical "#{config[:url]} is not responding"
132
+ rescue RestClient::RequestTimeout
133
+ critical "#{config[:url]} Connection timed out"
134
+ end
135
+ ok
136
+ end
137
+ end
@@ -0,0 +1,167 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: false
3
+
4
+ #
5
+ # metrics-libcurl
6
+ #
7
+ # DESCRIPTION:
8
+ # Simple wrapper around libcurl for getting timing stats from the various phases
9
+ # of connecting to an HTTP/HTTPS server.
10
+ #
11
+ # OUTPUT:
12
+ # metric data
13
+ #
14
+ # PLATFORMS:
15
+ # Linux
16
+ #
17
+ # DEPENDENCIES:
18
+ # gem: sensu-plugin
19
+ # gem: typhoeus
20
+ #
21
+ # USAGE:
22
+ # #YELLOW
23
+ #
24
+ # NOTES:
25
+ # Based on: metrics-curl.rb
26
+ # by Joe Miller.
27
+ #
28
+ # LICENSE:
29
+ # Copyright 2019 Jef Spaleta
30
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
31
+ # for details.
32
+ #
33
+
34
+ require 'socket'
35
+ require 'English'
36
+ require 'sensu-plugin/metric/cli'
37
+ require 'typhoeus'
38
+ require 'json'
39
+
40
+ #
41
+ # Libcurl Metrics
42
+ #
43
+ class LibcurlMetrics < Sensu::Plugin::Metric::CLI::Graphite
44
+ option :url,
45
+ short: '-u URL',
46
+ long: '--url URL',
47
+ description: 'valid cUrl url to connect (default: http://127.0.0.1:80/)',
48
+ default: 'http://127.0.0.1:80/'
49
+
50
+ option :scheme,
51
+ description: 'Metric naming scheme, text to prepend to metric',
52
+ short: '-s SCHEME',
53
+ long: '--scheme SCHEME',
54
+ default: "#{Socket.gethostname}.curl_timings"
55
+ option :debug,
56
+ description: 'Include debug output, should not use in production.',
57
+ short: '-d',
58
+ long: '--debug',
59
+ default: false
60
+ option :libcurl_options,
61
+ description: 'Libcurl Options as a key/value JSON string',
62
+ short: '-o JSON',
63
+ long: '--options JSON',
64
+ default: '{}'
65
+ option :http_headers,
66
+ description: 'HTTP Request Headers as key/value JSON string',
67
+ short: '-H JSON',
68
+ long: '--headers JSON',
69
+ default: '{}'
70
+ option :http_params,
71
+ description: 'HTTP Request Parameters as key/value JSON string',
72
+ short: '-P JSON',
73
+ long: '--params JSON',
74
+ default: '{}'
75
+ option :http_response_error,
76
+ description: 'return critical status (2) if http response error status encountered (>= 400)',
77
+ short: '-c',
78
+ long: '--critical_http_error',
79
+ default: false
80
+ option :http_redirect_warning,
81
+ description: 'return warning status (1) if http response redirect status encountered (3xx)',
82
+ short: '-w',
83
+ long: '--warn_redirect',
84
+ default: false
85
+ option :help,
86
+ short: '-h',
87
+ long: '--help',
88
+ description: 'Show this message',
89
+ on: :tail,
90
+ boolean: true,
91
+ show_options: true
92
+
93
+ def usage_details
94
+ <<~USAGE
95
+ Detailed Info:
96
+ This wrapper makes use of libcurl directly instead of the curl executable by way of the Typhoeus RubyGem.
97
+ You can provide additional libcurl options via the commandline using the --options argument.
98
+
99
+ Options Examples:
100
+ Follow Redirects: --options '{\"followlocation\": true}'
101
+ Use Proxy: --options '{proxy: \"http://proxyurl.com\", proxyuserpwd: \"user:password\"}'
102
+ Disable TLS Verification: '{\"ssl_verifypeer\": false}'
103
+
104
+ References:
105
+ Typhoeus Docs: https://www.rubydoc.info/gems/typhoeus/1.3.1
106
+ Libcurl Options: https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
107
+ USAGE
108
+ end
109
+
110
+ def run
111
+ if config[:help]
112
+ puts usage_details
113
+ ok
114
+ end
115
+
116
+ puts "[DEBUG] args config: #{config}" if config[:debug]
117
+ begin
118
+ headers = ::JSON.parse(config[:http_headers])
119
+ rescue ::JSON::ParserError
120
+ critical "Error parsing http_headers JSON\n"
121
+ end
122
+ begin
123
+ params = ::JSON.parse(config[:http_params])
124
+ rescue ::JSON::ParserError
125
+ critical "Error parsing http_params JSON\n"
126
+ end
127
+ begin
128
+ hash = ::JSON.parse(config[:libcurl_options])
129
+ rescue ::JSON::ParserError
130
+ critical "Error parsing libcurl_options JSON\n"
131
+ end
132
+
133
+ begin
134
+ opts = Hash[hash.map { |k, v| [k.to_sym, v] }]
135
+ opts[:headers] = headers unless headers.empty?
136
+ opts[:params] = params unless params.empty?
137
+ request = Typhoeus::Request.new(config[:url], opts)
138
+ if config[:debug]
139
+ puts "[DEBUG] Request Options: #{request.options}"
140
+ puts "[DEBUG] Request Base Url: #{request.base_url}"
141
+ puts "[DEBUG] Request Full Url: #{request.url}"
142
+ end
143
+ response = request.run
144
+ Typhoeus.get(config[:url], followlocation: true)
145
+ if config[:debug]
146
+ puts "[DEBUG] Response HTTP Code: #{response.response_code}"
147
+ puts "[DEBUG] Response Return Code: #{response.return_code}"
148
+ end
149
+ rescue TyphoeusError
150
+ critical "Something went wrong\n Request Options: #{request.options}\n Request Base Url: #{request.base_url}\n Request Full Url: #{request.url}"
151
+ end
152
+ output "#{config[:scheme]}.time_total", response.total_time
153
+ output "#{config[:scheme]}.time_namelookup", response.namelookup_time
154
+ output "#{config[:scheme]}.time_connect", response.connect_time
155
+ output "#{config[:scheme]}.time_pretransfer", response.pretransfer_time
156
+ output "#{config[:scheme]}.time_redirect", response.redirect_time
157
+ output "#{config[:scheme]}.time_starttransfer", response.starttransfer_time
158
+ output "#{config[:scheme]}.http_code", response.response_code
159
+ if response.response_code == 0
160
+ critical
161
+ end
162
+
163
+ critical if config[:http_response_error] && response.response_code >= 400
164
+ warning if config[:http_redirect_warning] && response.response_code.between?(300, 399)
165
+ ok
166
+ end
167
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'sensu-plugins-http/version'
4
+ require 'sensu-plugins-http/common'
5
+ require 'sensu-plugins-http/aws-v4'
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SensuPluginsHttp
4
+ module AwsV4
5
+ # Returns a modified request object with AWS v4 signature headers
6
+ # and authentication options (if any)
7
+ #
8
+ # @param [Net::HTTP] http
9
+ # The http object used to execute the request. Used to build uri
10
+ # @param [Net::HTTPGenericRequest] req
11
+ # The http request. Used to populate headers, path, method, and body
12
+ # @param [Hash] options Details about how to configure the request
13
+ # @option options [String] :aws_v4_service
14
+ # AWS service to use in signature. Defaults to 'execute-api'
15
+ # @option options [String] :aws_v4_region
16
+ # AWS region to use in signature. Defaults to
17
+ # ENV['AWS_REGION'] or ENV['AWS_DEFAULT_REGION']
18
+ def apply_v4_signature(http, req, options = {})
19
+ require 'aws-sdk'
20
+
21
+ fake_seahorse = Struct.new(:endpoint, :body, :headers, :http_method)
22
+ headers = {}
23
+ req.each_name { |name| headers[name] = req[name] }
24
+ protocol = http.use_ssl? ? 'https' : 'http'
25
+ uri = URI.parse("#{protocol}://#{http.address}:#{http.port}#{req.path}")
26
+ fake_req = fake_seahorse.new(uri, req.body || '',
27
+ headers, req.method)
28
+
29
+ credentials = Aws::CredentialProviderChain.new.resolve
30
+ service = options[:aws_v4_service] || 'execute-api'
31
+ region = options[:aws_v4_region] || ENV['AWS_REGION'] || ENV['AWS_DEFAULT_REGION']
32
+ signer = Aws::Signers::V4.new(credentials, service, region)
33
+
34
+ signed_req = signer.sign(fake_req)
35
+ signed_req.headers.each { |key, value| req[key] = value }
36
+
37
+ req
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Common
4
+ def initialize
5
+ super()
6
+ aws_config
7
+ end
8
+
9
+ def aws_config
10
+ if config[:aws_access_key_id] && config[:aws_secret_access_key]
11
+ Aws.config.update(
12
+ credentials: Aws::Credentials.new(config[:aws_access_key_id], config[:aws_secret_access_key])
13
+ )
14
+ end
15
+
16
+ Aws.config.update(
17
+ region: config[:aws_region]
18
+ )
19
+ end
20
+
21
+ def merge_s3_config
22
+ return if config[:s3_config_bucket].nil? || config[:s3_config_key].nil?
23
+
24
+ aws_config
25
+
26
+ s3 = Aws::S3::Client.new
27
+ begin
28
+ resp = s3.get_object(bucket: config[:s3_config_bucket], key: config[:s3_config_key])
29
+ s3_config = JSON.parse(resp.body.read, symbolize_names: true)
30
+ config.merge!(s3_config)
31
+ rescue StandardError
32
+ critical 'Error getting config file from s3'
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SensuPluginsHttp
4
+ module Version
5
+ MAJOR = 1
6
+ MINOR = 0
7
+ PATCH = 0
8
+
9
+ VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,290 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sensu-plugins-http-boutetnico
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Sensu-Plugins and contributors
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-07-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: aws-sdk
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: oj
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.10'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.10'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rest-client
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sensu-plugin
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: typhoeus
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.4'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: github-markup
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '3.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '3.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: json
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.3'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.3'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pry
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.13'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.13'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rake
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '13.0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '13.0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rdoc
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: redcarpet
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '3.2'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '3.2'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '3.1'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '3.1'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: 0.85.0
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: 0.85.0
209
+ - !ruby/object:Gem::Dependency
210
+ name: yard
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: 0.9.25
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: 0.9.25
223
+ description: |-
224
+ This plugin provides native HTTP instrumentation
225
+ for monitoring and metrics collection, including:
226
+ response code, JSON response, HTTP last modified,
227
+ SSL expiry, and metrics via `curl`.
228
+ email: "<sensu-users@googlegroups.com>"
229
+ executables:
230
+ - metrics-curl.rb
231
+ - metrics-http-json.rb
232
+ - check-https-cert.rb
233
+ - check-head-redirect.rb
234
+ - check-http-json.rb
235
+ - check-http-cors.rb
236
+ - check-last-modified.rb
237
+ - metrics-libcurl.rb
238
+ - check-http.rb
239
+ - metrics-http-json-deep.rb
240
+ extensions: []
241
+ extra_rdoc_files: []
242
+ files:
243
+ - CHANGELOG.md
244
+ - LICENSE
245
+ - README.md
246
+ - bin/check-head-redirect.rb
247
+ - bin/check-http-cors.rb
248
+ - bin/check-http-json.rb
249
+ - bin/check-http.rb
250
+ - bin/check-https-cert.rb
251
+ - bin/check-last-modified.rb
252
+ - bin/metrics-curl.rb
253
+ - bin/metrics-http-json-deep.rb
254
+ - bin/metrics-http-json.rb
255
+ - bin/metrics-libcurl.rb
256
+ - lib/sensu-plugins-http.rb
257
+ - lib/sensu-plugins-http/aws-v4.rb
258
+ - lib/sensu-plugins-http/common.rb
259
+ - lib/sensu-plugins-http/version.rb
260
+ homepage: https://github.com/boutetnico/sensu-plugins-http
261
+ licenses:
262
+ - MIT
263
+ metadata:
264
+ maintainer: sensu-plugin
265
+ development_status: active
266
+ production_status: unstable - testing recommended
267
+ release_draft: 'false'
268
+ release_prerelease: 'false'
269
+ post_install_message: You can use the embedded Ruby by setting EMBEDDED_RUBY=true
270
+ in /etc/default/sensu
271
+ rdoc_options: []
272
+ require_paths:
273
+ - lib
274
+ required_ruby_version: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: 2.4.0
279
+ required_rubygems_version: !ruby/object:Gem::Requirement
280
+ requirements:
281
+ - - ">="
282
+ - !ruby/object:Gem::Version
283
+ version: '0'
284
+ requirements: []
285
+ rubyforge_project:
286
+ rubygems_version: 2.6.14.4
287
+ signing_key:
288
+ specification_version: 4
289
+ summary: Sensu plugins for various http monitors and metrics
290
+ test_files: []