class Riemann::Tools::Ntp

Public Class Methods

new() click to toggle source
Calls superclass method Riemann::Tools::new
# File lib/riemann/tools/ntp.rb, line 11
def initialize
  super

  @hostname = `hostname`.chomp
  @ostype = `uname -s`.chomp.downcase
  abort 'WARNING: macOS not explicitly supported. Exiting.' if @ostype == 'darwin'
end

Public Instance Methods

send(type, metric) click to toggle source
# File lib/riemann/tools/ntp.rb, line 32
def send(type, metric)
  report(
    host: @hostname,
    service: "ntp peer #{@ntp_host} #{type}",
    metric: metric.to_f,
    state: 'ok',
    description: "ntp peer #{@ntp_host} #{type}",
    tags: ['ntp'],
  )
end
tick() click to toggle source
# File lib/riemann/tools/ntp.rb, line 19
def tick
  stats = `ntpq -p -n`
  stats.each_line do |stat|
    m = stat.split
    next if m.grep(/^===/).any? || m.grep(/^remote/).any?

    @ntp_host = m[0].gsub('*', '').gsub('-', '').gsub('+', '')
    send('delay', m[7])
    send('offset', m[8])
    send('jitter', m[9])
  end
end