sensu-plugins-outlyer 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +5 -0
- data/README.md +5 -12
- data/bin/outlyer-metrics.rb +25 -15
- data/lib/sensu-plugins-outlyer/version.rb +1 -1
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 46c1c2455d4122918ce986502ba90d6305f5d36edd67d4d98168183d596947f6
|
4
|
+
data.tar.gz: d7bdb065ab7a39cc84cc5b565450aa3df401bcce8cda35cf8a158b6c76a8de0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a61588c67195ff17deedc7a6d8c2c67696c76e68f867984fd4518bfbfe26729cc903b66883d198578b3dbc7012b060c0e56d532e7e3be19ee77b9cbba6f60a5a
|
7
|
+
data.tar.gz: b1b4f5348d643858473e4e9ad11fa21aa25aaf9d8b0a0706e34b316c403ebfe75b34976ab60b852707ba1fc32ff93abfc11a501534f8c12864cc2feb2b90333b
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,11 @@ 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.5.0] - 2018-07-16
|
7
|
+
- Made debug flag boolean
|
8
|
+
- Added additional debug logging for troubleshooting
|
9
|
+
- Added Unit Tests
|
10
|
+
|
6
11
|
## [0.4.0] - 2018-07-13
|
7
12
|
- Added handling for client environments set as array of values
|
8
13
|
- Added schemas so graphite metric names can be parsed into dimensional metrics
|
data/README.md
CHANGED
@@ -27,21 +27,14 @@ handler configuration file with your API details as an environment variable:
|
|
27
27
|
export SENSU_CONFIG_FILES='/Users/dgildeh/Development/Outlyer/sensu-config.json'
|
28
28
|
```
|
29
29
|
|
30
|
-
|
31
|
-
output data using the following command:
|
30
|
+
Ensure your handler has execution permissions set:
|
32
31
|
|
33
32
|
```bash
|
34
|
-
|
33
|
+
chmod +x ./bin/outlyer-metrics.rb
|
35
34
|
```
|
36
|
-
|
35
|
+
|
36
|
+
The run the unit tests:
|
37
37
|
|
38
38
|
```bash
|
39
|
-
|
39
|
+
ruby test/test_outlyer_handler.rb
|
40
40
|
```
|
41
|
-
|
42
|
-
Note you will have to override the check timestamp to the current time so your
|
43
|
-
metrics will appear in Outlyer using the test above:
|
44
|
-
|
45
|
-
```ruby
|
46
|
-
timestamp = Time.now.to_i * 1000
|
47
|
-
```
|
data/bin/outlyer-metrics.rb
CHANGED
@@ -22,6 +22,7 @@
|
|
22
22
|
#
|
23
23
|
# -f: set the Handler's check output format to parse. Can either be `graphite` (default) or `nagios`.
|
24
24
|
# -t: Set the timeout in seconds for the Outlyer API requests
|
25
|
+
# -d: Enable debugging to see additional logging in Output
|
25
26
|
#
|
26
27
|
# NOTES:
|
27
28
|
#
|
@@ -53,10 +54,11 @@ class OutlyerMetrics < Sensu::Handler
|
|
53
54
|
default: '5'
|
54
55
|
|
55
56
|
option :debug,
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
description: 'Enable debug for more verbose output',
|
58
|
+
boolean: true,
|
59
|
+
short: '-d',
|
60
|
+
long: '--debug',
|
61
|
+
default: false
|
60
62
|
|
61
63
|
# Override filters from Sensu::Handler.
|
62
64
|
# They are not appropriate for metric handlers
|
@@ -67,12 +69,7 @@ class OutlyerMetrics < Sensu::Handler
|
|
67
69
|
# Create a handle and event set
|
68
70
|
#
|
69
71
|
def handle
|
70
|
-
|
71
|
-
@debug = false
|
72
|
-
if config[:debug] == 'true'
|
73
|
-
@debug = true
|
74
|
-
end
|
75
|
-
|
72
|
+
|
76
73
|
output = @event['check']['output']
|
77
74
|
check_status = @event['check']['status'].to_f
|
78
75
|
@check_name = @event['check']['name']
|
@@ -84,6 +81,10 @@ class OutlyerMetrics < Sensu::Handler
|
|
84
81
|
end
|
85
82
|
timestamp = @event['check']['executed'].to_i * 1000
|
86
83
|
|
84
|
+
if config[:debug]
|
85
|
+
puts "Handling check #{@check_name} for host #{@host} in environment #{@environment}"
|
86
|
+
end
|
87
|
+
|
87
88
|
# Parse output for metric data
|
88
89
|
metrics = if config[:output_format] == 'nagios' then
|
89
90
|
parse_nagios_output(output, timestamp)
|
@@ -183,8 +184,12 @@ class OutlyerMetrics < Sensu::Handler
|
|
183
184
|
# Get dimensions from metric name
|
184
185
|
schema_parts = scheme['scheme'].split('.')
|
185
186
|
if (metric_parts.length - scheme['metric_name_length'].to_i) != schema_parts.length
|
186
|
-
puts "
|
187
|
-
puts "
|
187
|
+
puts "Scheme Parsing Error: metric parts (#{metric_parts.length - scheme['metric_name_length'].to_i}) is not same length as schema (#{schema_parts.length})"
|
188
|
+
puts "Scheme: #{scheme['scheme']}"
|
189
|
+
puts "Example metric: #{m[0]}"
|
190
|
+
if config[:debug]
|
191
|
+
puts "Event Data: \n#{JSON.pretty_generate(@event)}"
|
192
|
+
end
|
188
193
|
return []
|
189
194
|
end
|
190
195
|
schema_parts.each_with_index do |val,index|
|
@@ -196,7 +201,7 @@ class OutlyerMetrics < Sensu::Handler
|
|
196
201
|
metric_name = sanitize_value(metric_parts.join('.'))
|
197
202
|
end
|
198
203
|
value = m[1].to_f
|
199
|
-
time =
|
204
|
+
time = m[2].to_i * 1000
|
200
205
|
point = create_datapoint(metric_name, value, time, labels)
|
201
206
|
data.push(point)
|
202
207
|
end
|
@@ -242,9 +247,9 @@ class OutlyerMetrics < Sensu::Handler
|
|
242
247
|
request.add_field("Authorization", "Bearer #{settings['outlyer']['api_key']}")
|
243
248
|
request.add_field("accept", "application/json")
|
244
249
|
request.add_field("Content-Type", "application/json")
|
245
|
-
request.body = {samples: datapoints}
|
250
|
+
request.body = JSON.pretty_generate({samples: datapoints})
|
246
251
|
|
247
|
-
if
|
252
|
+
if config[:debug]
|
248
253
|
puts "DEBUG: Outlyer API Payload: #{request.body}"
|
249
254
|
end
|
250
255
|
|
@@ -262,8 +267,13 @@ class OutlyerMetrics < Sensu::Handler
|
|
262
267
|
#
|
263
268
|
rescue Timeout::Error
|
264
269
|
puts 'Outlyer API Error -- timed out while sending metrics'
|
270
|
+
exit(2)
|
265
271
|
rescue => error
|
266
272
|
puts "Outlyer API Error -- failed to send metrics: #{error.message}"
|
267
273
|
puts " #{error.backtrace.join("\n\t")}"
|
274
|
+
if config[:debug]
|
275
|
+
puts "Event Data: \n#{JSON.pretty_generate(@event)}"
|
276
|
+
end
|
277
|
+
exit(2)
|
268
278
|
end
|
269
279
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-outlyer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dataloop Software, INC. Trading as Outlyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.7'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: codeclimate-test-reporter
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.4'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0.4'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: github-markup
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -189,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
175
|
version: '0'
|
190
176
|
requirements: []
|
191
177
|
rubyforge_project:
|
192
|
-
rubygems_version: 2.
|
178
|
+
rubygems_version: 2.7.4
|
193
179
|
signing_key:
|
194
180
|
specification_version: 4
|
195
181
|
summary: Sensu plugins for Outlyer
|