Commit 804affd9014551bb67f9254a60fed64c90721f0f

Modifed stat model, tracking and handling to keep each request as a single stat object (for later calculation of clashing requests)

Commit diff

lib/handle.rb

 
102102 end
103103
104104 def update_requests_stats(start_time, end_time)
105 @mutex.synchronize { self.requests_stats << [start_time, end_time] }
105 @mutex.synchronize { self.requests_stats << {:start => start_time, :end => end_time} }
106106 end
107107
108108 def fetch_requests_stats
toggle raw diff

lib/tracking.rb

 
2929 stats = Handle.collect_stats_from_handles
3030 stats.each do |handle, request_stats|
3131 app = App.find_by_name(handle.name)
32 request_stats.each do |s|
33 request_stat = Stat.find_or_create_by_app_id(app.id)
34 req_time = s[1].to_f - s[0].to_f
35 request_stat.increment(:requests)
36 request_stat.total_request_time = request_stat.total_request_time + req_time
37 avg = (request_stat.total_request_time + req_time) / request_stat.requests
38 request_stat.save
39 $LOG.debug "#{app.name}: Average request time: #{avg} for #{request_stat.requests} reqs."
32 request_stats.each do |s|
33 Stat.create_from_stats(app, s[:start], s[:end])
34 #avg = (request_stat.total_request_time + req_time) / request_stat.requests
35 #$LOG.debug "#{app.name}: Average request time: #{avg} for #{request_stat.requests} reqs."
4036 end
4137 end
4238 rescue => e
toggle raw diff

marvin/app/models/stat.rb

 
11class Stat < ActiveRecord::Base
22 belongs_to :app
3
4 def self.create_from_stats(app, start_time, end_time)
5 stat = Stat.create({
6 :app => app,
7 :request_at => start_time,
8 :request_time => end_time.to_f - start_time.to_f
9 })
10 end
311end
toggle raw diff

marvin/db/migrate/002_create_stats.rb

 
11class CreateStats < ActiveRecord::Migration
22 def self.up
33 create_table :stats do |t|
4 t.integer :app_id
5 t.integer :requests, :default => 0
6 t.float :total_request_time, :default => 0.0
7 t.timestamps
4 t.integer :app_id
5 t.float :request_time, :default => 0.0
6 t.timestamp :request_at
87 end
98 end
109
toggle raw diff