Sha256: e6d8eabc577d9f9756079e4bfab35d4b55f38b6bbcbf32baadd9d963060d0f8a

Contents?: true

Size: 943 Bytes

Versions: 2

Compression:

Stored size: 943 Bytes

Contents

module Crusher
  
  class LoadGenerator
  
    def initialize(crush_session, options)
      @crush_session = crush_session
      @options = options
      begin
        @log_file = File.open(options[:log_file], 'a') if options[:log_file] 
      rescue Errno::ENOENT
        log("Log file #{options[:log_file]} couldn't be opened; logging to STDOUT")
      end    
    end
    
    def act!; end
  
    def prepare; end
        
    def log(message)
      @crush_session.log(message)
    end
    
    def log_stats(event_type, data)
      keys, values = data.map{|k,v| [k.to_s,v.to_s] }.transpose
      stats_log_file(event_type).syswrite "#{Time.now.strftime('%Y-%m-%d %H:%M:%S')},#{values.join(',')}\n"
    end
    
    def stats_log_file(event_type)
      event_type = event_type.to_sym
      @stats_logs ||= {}
      @stats_logs[event_type] ||= File.open(File.join(@options[:stats_log_dir], "#{event_type}.csv"), 'a')
    end
  
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
crusher-0.0.3 lib/crusher/load_generator.rb
crusher-0.0.2 lib/crusher/load_generator.rb