Sha256: 83bfe3477b0e1827591ebf89d9c25e50f198f8ee705c26460ba68d450c33ccee
Contents?: true
Size: 1.31 KB
Versions: 8
Compression:
Stored size: 1.31 KB
Contents
#!/usr/bin/env ruby # Reports varnish stats to Riemann. require 'open3' require File.expand_path('../../lib/riemann/tools', __FILE__) class Riemann::Tools::Varnish include Riemann::Tools opt :varnish_host, "Varnish hostname", :default => `hostname`.chomp def initialize cmd = 'varnishstat -V' Open3.popen3(cmd) do |stdin, stdout, stderr, wait_thr| @ver = /varnishstat \(varnish-(\d+)/.match(stderr.read)[1].to_i end if @ver >= 4 @vstats = [ "MAIN.sess_conn", "MAIN.sess_drop ", "MAIN.client_req", "MAIN.cache_hit", "MAIN.cache_miss" ] else @vstats = [ "client_conn", "client_drop", "client_req", "cache_hit", "cache_miss" ] end end def tick if @ver >= 4 stats = `varnishstat -1 -f #{@vstats.join(" -f ")}` else stats = `varnishstat -1 -f #{@vstats.join(",")}` end stats.each_line do |stat| m = stat.split() report( :host => opts[:varnish_host].dup, :service => "varnish #{m[0]}", :metric => m[1].to_f, :state => "ok", :description => "#{m[3..-1].join(' ')}", :tags => ["varnish"] ) end end end Riemann::Tools::Varnish.run
Version data entries
8 entries across 8 versions & 1 rubygems