sensu-plugins-rabbitmq 3.0.0 → 3.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 +4 -4
- data/CHANGELOG.md +6 -1
- data/bin/metrics-rabbitmq-queue.rb +32 -9
- data/lib/sensu-plugins-rabbitmq/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c4af6295e3502323bc33b8a0c7e8468fa0bc049
|
4
|
+
data.tar.gz: 7cf40311405259b11315d2266fc1d28b35faa0ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b8628a015ddb462ef3c0ad1e2136c7e260dc9a0c9ee4a8c02d9fcff94a5546ad6a70c1a87a0d98d2d574812f3d37b8debcbcf6fc6b703ce8c5446fe1e0ac0c1
|
7
|
+
data.tar.gz: 8267f2febc301f37f6d0adb030484da3f70f59c5d85e9ecf1ef07a244c5aaed9ccc7076f7ffafd871af0d09651c1e3688325b034226fa68083ab16cb31786209
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,10 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
|
+
## [3.1.0] - 2017-05-16
|
8
|
+
### Added
|
9
|
+
- metrics-rabbitmq-queue.rb: --metrics option to specifiy which metrics to gather (@rthouvenin)
|
10
|
+
|
7
11
|
## [3.0.0] - 2017-05-10
|
8
12
|
### Breaking change
|
9
13
|
- Previously some checks used --user to specify username, now all scripts use --username
|
@@ -129,7 +133,8 @@ NOTE: this release changes the option flags in check-rabbitmq-node-health.rb to
|
|
129
133
|
- Remove copy paste errors in the Readme
|
130
134
|
- Removed Rubygems require Ruby 1.8.7 backwards compatibility from all plugins
|
131
135
|
|
132
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-rabbitmq/compare/3.
|
136
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-rabbitmq/compare/3.1.0...HEAD
|
137
|
+
[3.1.0]: https://github.com/sensu-plugins/sensu-plugins-rabbitmq/compare/3.0.0...3.1.0
|
133
138
|
[3.0.0]: https://github.com/sensu-plugins/sensu-plugins-rabbitmq/compare/2.3.0...3.0.0
|
134
139
|
[2.3.0]: https://github.com/sensu-plugins/sensu-plugins-rabbitmq/compare/2.2.0...2.3.0
|
135
140
|
[2.2.0]: https://github.com/sensu-plugins/sensu-plugins-rabbitmq/compare/2.1.0...2.2.0
|
@@ -5,11 +5,12 @@
|
|
5
5
|
# ===
|
6
6
|
#
|
7
7
|
# DESCRIPTION:
|
8
|
-
# This plugin checks gathers the following per queue rabbitmq metrics:
|
8
|
+
# This plugin checks gathers by default the following per queue rabbitmq metrics:
|
9
9
|
# - message count
|
10
10
|
# - average egress rate
|
11
11
|
# - "drain time" metric, which is the time a queue will take to reach 0 based on the egress rate
|
12
12
|
# - consumer count
|
13
|
+
# The list of gathered metrics can also be specified with an option
|
13
14
|
#
|
14
15
|
# PLATFORMS:
|
15
16
|
# Linux, BSD, Solaris
|
@@ -22,6 +23,7 @@
|
|
22
23
|
# LICENSE:
|
23
24
|
# Copyright 2011 Sonian, Inc <chefs@sonian.net>
|
24
25
|
# Copyright 2015 Tim Smith <tim@cozy.co> and Cozy Services Ltd.
|
26
|
+
# Copyright 2017 Romain Thouvenin <romain@thouvenin.pro>
|
25
27
|
#
|
26
28
|
# Released under the same terms as Sensu (the MIT license); see LICENSE
|
27
29
|
# for details.
|
@@ -68,6 +70,11 @@ class RabbitMQMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
68
70
|
description: 'Regular expression for filtering queues',
|
69
71
|
long: '--filter REGEX'
|
70
72
|
|
73
|
+
option :metrics,
|
74
|
+
description: 'Regular expression for filtering metrics in each queue',
|
75
|
+
long: '--metrics REGEX',
|
76
|
+
default: '^messages$|consumers|drain_time|avg_egress'
|
77
|
+
|
71
78
|
option :ssl,
|
72
79
|
description: 'Enable SSL for connection to the API',
|
73
80
|
long: '--ssl',
|
@@ -109,6 +116,17 @@ class RabbitMQMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
109
116
|
rabbitmq_info.queues
|
110
117
|
end
|
111
118
|
|
119
|
+
def dotted_keys(hash, prefix = '', keys = [])
|
120
|
+
hash.each do |k, v|
|
121
|
+
if v.is_a? Hash
|
122
|
+
keys = dotted_keys(v, prefix + k + '.', keys)
|
123
|
+
else
|
124
|
+
keys << prefix + k
|
125
|
+
end
|
126
|
+
end
|
127
|
+
keys
|
128
|
+
end
|
129
|
+
|
112
130
|
def run
|
113
131
|
timestamp = Time.now.to_i
|
114
132
|
acquire_rabbitmq_queues.each do |queue|
|
@@ -120,16 +138,21 @@ class RabbitMQMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
120
138
|
queue['messages'] ||= 0
|
121
139
|
drain_time = queue['messages'] / queue['backing_queue_status']['avg_egress_rate']
|
122
140
|
drain_time = 0 if drain_time.nan? || drain_time.infinite? # 0 rate with 0 messages is 0 time to drain
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
141
|
+
queue['drain_time'] = drain_time.to_i
|
142
|
+
|
143
|
+
metrics = dotted_keys(queue)
|
144
|
+
metrics.each do |metric|
|
145
|
+
next unless metric.match(config[:metrics])
|
146
|
+
value = queue.dig(*metric.split('.'))
|
147
|
+
# Special case of ingress and egress rates for backward-compatibility
|
148
|
+
if metric =~ 'backing_queue_status.avg'
|
149
|
+
value = format('%.4f', value)
|
150
|
+
metric = metric.split('.')[-1]
|
151
|
+
end
|
152
|
+
output("#{config[:scheme]}.#{queue['name']}.#{metric}", value, timestamp) unless value.nil?
|
127
153
|
end
|
128
|
-
|
129
|
-
# fetch the average egress rate of the queue
|
130
|
-
rate = format('%.4f', queue['backing_queue_status']['avg_egress_rate'])
|
131
|
-
output([config[:scheme], queue['name'], 'avg_egress_rate'].join('.'), rate, timestamp)
|
132
154
|
end
|
155
|
+
|
133
156
|
ok
|
134
157
|
end
|
135
158
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-rabbitmq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.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: 2017-05-
|
11
|
+
date: 2017-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|