sensu-plugins-sensu 2.5.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -1
- data/bin/metrics-aggregate.rb +32 -6
- data/bin/metrics-delete-expired-stashes.rb +16 -4
- data/bin/metrics-events.rb +34 -13
- data/lib/sensu-plugins-sensu/version.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74be22e9979ca4bce08680ae287bbdc861afff3afc3783fccd98a1d0a9fbd528
|
4
|
+
data.tar.gz: bd7f1ed317662a1892ed771d7d74b3e8e6a7f8936fa0efd93942631b62b34821
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc717f238a82fcd66675ff1b5b4c441c2f065f2d90f92c89d784f84262d4dbdcebb0c74f91f7be9700b129f98fdc9c765c319d93fe13f83d02c57242c2836fbc
|
7
|
+
data.tar.gz: c2c3a8b78237a623c30484fbdb8e193abced393ae1cbf4e9055cfa0d358c9435d9faddeee4afa58a5896a55262b501f5cf7774c794d392593251409d56061c8a
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,12 @@ Which is based on [Keep A Changelog](http://keepachangelog.com/)
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
### Breaking Change
|
10
|
+
- bumped dependency of `sensu-plugin` to 2.x you can read about it [here](https://github.com/sensu-plugins/sensu-plugin/blob/master/CHANGELOG.md#v200---2017-03-29)
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- `bin/metrics-*`: Used `Sensu::Plugin::Metric::CLI::Generic` class instead of Graphite specific class for metrics. (@bergerx)
|
14
|
+
|
9
15
|
## [2.5.0] - 2018-03-06
|
10
16
|
### Changed
|
11
17
|
- check-stale-results.rb: support https protocol via api/host declaration
|
@@ -116,7 +122,8 @@ Which is based on [Keep A Changelog](http://keepachangelog.com/)
|
|
116
122
|
### Added
|
117
123
|
- initial release
|
118
124
|
|
119
|
-
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/
|
125
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/3.0.0...HEAD
|
126
|
+
[3.0.0]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/2.5.0...3.0.0
|
120
127
|
[2.5.0]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/2.4.1...2.5.0
|
121
128
|
[2.4.1]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/2.4.0...2.4.1
|
122
129
|
[2.4.0]: https://github.com/sensu-plugins/sensu-plugins-sensu/compare/2.3.1...2.4.0
|
data/bin/metrics-aggregate.rb
CHANGED
@@ -5,11 +5,14 @@
|
|
5
5
|
# Walks the /aggregates API to return metrics for
|
6
6
|
# the aggregated output states of each check.
|
7
7
|
#
|
8
|
+
# sensu.aggregates.some_aggregated_check.clients 1 1380251999
|
9
|
+
# sensu.aggregates.some_aggregated_check.checks 125 1380251999
|
8
10
|
# sensu.aggregates.some_aggregated_check.ok 125 1380251999
|
9
11
|
# sensu.aggregates.some_aggregated_check.warning 0 1380251999
|
10
12
|
# sensu.aggregates.some_aggregated_check.critical 0 1380251999
|
11
13
|
# sensu.aggregates.some_aggregated_check.unknown 0 1380251999
|
12
14
|
# sensu.aggregates.some_aggregated_check.total 125 1380251999
|
15
|
+
# sensu.aggregates.some_aggregated_check.stale 0 1380251999
|
13
16
|
# ===
|
14
17
|
#
|
15
18
|
# Authors
|
@@ -28,7 +31,7 @@ require 'json'
|
|
28
31
|
require 'net/http'
|
29
32
|
require 'net/https'
|
30
33
|
|
31
|
-
class AggregateMetrics < Sensu::Plugin::Metric::CLI::
|
34
|
+
class AggregateMetrics < Sensu::Plugin::Metric::CLI::Generic
|
32
35
|
option :api,
|
33
36
|
short: '-a URL',
|
34
37
|
long: '--api URL',
|
@@ -60,10 +63,15 @@ class AggregateMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
60
63
|
proc: proc(&:to_i)
|
61
64
|
|
62
65
|
option :scheme,
|
63
|
-
description: 'Metric naming scheme',
|
66
|
+
description: 'Metric naming scheme for graphite format',
|
64
67
|
long: '--scheme SCHEME',
|
65
68
|
default: "#{Socket.gethostname}.sensu.aggregates"
|
66
69
|
|
70
|
+
option :measurement,
|
71
|
+
description: 'Measurement for influxdb format',
|
72
|
+
long: '--measurement MEASUREMENT',
|
73
|
+
default: 'sensu.aggregates'
|
74
|
+
|
67
75
|
option :debug,
|
68
76
|
long: '--debug',
|
69
77
|
description: 'Verbose output'
|
@@ -76,12 +84,12 @@ class AggregateMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
76
84
|
end
|
77
85
|
req = Net::HTTP::Get.new(resource)
|
78
86
|
r = http.request(req)
|
79
|
-
JSON.parse(r.body)
|
87
|
+
::JSON.parse(r.body)
|
80
88
|
rescue Errno::ECONNREFUSED
|
81
89
|
warning 'Connection refused'
|
82
90
|
rescue Timeout::Error
|
83
91
|
warning 'Connection timed out'
|
84
|
-
rescue JSON::ParserError
|
92
|
+
rescue ::JSON::ParserError
|
85
93
|
warning 'Sensu API returned invalid JSON'
|
86
94
|
end
|
87
95
|
|
@@ -112,10 +120,28 @@ class AggregateMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
112
120
|
# maintain backwards compatibility with 0.23 and newer versions.
|
113
121
|
if count.is_a?(Hash)
|
114
122
|
count.each do |x, y|
|
115
|
-
output
|
123
|
+
output metric_name: x,
|
124
|
+
value: y,
|
125
|
+
graphite_metric_path: "#{config[:scheme]}.#{check['name']}.#{x}",
|
126
|
+
statsd_metric_name: "#{config[:scheme]}.#{check['name']}.#{x}",
|
127
|
+
influxdb_measurement: config[:measurement],
|
128
|
+
tags: {
|
129
|
+
check: check['name'],
|
130
|
+
host: Socket.gethostname
|
131
|
+
},
|
132
|
+
timestamp: timestamp
|
116
133
|
end
|
117
134
|
else
|
118
|
-
output
|
135
|
+
output metric_name: result,
|
136
|
+
value: count,
|
137
|
+
graphite_metric_path: "#{config[:scheme]}.#{check['name']}.#{result}",
|
138
|
+
statsd_metric_name: "#{config[:scheme]}.#{check['name']}.#{result}",
|
139
|
+
influxdb_measurement: config[:measurement],
|
140
|
+
tags: {
|
141
|
+
check: check['name'],
|
142
|
+
host: Socket.gethostname
|
143
|
+
},
|
144
|
+
timestamp: timestamp
|
119
145
|
end
|
120
146
|
end
|
121
147
|
end
|
@@ -16,7 +16,7 @@ require 'socket'
|
|
16
16
|
|
17
17
|
include Sensu::Plugin::Utils
|
18
18
|
|
19
|
-
class CheckSilenced < Sensu::Plugin::Metric::CLI::
|
19
|
+
class CheckSilenced < Sensu::Plugin::Metric::CLI::Generic
|
20
20
|
default_host = begin
|
21
21
|
settings['api']['host']
|
22
22
|
rescue
|
@@ -59,6 +59,11 @@ class CheckSilenced < Sensu::Plugin::Metric::CLI::Graphite
|
|
59
59
|
description: 'Do not delete expired stashes',
|
60
60
|
default: false
|
61
61
|
|
62
|
+
option :measurement,
|
63
|
+
description: 'Measurement for influxdb format',
|
64
|
+
long: '--measurement MEASUREMENT',
|
65
|
+
default: 'sensu.stashes'
|
66
|
+
|
62
67
|
def api
|
63
68
|
endpoint = URI.parse("http://#{@config[:host]}:#{@config[:port]}")
|
64
69
|
endpoint.scheme = if @config[:use_ssl?]
|
@@ -71,7 +76,7 @@ class CheckSilenced < Sensu::Plugin::Metric::CLI::Graphite
|
|
71
76
|
end
|
72
77
|
|
73
78
|
def acquire_stashes
|
74
|
-
all_stashes = JSON.parse(api['/stashes'].get)
|
79
|
+
all_stashes = ::JSON.parse(api['/stashes'].get)
|
75
80
|
filtered_stashes = []
|
76
81
|
all_stashes.each do |stash|
|
77
82
|
filtered_stashes << stash if stash['path'] =~ /^#{@config[:filter]}\/.*/
|
@@ -81,7 +86,7 @@ class CheckSilenced < Sensu::Plugin::Metric::CLI::Graphite
|
|
81
86
|
warning 'Connection refused'
|
82
87
|
rescue RestClient::RequestTimeout
|
83
88
|
warning 'Connection timed out'
|
84
|
-
rescue JSON::ParserError
|
89
|
+
rescue ::JSON::ParserError
|
85
90
|
warning 'Sensu API returned invalid JSON'
|
86
91
|
end
|
87
92
|
|
@@ -102,6 +107,13 @@ class CheckSilenced < Sensu::Plugin::Metric::CLI::Graphite
|
|
102
107
|
end
|
103
108
|
end
|
104
109
|
end
|
105
|
-
ok
|
110
|
+
ok metric_name: 'expired',
|
111
|
+
value: @count,
|
112
|
+
graphite_metric_path: "#{config[:scheme]}.sensu.stashes.expired",
|
113
|
+
statsd_metric_name: "#{config[:scheme]}.sensu.stashes.expired",
|
114
|
+
influxdb_measurement: config[:measurement],
|
115
|
+
tags: {
|
116
|
+
host: Socket.gethostname
|
117
|
+
}
|
106
118
|
end
|
107
119
|
end
|
data/bin/metrics-events.rb
CHANGED
@@ -4,9 +4,11 @@
|
|
4
4
|
#
|
5
5
|
# Use the /events API to collect events and their severity.
|
6
6
|
#
|
7
|
-
# sensu.events.total
|
8
|
-
# sensu.events.warning
|
9
|
-
# sensu.events.critical
|
7
|
+
# sensu.events.total 156 1518300288
|
8
|
+
# sensu.events.warning 6 1518300288
|
9
|
+
# sensu.events.critical 64 1518300288
|
10
|
+
# sensu.events.status.3 79 1518300288
|
11
|
+
# sensu.events.status.127 7 1518300288
|
10
12
|
#
|
11
13
|
# ===
|
12
14
|
#
|
@@ -23,7 +25,7 @@ require 'sensu-plugin/metric/cli'
|
|
23
25
|
require 'rest-client'
|
24
26
|
require 'json'
|
25
27
|
|
26
|
-
class
|
28
|
+
class EventMetrics < Sensu::Plugin::Metric::CLI::Generic
|
27
29
|
option :api,
|
28
30
|
short: '-a URL',
|
29
31
|
long: '--api URL',
|
@@ -52,6 +54,11 @@ class AggregateMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
52
54
|
long: '--scheme SCHEME',
|
53
55
|
default: "#{Socket.gethostname}.sensu.events"
|
54
56
|
|
57
|
+
option :measurement,
|
58
|
+
description: 'Measurement for influxdb format',
|
59
|
+
long: '--measurement MEASUREMENT',
|
60
|
+
default: 'sensu.events'
|
61
|
+
|
55
62
|
option :debug,
|
56
63
|
long: '--debug',
|
57
64
|
description: 'Verbose output'
|
@@ -60,7 +67,7 @@ class AggregateMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
60
67
|
request = RestClient::Resource.new(config[:api] + resource, timeout: config[:timeout],
|
61
68
|
user: config[:user],
|
62
69
|
password: config[:password])
|
63
|
-
JSON.parse(request.get, symbolize_names: true)
|
70
|
+
::JSON.parse(request.get, symbolize_names: true)
|
64
71
|
rescue RestClient::ResourceNotFound
|
65
72
|
warning "Resource not found: #{resource}"
|
66
73
|
rescue Errno::ECONNREFUSED
|
@@ -71,7 +78,7 @@ class AggregateMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
71
78
|
warning 'Connection timed out'
|
72
79
|
rescue RestClient::Unauthorized
|
73
80
|
warning 'Missing or incorrect Sensu API credentials'
|
74
|
-
rescue JSON::ParserError
|
81
|
+
rescue ::JSON::ParserError
|
75
82
|
warning 'Sensu API returned invalid JSON'
|
76
83
|
end
|
77
84
|
|
@@ -100,14 +107,28 @@ class AggregateMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
100
107
|
status_count[event[:check][:status]] += 1
|
101
108
|
end
|
102
109
|
|
103
|
-
output
|
110
|
+
output metric_name: 'total_events_count',
|
111
|
+
value: total_count,
|
112
|
+
graphite_metric_path: "#{config[:scheme]}.total",
|
113
|
+
statsd_metric_name: "#{config[:scheme]}.total",
|
114
|
+
influxdb_measurement: config[:measurement],
|
115
|
+
tags: {
|
116
|
+
host: Socket.gethostname
|
117
|
+
},
|
118
|
+
timestamp: timestamp
|
119
|
+
|
104
120
|
status_count.each do |status, count|
|
105
|
-
name = status_names[status]
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
121
|
+
name = status_names[status] || "status.#{status}"
|
122
|
+
output metric_name: 'event_count',
|
123
|
+
value: count,
|
124
|
+
graphite_metric_path: "#{config[:scheme]}.#{name}",
|
125
|
+
statsd_metric_name: "#{config[:scheme]}.#{name}",
|
126
|
+
influxdb_measurement: config[:measurement],
|
127
|
+
tags: {
|
128
|
+
host: Socket.gethostname,
|
129
|
+
event_status: name
|
130
|
+
},
|
131
|
+
timestamp: timestamp
|
111
132
|
end
|
112
133
|
|
113
134
|
ok
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-sensu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.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: 2018-03-
|
11
|
+
date: 2018-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sensu-plugin
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rest-client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|