report

in opsworks_ganglia/files/default/haproxy.rb [99:129]


  def report
    previous_result = HAProxyStatsParser.new("/tmp/haproxy.sock", "/tmp/haproxy-stats").process(load_previous_raw_data)
    
    data.each do |backend, stats|
      bytes_in = stats[:bytes_in] - (previous_result[backend][:bytes_in].to_i rescue 0)
      bytes_out = stats[:bytes_out] - (previous_result[backend][:bytes_out].to_i rescue 0)
      
      puts "Backend #{backend}"
      puts "Bytes IN: #{bytes_in} KB"
      puts "Bytes OUT: #{bytes_out} KB"
      puts "Current sessions: #{stats[:current_sessions]}"
      puts "Current request rate per second: #{stats[:request_rate_per_second]}"
      puts "Max sessions total: #{stats[:max_sessions]}"
      puts "Max sessions per server: #{stats[:sessions].max}" unless backend == 'total'
      puts "Avg sessions per server: #{stats[:sessions].mean}" unless backend == 'total'
      puts "Servers UP: #{stats[:servers_up]}" unless backend == 'total'
      puts "Servers DOWN: #{stats[:servers_down]}" unless backend == 'total'
      puts ""
      
      `gmetric -tint32 -x60 -uKilobytes -n"lb_#{backend}_kbytes_in" -v
      `gmetric -tint32 -x60 -uKilobytes -n"lb_#{backend}_kbytes_out" -v
      `gmetric -tuint8 -x60 -u "req/s" -n"lb_#{backend}_req_per_s" -v
      `gmetric -tuint8 -x60 -u "sessions" -n"lb_#{backend}_current_sess" -v
      `gmetric -tuint8 -x60 -u "max sessions" -n"lb_#{backend}_sess_max" -v
      `gmetric -tuint8 -x60 -u "avg sessions/server" -n"lb_#{backend}_avg_sess_per_server" -v
      `gmetric -tuint8 -x60 -u "max sessions/server" -n"lb_#{backend}_max_sess_per_server" -v
      `gmetric -tuint8 -x60 -u "servers up" -n"lb_#{backend}_servers_up" -v
      `gmetric -tuint8 -x60 -u "servers down" -n"lb_#{backend}_servers_down" -v
    end
  end