sensu-plugins-storm 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c0fdcb0a9c62f171a02f5895fd3d9137e9b143f
4
- data.tar.gz: 96e7ba98a36b6ddfbcf2f10f650206a2a414f298
3
+ metadata.gz: fc407ce47c8070b733f54dd4e3efc5336a758968
4
+ data.tar.gz: c3b5b378300a26a4069f00bc42bb14aa8a9fa1d7
5
5
  SHA512:
6
- metadata.gz: 0eaf3b3e760a7a0638cfb3634e3fafa2246d34af19174ce01e344cbebc11f0981de3558a336f15d087fcebd865d060f24cebe5e7941b82faa832994ddd7d49fa
7
- data.tar.gz: dc9d4206cfadebf124e19b669552f95b6e66c52081f18aa2d012eb973b5af6c134911a0549b06ec074e3cbc50bd0b65969215fdc38533ec96c2c90557517d64f
6
+ metadata.gz: 839071bbc2b72b1059fd8ebba744db2dfe34d8866af166c8d95d317892843b60448ef459801d63838f52ed8cb8eac974953ce5c1c96e3740eef438b18a09f685
7
+ data.tar.gz: a1af4cbe8313c7ea6ac3321f47117f7006526cb48352cb753194b34b08d578a6f49db269461fcd6d9be15fb456b205a1f658ef5ada9ebbde5bed69c0d141215f
data/CHANGELOG.md CHANGED
@@ -3,18 +3,23 @@ This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
- # 0.2.1 - 2016-09-01
6
+ # [0.3.0] - 2016-09-01
7
+ ### Added
8
+ - metrics-storm-topologies script
9
+
10
+ # [0.2.1] - 2016-09-01
7
11
  ### changed
8
12
  - fix bug in timeout parsing
9
13
 
10
- # 0.2.0 - 2016-09-01
14
+ # [0.2.0] - 2016-09-01
11
15
  ### Added
12
16
  - check-storm-capacity script
13
17
 
14
- # 0.1.0 - 2016-09-01
18
+ # [0.1.0] - 2016-09-01
15
19
  ### Added
16
20
  - initial release
17
21
 
18
- [0.2.1]: https://github.com/andyroyle/sensu-plugins-storm/compare/0.2.1...HEAD
22
+ [0.3.0]: https://github.com/andyroyle/sensu-plugins-storm/compare/0.3.0...HEAD
23
+ [0.2.1]: https://github.com/andyroyle/sensu-plugins-storm/compare/0.2.1...0.3.0
19
24
  [0.2.0]: https://github.com/andyroyle/sensu-plugins-storm/compare/0.2.0...0.2.1
20
25
  [0.1.0]: https://github.com/andyroyle/sensu-plugins-storm/compare/0.1.0...0.2.0
data/README.md CHANGED
@@ -10,6 +10,7 @@
10
10
  ## Files
11
11
  * bin/check-storm-topologies.rb
12
12
  * bin/check-storm-capacity.rb
13
+ * bin/metrics-storm-topologies.rb
13
14
 
14
15
  ## Usage
15
16
 
@@ -24,6 +25,12 @@
24
25
  /opt/sensu/embedded/bin$ /opt/sensu/embedded/bin/ruby check-storm-capacity.rb --host=my-storm-cluster.com -s --user=admin --password=password -w 1 -c 1.5
25
26
  ```
26
27
 
28
+ **check-storm-capacity** example
29
+ ```bash
30
+ /opt/sensu/embedded/bin$ /opt/sensu/embedded/bin/ruby metrics-storm-topologies.rb --host=my-storm-cluster.com -s --user=admin --password=password
31
+ ```
32
+
33
+
27
34
  ## Installation
28
35
 
29
36
  [Installation and Setup](http://sensu-plugins.io/docs/installation_instructions.html)
@@ -17,7 +17,7 @@ require 'uri'
17
17
  require 'json'
18
18
  require 'base64'
19
19
 
20
- class CheckStormTopologies < Sensu::Plugin::Check::CLI
20
+ class CheckStormCapacity < Sensu::Plugin::Check::CLI
21
21
  option :host,
22
22
  short: '-h',
23
23
  long: '--host=VALUE',
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Storm Topology Metrics
4
+ # ===
5
+ #
6
+ # Copyright 2016 Andy Royle <ajroyle@gmail.com>
7
+ #
8
+ # Released under the same terms as Sensu (the MIT license); see LICENSE
9
+ # for details.
10
+ #
11
+ # Metrics for storm topologies
12
+
13
+ require 'sensu-plugin/metric/cli'
14
+ require 'rest-client'
15
+ require 'openssl'
16
+ require 'uri'
17
+ require 'json'
18
+ require 'base64'
19
+
20
+ class MetricsStormCapacity < Sensu::Plugin::Metric::CLI::Graphite
21
+ option :host,
22
+ short: '-h',
23
+ long: '--host=VALUE',
24
+ description: 'Cluster host',
25
+ required: true
26
+
27
+ option :user,
28
+ short: '-u',
29
+ long: '--username=VALUE',
30
+ description: 'username',
31
+ required: true
32
+
33
+ option :pass,
34
+ short: '-p',
35
+ long: '--password=VALUE',
36
+ description: 'password',
37
+ required: true
38
+
39
+ option :ssl,
40
+ description: 'use HTTPS (default false)',
41
+ long: '--ssl'
42
+
43
+ option :timeout,
44
+ short: '-t',
45
+ long: '--timeout=VALUE',
46
+ description: 'Timeout in seconds',
47
+ proc: proc { |l| l.to_f },
48
+ default: 5
49
+
50
+ option :scheme,
51
+ short: '-s',
52
+ long: '--scheme=VALUE',
53
+ description: 'Metric naming scheme, text to prepend to metric',
54
+ default: "#{Socket.gethostname}.storm"
55
+
56
+ def request(path)
57
+ protocol = config[:ssl] ? 'https' : 'http'
58
+ auth = Base64.encode64("#{config[:user]}:#{config[:pass]}")
59
+ RestClient::Request.execute(
60
+ method: :get,
61
+ url: "#{protocol}://#{config[:host]}:#{config[:port]}/#{path}",
62
+ timeout: config[:timeout],
63
+ headers: { 'Authorization' => "Basic #{auth}" }
64
+ )
65
+ end
66
+
67
+ def run
68
+ metrics = %w(emitted tasks failed executors processLatency executeLatency transferred capacity acked executed)
69
+
70
+ r = request('/stormui/api/v1/topology/summary')
71
+
72
+ topologies = JSON.parse(r.to_str)['topologies']
73
+ topologies.each do |topology|
74
+ t = request("/stormui/api/v1/topology/#{topology['id']}")
75
+
76
+ bolts = JSON.parse(t.to_str)['bolts']
77
+ bolts.each do |bolt|
78
+ metrics.each { |metric| output "#{config[:scheme]}.#{topology['name']}.#{bolt['boltId']}.#{metric}", bolt[metric] }
79
+ end
80
+
81
+ ok
82
+ end
83
+ end
84
+ end
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsStorm
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 2
5
- PATCH = 1
4
+ MINOR = 3
5
+ PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-storm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Royle
@@ -169,11 +169,13 @@ email: <ajroyle@gmail.com>
169
169
  executables:
170
170
  - check-storm-capacity.rb
171
171
  - check-storm-topologies.rb
172
+ - metrics-storm-topologies.rb
172
173
  extensions: []
173
174
  extra_rdoc_files: []
174
175
  files:
175
176
  - bin/check-storm-capacity.rb
176
177
  - bin/check-storm-topologies.rb
178
+ - bin/metrics-storm-topologies.rb
177
179
  - lib/sensu-plugins-storm/version.rb
178
180
  - lib/sensu-plugins-storm.rb
179
181
  - LICENSE