sensu-plugins-http-boutetnico 1.0.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.
@@ -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: []