sensu-plugins-chrony 0.0.8 → 2.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 -5
- data/CHANGELOG.md +53 -2
- data/README.md +8 -0
- data/bin/check-chrony.rb +76 -54
- data/bin/metrics-chrony.rb +19 -24
- data/lib/sensu-plugins-chrony.rb +2 -0
- data/lib/sensu-plugins-chrony/version.rb +4 -2
- metadata +110 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 965f2fbf43b9f3c77f30a54bc1290865dd3d5de5cedef3d4575a978840aeffb3
|
4
|
+
data.tar.gz: 3c1aaf84eb403857d96c51d76db2fb0c35fe9fd7ec04b5b97d0281699b25fff7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54a4b4245e9e8fc549c8229e2f9eb8135cfb8d286d52cef7bb2de7a6a33ba3fdc500a4a0e4309c7984a759781acb9125a8d06111b027aaf3ee64aff31f3bb677
|
7
|
+
data.tar.gz: 19aff54c37cc2db333c0d7f0fdcf356daad184717b35697666a2ddd2e8b7f8eca9bb5e07696ef4fe4e2e6082afd8a6bc921e7564120713587590a9ba23f5eddf
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,45 @@
|
|
1
1
|
# Change Log
|
2
2
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
3
3
|
|
4
|
-
This CHANGELOG follows the format listed
|
4
|
+
This CHANGELOG follows the format listed [here](https://github.com/sensu-plugins/community/blob/master/HOW_WE_CHANGELOG.md)
|
5
5
|
|
6
|
-
## Unreleased
|
6
|
+
## [Unreleased]
|
7
|
+
|
8
|
+
## [2.0.0] - 2020-08-24
|
9
|
+
### Breaking Changes
|
10
|
+
- Remove support for old Ruby (< 2.3)
|
11
|
+
- Bump sensu-plugin dependency from ~> 2.0 to ~> 4.0
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
- Updated bundler dependancy to '~> 2.1'
|
15
|
+
- Updated rubocop dependency to '~> 0.81.0'
|
16
|
+
- Remediated rubocop issues
|
17
|
+
- Updated rake dependency to '~> 13.0'
|
18
|
+
- Fixed errors where warnings where sent as critical
|
19
|
+
|
20
|
+
## [1.0.1] - 2018-05-03
|
21
|
+
### Fixed
|
22
|
+
- Fixes "undefined method `empty?"` (@jwatroba)
|
23
|
+
|
24
|
+
## [1.0.0] - 2018-01-04
|
25
|
+
### Breaking Change
|
26
|
+
- remove ruby < 2.0 support (@majormoses)
|
27
|
+
- require `sensu-plugin` 2.0 (@majormoses)
|
28
|
+
|
29
|
+
### Added
|
30
|
+
- github templates (@majormoses)
|
31
|
+
- links to changelog guidelines (@majormoses)
|
32
|
+
- badges to README (@majormoses)
|
33
|
+
- various misc development dependencies (@majormoses)
|
34
|
+
|
35
|
+
### Changed
|
36
|
+
- standard gemspec (@majormoses)
|
37
|
+
- appease the cops (@majormoses)
|
38
|
+
- standard Rakefile (@majormoses)
|
39
|
+
|
40
|
+
## [0.0.9] - 2016-04-05
|
41
|
+
### Added
|
42
|
+
- fixed metrics key naming (@vervas)
|
7
43
|
|
8
44
|
## [0.0.8] - 2016-04-04
|
9
45
|
### Added
|
@@ -36,3 +72,18 @@ This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachang
|
|
36
72
|
## [0.0.1] - 2015-12-28
|
37
73
|
### Added
|
38
74
|
- Initial release
|
75
|
+
|
76
|
+
[Unreleased]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/2.0.0...HEAD
|
77
|
+
[2.0.0]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/1.0.1...2.0.0
|
78
|
+
[1.0.1]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/1.0.0...1.0.1
|
79
|
+
[1.0.0]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.10...1.0.0
|
80
|
+
[0.0.10]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.9...0.0.10
|
81
|
+
[0.0.9]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.8...0.0.9
|
82
|
+
[0.0.8]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.7...0.0.8
|
83
|
+
[0.0.7]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.6...0.0.7
|
84
|
+
[0.0.6]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.5...0.0.6
|
85
|
+
[0.0.5]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.4...0.0.5
|
86
|
+
[0.0.4]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.3...0.0.4
|
87
|
+
[0.0.3]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.2...0.0.3
|
88
|
+
[0.0.2]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/0.0.1...0.0.2
|
89
|
+
[0.0.1]: https://github.com/sensu-plugins/sensu-plugins-ntp/compare/00e3dfb1d044946ec5465f7075dce532bbb60cff...0.0.1
|
data/README.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Sensu plugin for monitoring Chrony NTP
|
2
2
|
|
3
|
+
|
4
|
+
[](https://travis-ci.org/sensu-plugins/sensu-plugins-chrony)
|
5
|
+
[](https://badge.fury.io/rb/sensu-plugins-chrony)
|
6
|
+
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-chrony)
|
7
|
+
[](https://codeclimate.com/github/sensu-plugins/sensu-plugins-chrony)
|
8
|
+
[](https://gemnasium.com/sensu-plugins/sensu-plugins-chrony)
|
9
|
+
[](https://slack.sensu.io/badge)
|
10
|
+
|
3
11
|
A sensu plugin to monitor Chrony NTP. There is also a metrics plugin for collecting things like offset, delay etc.
|
4
12
|
|
5
13
|
The plugin generates multiple OK/WARN/CRIT/UNKNOWN check events via the sensu client socket (https://sensuapp.org/docs/latest/clients#client-socket-input) so that you do not miss state changes when monitoring offset, stratum and status.
|
data/bin/check-chrony.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
2
4
|
#
|
3
5
|
# check-chrony.rb
|
4
6
|
#
|
@@ -11,48 +13,48 @@ require 'json'
|
|
11
13
|
|
12
14
|
class CheckChrony < Sensu::Plugin::Check::CLI
|
13
15
|
option :chronyc_cmd,
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
16
|
+
description: 'Path to chronyc executable (default: /usr/bin/chronyc)',
|
17
|
+
short: '-c <PATH>',
|
18
|
+
long: '--chronyc-cmd <PATH>',
|
19
|
+
default: '/usr/bin/chronyc'
|
18
20
|
|
19
21
|
option :warn_offset,
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
22
|
+
description: 'Warn if OFFSET exceeds current offset (ms)',
|
23
|
+
long: '--warn-offset <OFFSET>',
|
24
|
+
proc: proc(&:to_f),
|
25
|
+
default: 50
|
24
26
|
|
25
27
|
option :crit_offset,
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
28
|
+
description: 'Critical if OFFSET exceeds current offset (ms)',
|
29
|
+
long: '--crit-offset <OFFSET>',
|
30
|
+
proc: proc(&:to_f),
|
31
|
+
default: 100
|
30
32
|
|
31
33
|
option :warn_stratum,
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
35
|
-
:
|
34
|
+
description: 'Warn if STRATUM exceeds current stratum',
|
35
|
+
long: '--warn-stratum <STRATUM>',
|
36
|
+
proc: proc(&:to_i),
|
37
|
+
default: 10
|
36
38
|
|
37
39
|
option :crit_stratum,
|
38
|
-
:
|
39
|
-
:
|
40
|
-
:
|
41
|
-
:
|
40
|
+
description: 'Critical if STRATUM exceeds current stratum',
|
41
|
+
long: '--crit-stratum <STRATUM>',
|
42
|
+
proc: proc(&:to_i),
|
43
|
+
default: 16
|
42
44
|
|
43
45
|
option :handlers,
|
44
|
-
:
|
45
|
-
:
|
46
|
-
:
|
47
|
-
:
|
46
|
+
description: 'Comma separated list of handlers',
|
47
|
+
long: '--handlers <HANDLER>',
|
48
|
+
proc: proc { |s| s.split(',') },
|
49
|
+
default: []
|
48
50
|
|
49
51
|
option :dryrun,
|
50
|
-
:
|
51
|
-
:
|
52
|
-
:
|
53
|
-
:
|
52
|
+
description: 'Do not send events to sensu client socket',
|
53
|
+
long: '--dryrun',
|
54
|
+
boolean: true,
|
55
|
+
default: false
|
54
56
|
|
55
|
-
def initialize
|
57
|
+
def initialize
|
56
58
|
super
|
57
59
|
end
|
58
60
|
|
@@ -61,27 +63,47 @@ class CheckChrony < Sensu::Plugin::Check::CLI
|
|
61
63
|
puts data.inspect
|
62
64
|
else
|
63
65
|
sock = UDPSocket.new
|
64
|
-
sock.send(data + "\n", 0,
|
66
|
+
sock.send(data + "\n", 0, '127.0.0.1', 3030)
|
65
67
|
end
|
66
68
|
end
|
67
69
|
|
68
70
|
def send_ok(check_name, msg)
|
69
|
-
event = {
|
71
|
+
event = {
|
72
|
+
'name' => check_name,
|
73
|
+
'status' => 0,
|
74
|
+
'output' => "#{self.class.name} OK: #{msg}",
|
75
|
+
'handlers' => config[:handlers]
|
76
|
+
}
|
70
77
|
send_client_socket(event.to_json)
|
71
78
|
end
|
72
79
|
|
73
80
|
def send_warning(check_name, msg)
|
74
|
-
event = {
|
81
|
+
event = {
|
82
|
+
'name' => check_name,
|
83
|
+
'status' => 1,
|
84
|
+
'output' => "#{self.class.name} WARNING: #{msg}",
|
85
|
+
'handlers' => config[:handlers]
|
86
|
+
}
|
75
87
|
send_client_socket(event.to_json)
|
76
88
|
end
|
77
89
|
|
78
90
|
def send_critical(check_name, msg)
|
79
|
-
event = {
|
91
|
+
event = {
|
92
|
+
'name' => check_name,
|
93
|
+
'status' => 2,
|
94
|
+
'output' => "#{self.class.name} CRITICAL: #{msg}",
|
95
|
+
'handlers' => config[:handlers]
|
96
|
+
}
|
80
97
|
send_client_socket(event.to_json)
|
81
98
|
end
|
82
99
|
|
83
100
|
def send_unknown(check_name, msg)
|
84
|
-
event = {
|
101
|
+
event = {
|
102
|
+
'name' => check_name,
|
103
|
+
'status' => 3,
|
104
|
+
'output' => "#{self.class.name} UNKNOWN: #{msg}",
|
105
|
+
'handlers' => config[:handlers]
|
106
|
+
}
|
85
107
|
send_client_socket(event.to_json)
|
86
108
|
end
|
87
109
|
|
@@ -90,19 +112,19 @@ class CheckChrony < Sensu::Plugin::Check::CLI
|
|
90
112
|
offset = nil
|
91
113
|
status = nil
|
92
114
|
|
93
|
-
|
115
|
+
`#{config[:chronyc_cmd]} tracking`.each_line do |line|
|
94
116
|
case line.downcase
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
117
|
+
when /^stratum\s*:\s*(\d+)$/
|
118
|
+
stratum = Regexp.last_match(1).to_i
|
119
|
+
when /^last offset\s*:\s*([\-\+]?[.\d]+)\s*seconds$/
|
120
|
+
# convert from seconds to milliseconds
|
121
|
+
offset = Regexp.last_match(1).to_f * 1000
|
122
|
+
when /^leap status\s*:\s*(.*?)$/
|
123
|
+
status = Regexp.last_match(1)
|
102
124
|
end
|
103
125
|
end
|
104
126
|
|
105
|
-
check_name =
|
127
|
+
check_name = 'chrony-stratum'
|
106
128
|
if stratum
|
107
129
|
msg = "NTP stratum is #{stratum}"
|
108
130
|
|
@@ -111,42 +133,42 @@ class CheckChrony < Sensu::Plugin::Check::CLI
|
|
111
133
|
send_critical(check_name, msg)
|
112
134
|
elsif stratum >= config[:warn_stratum]
|
113
135
|
msg += ", expected < #{config[:warn_stratum]}"
|
114
|
-
|
136
|
+
send_warning(check_name, msg)
|
115
137
|
else
|
116
138
|
send_ok(check_name, msg)
|
117
139
|
end
|
118
140
|
else
|
119
|
-
send_unknown(check_name,
|
141
|
+
send_unknown(check_name, 'Failed to look up NTP stratum')
|
120
142
|
end
|
121
143
|
|
122
|
-
check_name =
|
144
|
+
check_name = 'chrony-offset'
|
123
145
|
if offset
|
124
146
|
msg = "NTP offset is #{offset.round(4)}ms"
|
125
147
|
|
126
|
-
if offset >= config[:crit_offset]
|
148
|
+
if offset >= config[:crit_offset] || offset <= -config[:crit_offset]
|
127
149
|
msg += ", expected > -#{config[:crit_offset]} and < #{config[:crit_offset]}"
|
128
150
|
send_critical(check_name, msg)
|
129
|
-
elsif offset >= config[:warn_offset]
|
130
|
-
msg += ", expected > -#{config[:
|
131
|
-
|
151
|
+
elsif offset >= config[:warn_offset] || offset < -config[:warn_offset]
|
152
|
+
msg += ", expected > -#{config[:warn_offset]} and < #{config[:warn_offset]}"
|
153
|
+
send_warning(check_name, msg)
|
132
154
|
else
|
133
155
|
send_ok(check_name, msg)
|
134
156
|
end
|
135
157
|
else
|
136
|
-
send_unknown(check_name,
|
158
|
+
send_unknown(check_name, 'Failed to look up NTP offset')
|
137
159
|
end
|
138
160
|
|
139
161
|
if status
|
140
162
|
msg = "NTP status is '#{status}'"
|
141
163
|
|
142
|
-
if status !=
|
143
|
-
msg +=
|
164
|
+
if status != 'normal'
|
165
|
+
msg += ', expected \'Normal\''
|
144
166
|
critical(msg)
|
145
167
|
else
|
146
168
|
ok(msg)
|
147
169
|
end
|
148
170
|
else
|
149
|
-
unknown(
|
171
|
+
unknown('Failed to look up NTP status')
|
150
172
|
end
|
151
173
|
end
|
152
174
|
end
|
data/bin/metrics-chrony.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
#! /usr/bin/env ruby
|
2
|
-
#
|
2
|
+
# frozen_string_literal: false
|
3
|
+
|
3
4
|
#
|
4
5
|
# metrics-chrony
|
5
6
|
#
|
@@ -34,7 +35,7 @@ class ChronyMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
34
35
|
description: 'Metric naming scheme, text to prepend to metric',
|
35
36
|
short: '-s SCHEME',
|
36
37
|
long: '--scheme SCHEME',
|
37
|
-
default: Socket.gethostname
|
38
|
+
default: "#{Socket.gethostname}.chronystats"
|
38
39
|
|
39
40
|
def run
|
40
41
|
# #YELLOW
|
@@ -42,39 +43,33 @@ class ChronyMetrics < Sensu::Plugin::Metric::CLI::Graphite
|
|
42
43
|
config[:scheme] = config[:host]
|
43
44
|
end
|
44
45
|
|
45
|
-
chronystats =
|
46
|
+
chronystats = read_chronystats
|
46
47
|
critical "Failed to get chronycstats from #{config[:host]}" if chronystats.empty?
|
47
48
|
metrics = {
|
48
|
-
|
49
|
+
config[:scheme] => chronystats
|
49
50
|
}
|
50
51
|
metrics.each do |name, stats|
|
51
52
|
stats.each do |key, value|
|
52
|
-
output([
|
53
|
+
output([name, key].join('.'), value)
|
53
54
|
end
|
54
55
|
end
|
55
56
|
ok
|
56
57
|
end
|
57
58
|
|
58
|
-
def
|
59
|
-
|
60
|
-
[
|
61
|
-
"Stratum",
|
62
|
-
"Last offset",
|
63
|
-
"RMS offset",
|
64
|
-
"Frequency",
|
65
|
-
"Residual freq",
|
66
|
-
"Skew",
|
67
|
-
"Root delay",
|
68
|
-
"Root dispersion",
|
69
|
-
"Update interval"
|
70
|
-
].join('|'))
|
71
|
-
num_val_pattern = /[\-\+]?[\d]+(\.[\d]+)?/
|
72
|
-
pattern = /^(#{key_pattern})\s*:\s*(#{num_val_pattern}).*$/
|
59
|
+
def read_chronystats
|
60
|
+
num_val_pattern = /^[-+]?\d+(\.\d+)?\s/
|
73
61
|
|
74
|
-
`chronyc tracking`.
|
75
|
-
key, val
|
76
|
-
|
77
|
-
|
62
|
+
`chronyc tracking`.each_line.each_with_object({}) do |line, hash|
|
63
|
+
key, val = line.split(/\s*:\s*/)
|
64
|
+
matched = val.match(num_val_pattern) || (next hash)
|
65
|
+
number, fraction = matched.to_a
|
66
|
+
number = fraction ? number.to_f : number.to_i
|
67
|
+
number = - number if /slow/ =~ val # for system time
|
68
|
+
hash[snakecase(key)] = number
|
78
69
|
end
|
79
70
|
end
|
71
|
+
|
72
|
+
def snakecase(str)
|
73
|
+
str.downcase.tr(' ', '_').gsub(/[()]/, '')
|
74
|
+
end
|
80
75
|
end
|
data/lib/sensu-plugins-chrony.rb
CHANGED
metadata
CHANGED
@@ -1,31 +1,132 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-plugins-chrony
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matteo Cerutti
|
8
|
+
- Sensu-Plugins and contributors
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2020-08-24 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '2.1'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '2.1'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: github-markup
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '3.0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '3.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: rake
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '12.0'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '12.0'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: redcarpet
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.2'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.2'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '3.4'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '3.4'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rubocop
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 0.81.0
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 0.81.0
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: yard
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0.8'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0.8'
|
13
112
|
- !ruby/object:Gem::Dependency
|
14
113
|
name: sensu-plugin
|
15
114
|
requirement: !ruby/object:Gem::Requirement
|
16
115
|
requirements:
|
17
|
-
- -
|
116
|
+
- - "~>"
|
18
117
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
118
|
+
version: '4.0'
|
20
119
|
type: :runtime
|
21
120
|
prerelease: false
|
22
121
|
version_requirements: !ruby/object:Gem::Requirement
|
23
122
|
requirements:
|
24
|
-
- -
|
123
|
+
- - "~>"
|
25
124
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
125
|
+
version: '4.0'
|
27
126
|
description: This plugin provides facilities for monitoring Chrony NTP
|
28
|
-
email:
|
127
|
+
email:
|
128
|
+
- "<matteo.cerutti@hotmail.co.uk>"
|
129
|
+
- "<sensu-users@googlegroups.com>"
|
29
130
|
executables:
|
30
131
|
- check-chrony.rb
|
31
132
|
- metrics-chrony.rb
|
@@ -57,15 +158,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
57
158
|
requirements:
|
58
159
|
- - ">="
|
59
160
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
161
|
+
version: 2.3.0
|
61
162
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
163
|
requirements:
|
63
164
|
- - ">="
|
64
165
|
- !ruby/object:Gem::Version
|
65
166
|
version: '0'
|
66
167
|
requirements: []
|
67
|
-
|
68
|
-
rubygems_version: 2.4.5.1
|
168
|
+
rubygems_version: 3.0.8
|
69
169
|
signing_key:
|
70
170
|
specification_version: 4
|
71
171
|
summary: Sensu plugins for monitoring Chrony NTP
|