module Riemann::Tools

Public Class Methods

included(base) click to toggle source
# File lib/riemann/tools.rb, line 8
def self.included(base)
  base.instance_eval do
    def run
      new.run
    end

    def opt(*args)
      args.unshift :opt
      @opts ||= []
      @opts << args
    end

    def options
      p = Optimist::Parser.new
      @opts.each do |o|
        p.send(*o)
      end
      Optimist.with_standard_exception_handling(p) do
        p.parse ARGV
      end
    end

    opt :host, 'Riemann host', default: '127.0.0.1'
    opt :port, 'Riemann port', default: 5555
    opt :event_host, 'Event hostname', type: String
    opt :interval, 'Seconds between updates', default: 5
    opt :tag, 'Tag to add to events', type: String, multi: true
    opt :ttl, 'TTL for events', type: Integer
    opt :attribute, 'Attribute to add to the event', type: String, multi: true
    opt :timeout, 'Timeout (in seconds) when waiting for acknowledgements', default: 30
    opt :tcp, 'Use TCP transport instead of UDP (improves reliability, slight overhead.', default: true
    opt :tls, 'Use TLS for securing traffic', default: false
    opt :tls_key, 'TLS Key to use when using TLS', type: String
    opt :tls_cert, 'TLS Certificate to use when using TLS', type: String
    opt :tls_ca_cert, 'Trusted CA Certificate when using TLS', type: String
    opt :tls_verify, 'Verify TLS peer when using TLS', default: true
  end
end

Public Instance Methods

attributes() click to toggle source
# File lib/riemann/tools.rb, line 53
def attributes
  @attributes ||= Hash[options[:attribute].map do |attr|
    k, v = attr.split(/=/)
    [k, v] if k && v
  end]
end
opt(*args) click to toggle source
# File lib/riemann/tools.rb, line 14
def opt(*args)
  args.unshift :opt
  @opts ||= []
  @opts << args
end
options() click to toggle source
# File lib/riemann/tools.rb, line 20
def options
  p = Optimist::Parser.new
  @opts.each do |o|
    p.send(*o)
  end
  Optimist.with_standard_exception_handling(p) do
    p.parse ARGV
  end
end
Also aliased as: opts
opts()
Alias for: options
r()
Alias for: riemann
report(event) click to toggle source
# File lib/riemann/tools.rb, line 60
def report(event)
  if options[:tag]
    # Work around a bug with beefcake which can't take frozen strings.
    event[:tags] = [*event.fetch(:tags, [])] + options[:tag].map(&:dup)
  end

  event[:ttl] ||= (options[:ttl] || (options[:interval] * 2))

  event[:host] = options[:event_host].dup if options[:event_host]

  event = event.merge(attributes)

  riemann << event
end
riemann() click to toggle source
# File lib/riemann/tools.rb, line 75
def riemann
  @riemann ||= RiemannClientWrapper.new(options)
end
Also aliased as: r
run() click to toggle source
# File lib/riemann/tools.rb, line 10
def run
  new.run
end
tick() click to toggle source
# File lib/riemann/tools.rb, line 94
def tick; end