sensu-plugins-haproxy 0.0.1.alpha.2
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 +7 -0
- checksums.yaml.gz.sig +1 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE +22 -0
- data/README.md +54 -0
- data/bin/check-haproxy.rb +179 -0
- data/bin/metrics-haproxy.rb +180 -0
- data/lib/sensu-plugins-haproxy.rb +7 -0
- data.tar.gz.sig +0 -0
- metadata +213 -0
- metadata.gz.sig +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1bcc61fde2191c7150cd2297645dd837a9ffe5e5
|
4
|
+
data.tar.gz: 111481e18f98f5d43003a9d499a37dba6a76ef8c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4e334d056da6ddeef7b621cfe6ebc818bf986e4e836248fb4f299351bfd8de33f72c3a58d1b48f12b0aa7307c64f312f20b8cb37a017a28daa6bdae8b133423d
|
7
|
+
data.tar.gz: b35e324e3866ab7b4fa7afcc7c4c1861db7ea35ca4f5a2cb61edb5fb63927ab7e81951373bbace0efd02389b09cee37864008597c30af62fad211e2a4b7b690d
|
checksums.yaml.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
��\��d�1T�������ƚ�����+��p�4���cΑ�t?CA���@�S;��0�H��}l�q�.�D��\S���q��$ �9N����K���&]b����t��L�F�K���l� p���/O�\��R$��t�_���}���B���4��ػ�Gj��ֆm�yjᱨFXG�g�*�>Y�1#�4����0-bI��hnRK� fDW6��سBp�/�v��J'�bޝ�3����`�
|
data/CHANGELOG.md
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2015 devops@yieldbot.com
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
## Sensu-Plugins-haproxy
|
2
|
+
|
3
|
+
[](https://travis-ci.org/sensu-plugins/sensu-plugins-haproxy)
|
4
|
+
[](http://badge.fury.io/rb/sensu-plugins-haproxy)
|
5
|
+
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-haproxy)
|
6
|
+
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-haproxy)
|
7
|
+
[](https://gemnasium.com/sensu-plugins/sensu-plugins-haproxy)
|
8
|
+
|
9
|
+
## Functionality
|
10
|
+
|
11
|
+
## Files
|
12
|
+
* bin/check-haproxy
|
13
|
+
* bin/metrics-haproxy
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
## Installation
|
18
|
+
|
19
|
+
Add the public key (if you haven’t already) as a trusted certificate
|
20
|
+
|
21
|
+
```
|
22
|
+
gem cert --add <(curl -Ls https://raw.githubusercontent.com/sensu-plugins/sensu-plugins.github.io/master/certs/sensu-plugins.pem)
|
23
|
+
gem install sensu-plugins-haproxy -P MediumSecurity
|
24
|
+
```
|
25
|
+
|
26
|
+
You can also download the key from /certs/ within each repository.
|
27
|
+
|
28
|
+
#### Rubygems
|
29
|
+
|
30
|
+
`gem install sensu-plugins-haproxy`
|
31
|
+
|
32
|
+
#### Bundler
|
33
|
+
|
34
|
+
Add *sensu-plugins-haproxy* to your Gemfile and run `bundle install` or `bundle update`
|
35
|
+
|
36
|
+
#### Chef
|
37
|
+
|
38
|
+
Using the Sensu **sensu_gem** LWRP
|
39
|
+
```
|
40
|
+
sensu_gem 'sensu-plugins-haproxy' do
|
41
|
+
options('--prerelease')
|
42
|
+
version '0.0.1.alpha.1'
|
43
|
+
end
|
44
|
+
```
|
45
|
+
|
46
|
+
Using the Chef **gem_package** resource
|
47
|
+
```
|
48
|
+
gem_package 'sensu-plugins-haproxy' do
|
49
|
+
options('--prerelease')
|
50
|
+
version '0.0.1.alpha.1'
|
51
|
+
end
|
52
|
+
```
|
53
|
+
|
54
|
+
## Notes
|
@@ -0,0 +1,179 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# check-haproxy
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# Defaults to checking if ALL services in the given group are up; with
|
7
|
+
# -1, checks if ANY service is up. with -A, checks all groups.
|
8
|
+
#
|
9
|
+
# OUTPUT:
|
10
|
+
# plain text
|
11
|
+
#
|
12
|
+
# PLATFORMS:
|
13
|
+
# Linux
|
14
|
+
#
|
15
|
+
# DEPENDENCIES:
|
16
|
+
# gem: sensu-plugin
|
17
|
+
# gem: socket
|
18
|
+
# gem: csv
|
19
|
+
# gem: uri
|
20
|
+
#
|
21
|
+
# USAGE:
|
22
|
+
# #YELLOW
|
23
|
+
#
|
24
|
+
# NOTES:
|
25
|
+
#
|
26
|
+
# LICENSE:
|
27
|
+
# Copyright 2011 Sonian, Inc. and contributors. <support@sensuapp.org>
|
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 'net/http'
|
34
|
+
require 'socket'
|
35
|
+
require 'csv'
|
36
|
+
require 'uri'
|
37
|
+
|
38
|
+
#
|
39
|
+
# Check HA Proxy
|
40
|
+
#
|
41
|
+
class CheckHAProxy < Sensu::Plugin::Check::CLI
|
42
|
+
option :stats_source,
|
43
|
+
short: '-S HOSTNAME|SOCKETPATH',
|
44
|
+
long: '--stats HOSTNAME|SOCKETPATH',
|
45
|
+
description: 'HAproxy web stats hostname or path to stats socket',
|
46
|
+
required: true
|
47
|
+
option :port,
|
48
|
+
short: '-P PORT',
|
49
|
+
long: '--port PORT',
|
50
|
+
description: 'HAproxy web stats port',
|
51
|
+
default: '80'
|
52
|
+
option :path,
|
53
|
+
short: '-q STATUSPATH',
|
54
|
+
long: '--statspath STATUSPATH',
|
55
|
+
description: 'HAproxy web stats path',
|
56
|
+
default: '/'
|
57
|
+
option :username,
|
58
|
+
short: '-u USERNAME',
|
59
|
+
long: '--user USERNAME',
|
60
|
+
description: 'HAproxy web stats username'
|
61
|
+
option :password,
|
62
|
+
short: '-p PASSWORD',
|
63
|
+
long: '--pass PASSWORD',
|
64
|
+
description: 'HAproxy web stats password'
|
65
|
+
option :warn_percent,
|
66
|
+
short: '-w PERCENT',
|
67
|
+
boolean: true,
|
68
|
+
default: 50,
|
69
|
+
proc: proc(&:to_i),
|
70
|
+
description: 'Warning Percent, default: 50'
|
71
|
+
option :crit_percent,
|
72
|
+
short: '-c PERCENT',
|
73
|
+
boolean: true,
|
74
|
+
default: 25,
|
75
|
+
proc: proc(&:to_i),
|
76
|
+
description: 'Critical Percent, default: 25'
|
77
|
+
option :session_warn_percent,
|
78
|
+
short: '-W PERCENT',
|
79
|
+
boolean: true,
|
80
|
+
default: 75,
|
81
|
+
proc: proc(&:to_i),
|
82
|
+
description: 'Session Limit Warning Percent, default: 75'
|
83
|
+
option :session_crit_percent,
|
84
|
+
short: '-C PERCENT',
|
85
|
+
boolean: true,
|
86
|
+
default: 90,
|
87
|
+
proc: proc(&:to_i),
|
88
|
+
description: 'Session Limit Critical Percent, default: 90'
|
89
|
+
option :all_services,
|
90
|
+
short: '-A',
|
91
|
+
boolean: true,
|
92
|
+
description: 'Check ALL Services, flag enables'
|
93
|
+
option :missing_ok,
|
94
|
+
short: '-m',
|
95
|
+
boolean: true,
|
96
|
+
description: 'Missing OK, flag enables'
|
97
|
+
option :service,
|
98
|
+
short: '-s SVC',
|
99
|
+
description: 'Service Name to Check'
|
100
|
+
option :exact_match,
|
101
|
+
short: '-e',
|
102
|
+
boolean: false,
|
103
|
+
description: 'Whether service name specified with -s should be exact match or not'
|
104
|
+
|
105
|
+
def run #rubocop:disable all
|
106
|
+
if config[:service] || config[:all_services]
|
107
|
+
services = acquire_services
|
108
|
+
else
|
109
|
+
unknown 'No service specified'
|
110
|
+
end
|
111
|
+
|
112
|
+
if services.empty?
|
113
|
+
message "No services matching /#{config[:service]}/"
|
114
|
+
if config[:missing_ok]
|
115
|
+
ok
|
116
|
+
else
|
117
|
+
warning
|
118
|
+
end
|
119
|
+
else
|
120
|
+
percent_up = 100 * services.select { |svc| svc[:status] == 'UP' || svc[:status] == 'OPEN' }.size / services.size
|
121
|
+
failed_names = services.reject { |svc| svc[:status] == 'UP' || svc[:status] == 'OPEN' }.map { |svc| svc[:svname] }
|
122
|
+
critical_sessions = services.select { |svc| svc[:slim].to_i > 0 && (100 * svc[:scur].to_f / svc[:slim].to_f) > config[:session_crit_percent] }
|
123
|
+
warning_sessions = services.select { |svc| svc[:slim].to_i > 0 && (100 * svc[:scur].to_f / svc[:slim].to_f) > config[:session_warn_percent] }
|
124
|
+
|
125
|
+
status = "UP: #{percent_up}% of #{services.size} /#{config[:service]}/ services" + (failed_names.empty? ? '' : ", DOWN: #{failed_names.join(', ')}")
|
126
|
+
if percent_up < config[:crit_percent]
|
127
|
+
critical status
|
128
|
+
elsif !critical_sessions.empty?
|
129
|
+
critical status + '; Active sessions critical: ' + critical_sessions.map { |s| "#{s[:scur]} #{s[:svname]}" }.join(', ')
|
130
|
+
elsif percent_up < config[:warn_percent]
|
131
|
+
warning status
|
132
|
+
elsif !warning_sessions.empty?
|
133
|
+
warning status + '; Active sessions warning: ' + warning_sessions.map { |s| "#{s[:scur]} #{s[:svname]}" }.join(', ')
|
134
|
+
else
|
135
|
+
ok status
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def acquire_services #rubocop:disable all
|
141
|
+
uri = URI.parse(config[:stats_source])
|
142
|
+
|
143
|
+
if uri.is_a?(URI::Generic) && File.socket?(uri.path)
|
144
|
+
srv = UNIXSocket.open(config[:stats_source])
|
145
|
+
srv.write("show stat\n")
|
146
|
+
out = srv.read
|
147
|
+
srv.close
|
148
|
+
else
|
149
|
+
res = Net::HTTP.start(config[:stats_source], config[:port]) do |http|
|
150
|
+
req = Net::HTTP::Get.new("/#{config[:path]};csv;norefresh")
|
151
|
+
unless config[:username].nil?
|
152
|
+
req.basic_auth config[:username], config[:password]
|
153
|
+
end
|
154
|
+
http.request(req)
|
155
|
+
end
|
156
|
+
unless res.code.to_i == 200
|
157
|
+
unknown "Failed to fetch from #{config[:stats_source]}:#{config[:port]}/#{config[:path]}: #{res.code}"
|
158
|
+
end
|
159
|
+
|
160
|
+
out = res.body
|
161
|
+
end
|
162
|
+
|
163
|
+
parsed = CSV.parse(out, skip_blanks: true)
|
164
|
+
keys = parsed.shift.reject(&:nil?).map { |k| k.match(/(\w+)/)[0].to_sym }
|
165
|
+
haproxy_stats = parsed.map { |line| Hash[keys.zip(line)] }
|
166
|
+
|
167
|
+
if config[:all_services]
|
168
|
+
haproxy_stats
|
169
|
+
else
|
170
|
+
regexp = config[:exact_match] ? Regexp.new("^#{config[:service]}$") : Regexp.new("#{config[:service]}")
|
171
|
+
haproxy_stats.select do |svc|
|
172
|
+
svc[:pxname] =~ regexp
|
173
|
+
# #YELLOW
|
174
|
+
end.reject do |svc| # rubocop: disable MultilineBlockChain
|
175
|
+
%w(FRONTEND BACKEND).include?(svc[:svname])
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
@@ -0,0 +1,180 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# metrics-haproxy
|
4
|
+
#
|
5
|
+
# DESCRIPTION:
|
6
|
+
# If you are occassionally seeing "nil output" from this check, make sure you have
|
7
|
+
# sensu-plugin >= 0.1.7. This will provide a better error message.
|
8
|
+
#
|
9
|
+
# OUTPUT:
|
10
|
+
# metric data, etc
|
11
|
+
#
|
12
|
+
# PLATFORMS:
|
13
|
+
# Linux, Windows, BSD, Solaris, etc
|
14
|
+
#
|
15
|
+
# DEPENDENCIES:
|
16
|
+
# gem: sensu-plugin
|
17
|
+
# gem: net/http
|
18
|
+
# gem: net/https
|
19
|
+
# gem: socket
|
20
|
+
# gem: csv
|
21
|
+
# gem: uri
|
22
|
+
#
|
23
|
+
# USAGE:
|
24
|
+
#
|
25
|
+
# NOTES:
|
26
|
+
#
|
27
|
+
# LICENSE:
|
28
|
+
# Pete Shima <me@peteshima.com>, Joe Miller <https://github.com/joemiller>
|
29
|
+
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
30
|
+
# for details.
|
31
|
+
#
|
32
|
+
|
33
|
+
require 'sensu-plugin/metric/cli'
|
34
|
+
require 'net/http'
|
35
|
+
require 'net/https'
|
36
|
+
require 'socket'
|
37
|
+
require 'csv'
|
38
|
+
require 'uri'
|
39
|
+
|
40
|
+
#
|
41
|
+
# HA Proxy Metrics
|
42
|
+
#
|
43
|
+
class HAProxyMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
44
|
+
option :connection,
|
45
|
+
short: '-c HOSTNAME|SOCKETPATH',
|
46
|
+
long: '--connect HOSTNAME|SOCKETPATH',
|
47
|
+
description: 'HAproxy web stats hostname or path to stats socket',
|
48
|
+
required: true
|
49
|
+
|
50
|
+
option :port,
|
51
|
+
short: '-P PORT',
|
52
|
+
long: '--port PORT',
|
53
|
+
description: 'HAproxy web stats port',
|
54
|
+
default: '80'
|
55
|
+
|
56
|
+
option :path,
|
57
|
+
short: '-q STATUSPATH',
|
58
|
+
long: '--statspath STATUSPATH',
|
59
|
+
description: 'HAproxy web stats path (the / will be prepended to the STATUSPATH e.g stats)',
|
60
|
+
default: '/'
|
61
|
+
|
62
|
+
option :username,
|
63
|
+
short: '-u USERNAME',
|
64
|
+
long: '--user USERNAME',
|
65
|
+
description: 'HAproxy web stats username'
|
66
|
+
|
67
|
+
option :password,
|
68
|
+
short: '-p PASSWORD',
|
69
|
+
long: '--pass PASSWORD',
|
70
|
+
description: 'HAproxy web stats password'
|
71
|
+
|
72
|
+
option :scheme,
|
73
|
+
description: 'Metric naming scheme, text to prepend to metric',
|
74
|
+
short: '-s SCHEME',
|
75
|
+
long: '--scheme SCHEME',
|
76
|
+
default: "#{Socket.gethostname}.haproxy"
|
77
|
+
|
78
|
+
option :use_ssl,
|
79
|
+
description: 'Use SSL to connect to HAproxy web stats',
|
80
|
+
short: '-S',
|
81
|
+
long: '--use-ssl',
|
82
|
+
boolean: true,
|
83
|
+
default: false
|
84
|
+
|
85
|
+
option :backends,
|
86
|
+
description: 'comma-separated list of backends to fetch stats from. Default is all backends',
|
87
|
+
short: '-f BACKEND1[,BACKEND2]',
|
88
|
+
long: '--backends BACKEND1[,BACKEND2]',
|
89
|
+
proc: proc { |l| l.split(',') },
|
90
|
+
default: [] # an empty list means show all backends
|
91
|
+
|
92
|
+
option :server_metrics,
|
93
|
+
description: 'Add metrics for backend servers',
|
94
|
+
boolean: true,
|
95
|
+
long: '--server-metrics',
|
96
|
+
default: false
|
97
|
+
|
98
|
+
option :retries,
|
99
|
+
description: 'Number of times to retry fetching stats from haproxy before giving up.',
|
100
|
+
short: '-r RETRIES',
|
101
|
+
long: '--retries RETRIES',
|
102
|
+
default: 3,
|
103
|
+
proc: proc(&:to_i)
|
104
|
+
|
105
|
+
option :retry_interval,
|
106
|
+
description: 'Interval (seconds) between retries',
|
107
|
+
short: '-i SECONDS',
|
108
|
+
long: '--retry_interval SECONDS',
|
109
|
+
default: 1,
|
110
|
+
proc: proc(&:to_i)
|
111
|
+
|
112
|
+
def acquire_stats # rubocop:disable all
|
113
|
+
uri = URI.parse(config[:connection])
|
114
|
+
|
115
|
+
if uri.is_a?(URI::Generic) && File.socket?(uri.path)
|
116
|
+
socket = UNIXSocket.new(config[:connection])
|
117
|
+
socket.puts('show stat')
|
118
|
+
out = socket.read
|
119
|
+
socket.close
|
120
|
+
else
|
121
|
+
res = Net::HTTP.start(config[:connection], config[:port], use_ssl: config[:use_ssl]) do |http|
|
122
|
+
req = Net::HTTP::Get.new("/#{config[:path]};csv;norefresh")
|
123
|
+
unless config[:username].nil?
|
124
|
+
req.basic_auth config[:username], config[:password]
|
125
|
+
end
|
126
|
+
http.request(req)
|
127
|
+
end
|
128
|
+
out = res.body
|
129
|
+
end
|
130
|
+
return out
|
131
|
+
rescue
|
132
|
+
return nil
|
133
|
+
end
|
134
|
+
|
135
|
+
def run #rubocop:disable all
|
136
|
+
out = nil
|
137
|
+
1.upto(config[:retries]) do |_i|
|
138
|
+
out = acquire_stats
|
139
|
+
break unless out.to_s.length.zero?
|
140
|
+
sleep(config[:retry_interval])
|
141
|
+
end
|
142
|
+
|
143
|
+
if out.to_s.length.zero?
|
144
|
+
warning "Unable to fetch stats from haproxy after #{config[:retries]} attempts"
|
145
|
+
end
|
146
|
+
|
147
|
+
parsed = CSV.parse(out)
|
148
|
+
parsed.shift
|
149
|
+
parsed.each do |line|
|
150
|
+
if config[:backends].length > 0
|
151
|
+
next unless config[:backends].include? line[0]
|
152
|
+
end
|
153
|
+
|
154
|
+
if line[1] == 'BACKEND'
|
155
|
+
output "#{config[:scheme]}.#{line[0]}.session_current", line[4]
|
156
|
+
output "#{config[:scheme]}.#{line[0]}.session_total", line[7]
|
157
|
+
output "#{config[:scheme]}.#{line[0]}.bytes_in", line[8]
|
158
|
+
output "#{config[:scheme]}.#{line[0]}.bytes_out", line[9]
|
159
|
+
output "#{config[:scheme]}.#{line[0]}.connection_errors", line[13]
|
160
|
+
output "#{config[:scheme]}.#{line[0]}.warning_retries", line[15]
|
161
|
+
output "#{config[:scheme]}.#{line[0]}.warning_redispatched", line[16]
|
162
|
+
output "#{config[:scheme]}.#{line[0]}.response_1xx", line[39]
|
163
|
+
output "#{config[:scheme]}.#{line[0]}.response_2xx", line[40]
|
164
|
+
output "#{config[:scheme]}.#{line[0]}.response_3xx", line[41]
|
165
|
+
output "#{config[:scheme]}.#{line[0]}.response_4xx", line[42]
|
166
|
+
output "#{config[:scheme]}.#{line[0]}.response_5xx", line[43]
|
167
|
+
output "#{config[:scheme]}.#{line[0]}.response_other", line[44]
|
168
|
+
output "#{config[:scheme]}.#{line[0]}.requests_per_second", line[46]
|
169
|
+
output "#{config[:scheme]}.#{line[0]}.requests_per_second_max", line[47]
|
170
|
+
output "#{config[:scheme]}.#{line[0]}.queue_time", line[58]
|
171
|
+
output "#{config[:scheme]}.#{line[0]}.connect_time", line[59]
|
172
|
+
output "#{config[:scheme]}.#{line[0]}.response_time", line[60]
|
173
|
+
output "#{config[:scheme]}.#{line[0]}.average_time", line[61]
|
174
|
+
elsif config[:server_metrics]
|
175
|
+
output "#{config[:scheme]}.#{line[0]}.#{line[1]}.session_total", line[7]
|
176
|
+
end
|
177
|
+
end
|
178
|
+
ok
|
179
|
+
end
|
180
|
+
end
|
data.tar.gz.sig
ADDED
Binary file
|
metadata
ADDED
@@ -0,0 +1,213 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sensu-plugins-haproxy
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.alpha.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Yieldbot, Inc. and contributors
|
8
|
+
autorequire:
|
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-03-25 00:00:00.000000000 Z
|
34
|
+
dependencies:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: sensu-plugin
|
37
|
+
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 1.1.0
|
42
|
+
type: :runtime
|
43
|
+
prerelease: false
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.1.0
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: codeclimate-test-reporter
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: rubocop
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.17.0
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - '='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 0.17.0
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
name: rspec
|
79
|
+
requirement: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '3.1'
|
84
|
+
type: :development
|
85
|
+
prerelease: false
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '3.1'
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: bundler
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '1.7'
|
98
|
+
type: :development
|
99
|
+
prerelease: false
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '1.7'
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: rake
|
107
|
+
requirement: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '10.0'
|
112
|
+
type: :development
|
113
|
+
prerelease: false
|
114
|
+
version_requirements: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '10.0'
|
119
|
+
- !ruby/object:Gem::Dependency
|
120
|
+
name: github-markup
|
121
|
+
requirement: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '1.3'
|
126
|
+
type: :development
|
127
|
+
prerelease: false
|
128
|
+
version_requirements: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '1.3'
|
133
|
+
- !ruby/object:Gem::Dependency
|
134
|
+
name: redcarpet
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '3.2'
|
140
|
+
type: :development
|
141
|
+
prerelease: false
|
142
|
+
version_requirements: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - "~>"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '3.2'
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
name: yard
|
149
|
+
requirement: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - "~>"
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0.8'
|
154
|
+
type: :development
|
155
|
+
prerelease: false
|
156
|
+
version_requirements: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - "~>"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0.8'
|
161
|
+
- !ruby/object:Gem::Dependency
|
162
|
+
name: pry
|
163
|
+
requirement: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - "~>"
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0.10'
|
168
|
+
type: :development
|
169
|
+
prerelease: false
|
170
|
+
version_requirements: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - "~>"
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0.10'
|
175
|
+
description: Sensu Plugins for haproxy
|
176
|
+
email: "<sensu-users@googlegroups.com>"
|
177
|
+
executables:
|
178
|
+
- check-haproxy.rb
|
179
|
+
- metrics-haproxy.rb
|
180
|
+
extensions: []
|
181
|
+
extra_rdoc_files: []
|
182
|
+
files:
|
183
|
+
- CHANGELOG.md
|
184
|
+
- LICENSE
|
185
|
+
- README.md
|
186
|
+
- bin/check-haproxy.rb
|
187
|
+
- bin/metrics-haproxy.rb
|
188
|
+
- lib/sensu-plugins-haproxy.rb
|
189
|
+
homepage: https://github.com/sensu-plugins/sensu-plugins-haproxy
|
190
|
+
licenses:
|
191
|
+
- MIT
|
192
|
+
metadata: {}
|
193
|
+
post_install_message:
|
194
|
+
rdoc_options: []
|
195
|
+
require_paths:
|
196
|
+
- lib
|
197
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 1.9.3
|
202
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - ">"
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: 1.3.1
|
207
|
+
requirements: []
|
208
|
+
rubyforge_project:
|
209
|
+
rubygems_version: 2.2.2
|
210
|
+
signing_key:
|
211
|
+
specification_version: 4
|
212
|
+
summary: Sensu Plugins for haproxy
|
213
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|