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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9cac8096899909e07539a3cb15728b38b3825ac9
4
- data.tar.gz: 37a753949e0a60708685275b7319b4474d20004d
2
+ SHA256:
3
+ metadata.gz: 965f2fbf43b9f3c77f30a54bc1290865dd3d5de5cedef3d4575a978840aeffb3
4
+ data.tar.gz: 3c1aaf84eb403857d96c51d76db2fb0c35fe9fd7ec04b5b97d0281699b25fff7
5
5
  SHA512:
6
- metadata.gz: b34f1d7f6c39d2bcef2cb16273d4917e58062184829e5c71a2dbc3db123764fbf4d2f08de0b244775b26212feb83aaad6f54b90f22522ddfb0df91d998c7ecb5
7
- data.tar.gz: 2f149cf30bbe0c876e139ba363806ec7a4c680e1cf6a8c4ba5bc5b8f285b96b0969a97b828ac93398c1e70b5b2da38a7f6f1b4907876170c841f53797fdf81ec
6
+ metadata.gz: 54a4b4245e9e8fc549c8229e2f9eb8135cfb8d286d52cef7bb2de7a6a33ba3fdc500a4a0e4309c7984a759781acb9125a8d06111b027aaf3ee64aff31f3bb677
7
+ data.tar.gz: 19aff54c37cc2db333c0d7f0fdcf356daad184717b35697666a2ddd2e8b7f8eca9bb5e07696ef4fe4e2e6082afd8a6bc921e7564120713587590a9ba23f5eddf
@@ -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 at [Keep A Changelog](http://keepachangelog.com/)
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
+ [![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-chrony.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-chrony)
5
+ [![Gem Version](https://badge.fury.io/rb/sensu-plugins-chrony.svg)](https://badge.fury.io/rb/sensu-plugins-chrony)
6
+ [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-chrony/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-chrony)
7
+ [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-chrony/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-chrony)
8
+ [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-chrony.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-chrony)
9
+ [![Community Slack](https://slack.sensu.io/badge.svg)](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.
@@ -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
- :description => "Path to chronyc executable (default: /usr/bin/chronyc)",
15
- :short => "-c <PATH>",
16
- :long => "--chronyc-cmd <PATH>",
17
- :default => "/usr/bin/chronyc"
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
- :description => "Warn if OFFSET exceeds current offset (ms)",
21
- :long => "--warn-offset <OFFSET>",
22
- :proc => proc(&:to_f),
23
- :default => 50
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
- :description => "Critical if OFFSET exceeds current offset (ms)",
27
- :long => "--crit-offset <OFFSET>",
28
- :proc => proc(&:to_f),
29
- :default => 100
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
- :description => "Warn if STRATUM exceeds current stratum",
33
- :long => "--warn-stratum <STRATUM>",
34
- :proc => proc(&:to_i),
35
- :default => 10
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
- :description => "Critical if STRATUM exceeds current stratum",
39
- :long => "--crit-stratum <STRATUM>",
40
- :proc => proc(&:to_i),
41
- :default => 16
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
- :description => "Comma separated list of handlers",
45
- :long => "--handlers <HANDLER>",
46
- :proc => proc { |s| s.split(',') },
47
- :default => []
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
- :description => "Do not send events to sensu client socket",
51
- :long => "--dryrun",
52
- :boolean => true,
53
- :default => false
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, "127.0.0.1", 3030)
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 = {"name" => check_name, "status" => 0, "output" => "#{self.class.name} OK: #{msg}", "handlers" => config[:handlers]}
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 = {"name" => check_name, "status" => 1, "output" => "#{self.class.name} WARNING: #{msg}", "handlers" => config[:handlers]}
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 = {"name" => check_name, "status" => 2, "output" => "#{self.class.name} CRITICAL: #{msg}", "handlers" => config[:handlers]}
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 = {"name" => check_name, "status" => 3, "output" => "#{self.class.name} UNKNOWN: #{msg}", "handlers" => config[:handlers]}
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
- %x[#{config[:chronyc_cmd]} tracking].each_line do |line|
115
+ `#{config[:chronyc_cmd]} tracking`.each_line do |line|
94
116
  case line.downcase
95
- when /^stratum\s*:\s*(\d+)$/
96
- stratum = $1.to_i
97
- when /^last offset\s*:\s*([\-\+]?[.\d]+)\s*seconds$/
98
- # convert from seconds to milliseconds
99
- offset = $1.to_f * 1000
100
- when /^leap status\s*:\s*(.*?)$/
101
- status = $1
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 = "chrony-stratum"
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
- send_critical(check_name, msg)
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, "Failed to look up NTP stratum")
141
+ send_unknown(check_name, 'Failed to look up NTP stratum')
120
142
  end
121
143
 
122
- check_name = "chrony-offset"
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] or 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] or offset < -config[:warn_offset]
130
- msg += ", expected > -#{config[:crit_offset]} and < #{config[:warn_offset]}"
131
- send_critical(check_name, msg)
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, "Failed to look up NTP offset")
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 != "normal"
143
- msg += ", expected 'Normal'"
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("Failed to look up NTP status")
171
+ unknown('Failed to look up NTP status')
150
172
  end
151
173
  end
152
174
  end
@@ -1,5 +1,6 @@
1
1
  #! /usr/bin/env ruby
2
- # encoding: UTF-8
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 = get_chronystats(config[:host])
46
+ chronystats = read_chronystats
46
47
  critical "Failed to get chronycstats from #{config[:host]}" if chronystats.empty?
47
48
  metrics = {
48
- chronystats: chronystats
49
+ config[:scheme] => chronystats
49
50
  }
50
51
  metrics.each do |name, stats|
51
52
  stats.each do |key, value|
52
- output([config[:scheme], name, key].join('.'), value)
53
+ output([name, key].join('.'), value)
53
54
  end
54
55
  end
55
56
  ok
56
57
  end
57
58
 
58
- def get_chronystats(host)
59
- key_pattern = Regexp.compile(
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`.scan(pattern).reduce({}) do |hash, parsed|
75
- key, val, fraction = parsed
76
- hash[key] = fraction ? val.to_f : val.to_i
77
- hash
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
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'sensu-plugins-chrony/version'
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SensuPluginsChrony
2
4
  module Version
3
- MAJOR = 0
5
+ MAJOR = 2
4
6
  MINOR = 0
5
- PATCH = 8
7
+ PATCH = 0
6
8
 
7
9
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
10
  end
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.8
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: 2016-04-04 00:00:00.000000000 Z
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: 1.2.0
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: 1.2.0
125
+ version: '4.0'
27
126
  description: This plugin provides facilities for monitoring Chrony NTP
28
- email: "<matteo.cerutti@hotmail.co.uk>"
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: 1.9.3
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
- rubyforge_project:
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