Class: Crusher::LoadGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/crusher/load_generator.rb

Direct Known Subclasses

HttpLoadGenerator

Instance Method Summary collapse

Constructor Details

#initialize(crush_session, options) ⇒ LoadGenerator

Returns a new instance of LoadGenerator.



5
6
7
8
9
10
11
# File 'lib/crusher/load_generator.rb', line 5

def initialize(crush_session, options)
  @crush_session = crush_session
  @options = options
  
  Dir.mkdir @options[:stats_log_dir] if @options[:stats_log_dir] && !File.exist?(@options[:stats_log_dir])

end

Instance Method Details

#act!Object



13
# File 'lib/crusher/load_generator.rb', line 13

def act!; end

#log(message) ⇒ Object



17
18
19
# File 'lib/crusher/load_generator.rb', line 17

def log(message)
  @crush_session.log(message)
end

#log_stats(event_type, data) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/crusher/load_generator.rb', line 21

def log_stats(event_type, data)
  keys, values = data.map{|k,v| [k.to_s,v.to_s] }.transpose
  stats_log_file(event_type) do |file|
    file.syswrite "#{Time.now.strftime('%Y-%m-%d %H:%M:%S')},#{values.join(',')}\n"
    file.flush unless file.fsync
  end
end

#prepareObject



15
# File 'lib/crusher/load_generator.rb', line 15

def prepare; end

#stats_log_file(event_type) ⇒ Object



29
30
31
32
33
34
# File 'lib/crusher/load_generator.rb', line 29

def stats_log_file(event_type)
  event_type = event_type.to_sym
  File.open(File.join(@options[:stats_log_dir], "#{event_type}.csv"), 'a') do |file|
    yield file
  end
end