sensu-plugins-edgelab 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 +7 -0
- data/bin/check-nomad-jobs.rb +58 -0
- metadata +114 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6cba546a5706821e5977aaf2470ed514ebb031ab
|
4
|
+
data.tar.gz: d22ff86b067f9c8a56314173248a3a8ba01a4a29
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f8bf82993c4d2f9edb63856e281b9abc114a65a1ee4c31e38a68ce7b47c735d9e1343fb58b59683601036656de23caab87cb5ce62f89a4d9d826dbe0bb7c57df
|
7
|
+
data.tar.gz: ff85a1626590c27c30e44c2dd83b4d0baa87b3f91725f12561bfa686a745fd4d90a716dc943f37d175a60a5642c46a0c90840f4ff77697b24eebebf691d2a237
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
#
|
4
|
+
# check-nomad-jobs
|
5
|
+
#
|
6
|
+
# DESCRIPTION:
|
7
|
+
# This plugin nomad registered jobs status.
|
8
|
+
#
|
9
|
+
|
10
|
+
require 'sensu-plugin/check/cli'
|
11
|
+
require 'rest-client'
|
12
|
+
require 'json'
|
13
|
+
|
14
|
+
class CheckNomadAllocations < Sensu::Plugin::Check::CLI
|
15
|
+
option :nomad,
|
16
|
+
description: 'nomad server address',
|
17
|
+
long: '--nomad SERVER',
|
18
|
+
default: 'http://localhost:4646'
|
19
|
+
|
20
|
+
# Return, as array of hash, all registered jobs in Nomad
|
21
|
+
def nomad_jobs
|
22
|
+
url = config[:nomad] + '/v1/jobs'
|
23
|
+
begin
|
24
|
+
response = RestClient.get(url)
|
25
|
+
rescue => e
|
26
|
+
critical "Unable to connect to Nomad: #{e}"
|
27
|
+
else
|
28
|
+
begin
|
29
|
+
return JSON.parse(response)
|
30
|
+
rescue => e
|
31
|
+
critical "Unable to parse json in response: #{e}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def run
|
37
|
+
jobs = nomad_jobs
|
38
|
+
if jobs.empty?
|
39
|
+
critical 'No jobs found in Nomad.'
|
40
|
+
end
|
41
|
+
|
42
|
+
failed = []
|
43
|
+
|
44
|
+
jobs.each do |job|
|
45
|
+
job['JobSummary']['Summary'].each do |group, summary|
|
46
|
+
if summary['Failed'] != 0
|
47
|
+
failed << "#{job['Name']}.#{group}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
if failed.any?
|
53
|
+
critical "#{failed.length} failed jobs: " + failed.join(', ')
|
54
|
+
else
|
55
|
+
ok "#{jobs.length} jobs running"
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
metadata
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sensu-plugins-edgelab
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Edgelab
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-01-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sensu-plugin
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rest-client
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.8.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.8.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.7'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.5'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.5'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.40.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.40.0
|
83
|
+
description: Sensu plugins developed by Edgelab
|
84
|
+
email:
|
85
|
+
executables:
|
86
|
+
- check-nomad-jobs.rb
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- bin/check-nomad-jobs.rb
|
91
|
+
homepage:
|
92
|
+
licenses: []
|
93
|
+
metadata: {}
|
94
|
+
post_install_message:
|
95
|
+
rdoc_options: []
|
96
|
+
require_paths:
|
97
|
+
- lib
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 2.0.0
|
103
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
requirements: []
|
109
|
+
rubyforge_project:
|
110
|
+
rubygems_version: 2.5.2
|
111
|
+
signing_key:
|
112
|
+
specification_version: 4
|
113
|
+
summary: Contains Edgelab plugins for Sensu
|
114
|
+
test_files: []
|