Sha256: 9d25ee3474a7d8e4b1fcc20afd1ec6281f08476e7be860c1567f888f6bc3dd65

Contents?: true

Size: 860 Bytes

Versions: 8

Compression:

Stored size: 860 Bytes

Contents

#!/usr/bin/env ruby

# Reports varnish stats to Riemann.

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
    @vstats = [ "client_conn", 
                "client_drop",
                "client_req",
                "cache_hit",
                "cache_miss" ]
  end

  def tick
    stats = `varnishstat -1 -f #{@vstats.join(",")}`
    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 & 2 rubygems

Version Path
riemann-tools-0.2.5 bin/riemann-varnish
riemann-tools-0.2.4 bin/riemann-varnish
riemann-tools-0.2.3 bin/riemann-varnish
riemann-tools-dgvz-0.2.2.3 bin/riemann-varnish
riemann-tools-dgvz-0.2.2.2 bin/riemann-varnish
riemann-tools-dgvz-0.2.2.1 bin/riemann-varnish
riemann-tools-0.2.2 bin/riemann-varnish
riemann-tools-0.2.1 bin/riemann-varnish