Created
June 18, 2009 15:59
Revisions
-
Gregg created this gist
Jun 18, 2009 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,91 @@ # Used to graph results from autobench # # Usage: ruby autobench_grapher.rb result_from_autobench.tsv # # This will generate three svg & png graphs require "rubygems" require "scruffy" require 'csv' require 'yaml' class ResultGrapher def self.run new(ARGV.first).run end def initialize(result_file) @result_file = result_file @stats = { :attempted_request_rate => [], :average_reply_rate => [], :average_response_time => [], :errors => [] } end def run parse_log generate_graph end def parse_log File.open(@result_file).each do |line| row = line.split("\t") next if row[0] =~ /^\D+/ @stats[:attempted_request_rate] << row[0].to_f @stats[:average_reply_rate] << row[4].to_f @stats[:average_response_time] << row[7].to_f @stats[:errors] << row[9].to_f end end def file_root @result_file.gsub(/\..*/, "") end def generate_graph g = Scruffy::Graph.new g.title = "Average Reply Rate (Responses per Second)" g.renderer = Scruffy::Renderers::Standard.new g.add :area, "Attempted Request Rate", @stats[:attempted_request_rate] g.add :line, "Average Reply Rate", @stats[:average_reply_rate] g.point_markers = @stats[:attempted_request_rate] g.render :to => "#{file_root}_average_reply_rate.svg" g.render :width => 600, :height => 400, :to => "#{file_root}_average_reply_rate.png", :as => 'png' g2 = Scruffy::Graph.new g2.title = "Average Response Time (in ms)" g2.renderer = Scruffy::Renderers::Standard.new g2.add :line, "Average Response Time", @stats[:average_response_time] g2.point_markers = @stats[:attempted_request_rate] g2.render :to => "#{file_root}_average_response_time.svg" g2.render :width => 600, :height => 400, :to => "#{file_root}_average_response_time.png", :as => 'png' g3 = Scruffy::Graph.new g3.title = "Errors" g3.renderer = Scruffy::Renderers::Standard.new g3.add :line, "Errors", @stats[:errors] g3.point_markers = @stats[:attempted_request_rate] g3.render :to => "#{file_root}_errors.svg" g3.render :width => 600, :height => 400, :to => "#{file_root}_errors.png", :as => 'png' end end ResultGrapher.run