sensu-plugins-mesos 0.1.1 → 1.0.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 +5 -13
- data/CHANGELOG.md +22 -1
- data/LICENSE +0 -0
- data/README.md +5 -0
- data/bin/check-chronos.rb +8 -1
- data/bin/check-marathon-task.rb +111 -15
- data/bin/check-marathon.rb +14 -1
- data/bin/check-mesos-cpu-balance.rb +154 -0
- data/bin/check-mesos-disk-balance.rb +154 -0
- data/bin/check-mesos-failed-tasks.rb +146 -0
- data/bin/check-mesos-gpu-balance.rb +154 -0
- data/bin/check-mesos-leader-status.rb +75 -0
- data/bin/check-mesos-lost-tasks.rb +139 -0
- data/bin/check-mesos-mem-balance.rb +154 -0
- data/bin/check-mesos-running-tasks.rb +182 -0
- data/bin/check-mesos.rb +14 -24
- data/bin/check-metronome.rb +80 -0
- data/bin/metrics-marathon.rb +17 -4
- data/bin/metrics-mesos.rb +9 -4
- data/lib/sensu-plugins-mesos.rb +0 -0
- data/lib/sensu-plugins-mesos/version.rb +3 -3
- metadata +85 -32
data/bin/metrics-marathon.rb
CHANGED
@@ -54,6 +54,19 @@ class MarathonMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
54
54
|
required: false,
|
55
55
|
default: '8080'
|
56
56
|
|
57
|
+
option :protocol,
|
58
|
+
description: 'Marathon protocol [http/https]',
|
59
|
+
short: '-P PROTOCOL',
|
60
|
+
long: '--protocol PROTOCOL',
|
61
|
+
required: false,
|
62
|
+
default: 'http'
|
63
|
+
|
64
|
+
option :uri,
|
65
|
+
description: 'Endpoint URI',
|
66
|
+
short: '-u URI',
|
67
|
+
long: '--uri URI',
|
68
|
+
default: '/metrics'
|
69
|
+
|
57
70
|
option :timeout,
|
58
71
|
description: 'timeout in seconds',
|
59
72
|
short: '-t TIMEOUT',
|
@@ -62,21 +75,21 @@ class MarathonMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
62
75
|
default: 5
|
63
76
|
|
64
77
|
def run
|
65
|
-
r = RestClient::Resource.new("
|
78
|
+
r = RestClient::Resource.new("#{config[:protocol]}://#{config[:server]}:#{config[:port]}#{config[:uri]}", timeout: config[:timeout]).get
|
66
79
|
all_metrics = JSON.parse(r)
|
67
80
|
metric_groups = all_metrics.keys - SKIP_ROOT_KEYS
|
68
81
|
metric_groups.each do |metric_groups_key|
|
69
82
|
all_metrics[metric_groups_key].each do |metric_key, metric_value|
|
70
83
|
metric_value.each do |metric_hash_key, metric_hash_value|
|
71
84
|
output([config[:scheme], metric_groups_key, metric_key, metric_hash_key].join('.'), metric_hash_value) \
|
72
|
-
if metric_hash_value.is_a?(Numeric) && metric_hash_key == 'count'
|
85
|
+
if metric_hash_value.is_a?(Numeric) && (metric_hash_key == 'count' || metric_hash_key == 'value')
|
73
86
|
end
|
74
87
|
end
|
75
88
|
end
|
76
89
|
ok
|
77
90
|
rescue Errno::ECONNREFUSED
|
78
|
-
|
91
|
+
unknown 'Marathon is not responding'
|
79
92
|
rescue RestClient::RequestTimeout
|
80
|
-
|
93
|
+
unknown 'Marathon Connection timed out'
|
81
94
|
end
|
82
95
|
end
|
data/bin/metrics-mesos.rb
CHANGED
@@ -34,8 +34,8 @@ require 'socket'
|
|
34
34
|
require 'json'
|
35
35
|
|
36
36
|
# Mesos default ports are defined here: http://mesos.apache.org/documentation/latest/configuration
|
37
|
-
MASTER_DEFAULT_PORT
|
38
|
-
SLAVE_DEFAULT_PORT
|
37
|
+
MASTER_DEFAULT_PORT ||= '5050'.freeze
|
38
|
+
SLAVE_DEFAULT_PORT ||= '5051'.freeze
|
39
39
|
|
40
40
|
class MesosMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
41
41
|
option :mode,
|
@@ -62,6 +62,12 @@ class MesosMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
62
62
|
long: '--port PORT',
|
63
63
|
required: false
|
64
64
|
|
65
|
+
option :uri,
|
66
|
+
description: 'Endpoint URI',
|
67
|
+
short: '-u URI',
|
68
|
+
long: '--uri URI',
|
69
|
+
default: '/metrics/snapshot'
|
70
|
+
|
65
71
|
option :timeout,
|
66
72
|
description: 'timeout in seconds',
|
67
73
|
short: '-t TIMEOUT',
|
@@ -70,13 +76,12 @@ class MesosMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
70
76
|
default: 5
|
71
77
|
|
72
78
|
def run
|
79
|
+
uri = config[:uri]
|
73
80
|
case config[:mode]
|
74
81
|
when 'master'
|
75
82
|
port = config[:port] || MASTER_DEFAULT_PORT
|
76
|
-
uri = '/master/stats.json'
|
77
83
|
when 'slave'
|
78
84
|
port = config[:port] || SLAVE_DEFAULT_PORT
|
79
|
-
uri = '/slave(1)/stats.json'
|
80
85
|
end
|
81
86
|
scheme = "#{config[:scheme]}.mesos-#{config[:mode]}"
|
82
87
|
begin
|
data/lib/sensu-plugins-mesos.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-mesos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.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:
|
11
|
+
date: 2017-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -16,163 +16,207 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '2.0'
|
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.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sensu-plugin
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.2'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: daybreak
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.3.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.3.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- - ~>
|
59
|
+
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
61
|
version: '1.7'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
|
-
- - ~>
|
66
|
+
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '1.7'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: codeclimate-test-reporter
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- - ~>
|
73
|
+
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
75
|
version: '0.4'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- - ~>
|
80
|
+
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0.4'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: github-markup
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- - ~>
|
87
|
+
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '1.3'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- - ~>
|
94
|
+
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '1.3'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: pry
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
|
-
- - ~>
|
101
|
+
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
103
|
version: '0.10'
|
90
104
|
type: :development
|
91
105
|
prerelease: false
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
|
-
- - ~>
|
108
|
+
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0.10'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rake
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
|
-
- - ~>
|
115
|
+
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '10.0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
|
-
- - ~>
|
122
|
+
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
124
|
version: '10.0'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: redcarpet
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- - ~>
|
129
|
+
- - "~>"
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: '3.2'
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
|
-
- - ~>
|
136
|
+
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '3.2'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: rspec
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - ~>
|
143
|
+
- - "~>"
|
130
144
|
- !ruby/object:Gem::Version
|
131
145
|
version: '3.1'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - ~>
|
150
|
+
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: '3.1'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: rubocop
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- - ~>
|
157
|
+
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
159
|
+
version: 0.40.0
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- - ~>
|
164
|
+
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
166
|
+
version: 0.40.0
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: yard
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- - ~>
|
171
|
+
- - "~>"
|
158
172
|
- !ruby/object:Gem::Version
|
159
173
|
version: '0.8'
|
160
174
|
type: :development
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- - ~>
|
178
|
+
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: '0.8'
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: json
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '1.8'
|
188
|
+
- - "<"
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '2.0'
|
191
|
+
type: :development
|
192
|
+
prerelease: false
|
193
|
+
version_requirements: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - "~>"
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '1.8'
|
198
|
+
- - "<"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '2.0'
|
201
|
+
description: |-
|
202
|
+
This plugin provides navite Mesos instrumentation for monitoring
|
203
|
+
and metrics collection, including: service health and metrics
|
204
|
+
for Mesos, Chronos, and Marathon.
|
205
|
+
email: "<sensu-users@googlegroups.com>"
|
171
206
|
executables:
|
172
207
|
- check-chronos.rb
|
173
208
|
- check-marathon-task.rb
|
174
209
|
- check-marathon.rb
|
210
|
+
- check-mesos-cpu-balance.rb
|
211
|
+
- check-mesos-disk-balance.rb
|
212
|
+
- check-mesos-failed-tasks.rb
|
213
|
+
- check-mesos-gpu-balance.rb
|
214
|
+
- check-mesos-leader-status.rb
|
215
|
+
- check-mesos-lost-tasks.rb
|
216
|
+
- check-mesos-mem-balance.rb
|
217
|
+
- check-mesos-running-tasks.rb
|
175
218
|
- check-mesos.rb
|
219
|
+
- check-metronome.rb
|
176
220
|
- metrics-marathon.rb
|
177
221
|
- metrics-mesos.rb
|
178
222
|
extensions: []
|
@@ -184,7 +228,16 @@ files:
|
|
184
228
|
- bin/check-chronos.rb
|
185
229
|
- bin/check-marathon-task.rb
|
186
230
|
- bin/check-marathon.rb
|
231
|
+
- bin/check-mesos-cpu-balance.rb
|
232
|
+
- bin/check-mesos-disk-balance.rb
|
233
|
+
- bin/check-mesos-failed-tasks.rb
|
234
|
+
- bin/check-mesos-gpu-balance.rb
|
235
|
+
- bin/check-mesos-leader-status.rb
|
236
|
+
- bin/check-mesos-lost-tasks.rb
|
237
|
+
- bin/check-mesos-mem-balance.rb
|
238
|
+
- bin/check-mesos-running-tasks.rb
|
187
239
|
- bin/check-mesos.rb
|
240
|
+
- bin/check-metronome.rb
|
188
241
|
- bin/metrics-marathon.rb
|
189
242
|
- bin/metrics-mesos.rb
|
190
243
|
- lib/sensu-plugins-mesos.rb
|
@@ -205,12 +258,12 @@ require_paths:
|
|
205
258
|
- lib
|
206
259
|
required_ruby_version: !ruby/object:Gem::Requirement
|
207
260
|
requirements:
|
208
|
-
- -
|
261
|
+
- - ">="
|
209
262
|
- !ruby/object:Gem::Version
|
210
263
|
version: 1.9.3
|
211
264
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
265
|
requirements:
|
213
|
-
- -
|
266
|
+
- - ">="
|
214
267
|
- !ruby/object:Gem::Version
|
215
268
|
version: '0'
|
216
269
|
requirements: []
|