Commit 804affd9014551bb67f9254a60fed64c90721f0f
- Date: Mon Mar 31 22:49:09 +0000 2008
- Committer: rubyphunk (treas@dynamicdudes.com)
- Author: rubyphunk (treas@dynamicdudes.com)
- Commit SHA1: 804affd9014551bb67f9254a60fed64c90721f0f
- Tree SHA1: bcd18c437ae52c4c310e2fba705896a156f83e62
Modifed stat model, tracking and handling to keep each request as a single stat object (for later calculation of clashing requests)
Commit diff
| |   |
| 102 | 102 | end |
| 103 | 103 | |
| 104 | 104 | 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} } |
| 106 | 106 | end |
| 107 | 107 | |
| 108 | 108 | def fetch_requests_stats |
| toggle raw diff |
--- a/lib/handle.rb
+++ b/lib/handle.rb
@@ -102,7 +102,7 @@ class Handle
end
def update_requests_stats(start_time, end_time)
- @mutex.synchronize { self.requests_stats << [start_time, end_time] }
+ @mutex.synchronize { self.requests_stats << {:start => start_time, :end => end_time} }
end
def fetch_requests_stats |
| |   |
| 29 | 29 | stats = Handle.collect_stats_from_handles |
| 30 | 30 | stats.each do |handle, request_stats| |
| 31 | 31 | 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." |
| 40 | 36 | end |
| 41 | 37 | end |
| 42 | 38 | rescue => e |
| toggle raw diff |
--- a/lib/tracking.rb
+++ b/lib/tracking.rb
@@ -29,14 +29,10 @@ class Tracking
stats = Handle.collect_stats_from_handles
stats.each do |handle, request_stats|
app = App.find_by_name(handle.name)
- request_stats.each do |s|
- request_stat = Stat.find_or_create_by_app_id(app.id)
- req_time = s[1].to_f - s[0].to_f
- request_stat.increment(:requests)
- request_stat.total_request_time = request_stat.total_request_time + req_time
- avg = (request_stat.total_request_time + req_time) / request_stat.requests
- request_stat.save
- $LOG.debug "#{app.name}: Average request time: #{avg} for #{request_stat.requests} reqs."
+ request_stats.each do |s|
+ Stat.create_from_stats(app, s[:start], s[:end])
+ #avg = (request_stat.total_request_time + req_time) / request_stat.requests
+ #$LOG.debug "#{app.name}: Average request time: #{avg} for #{request_stat.requests} reqs."
end
end
rescue => e |
| |   |
| 1 | 1 | class Stat < ActiveRecord::Base |
| 2 | 2 | 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 |
| 3 | 11 | end |
| toggle raw diff |
--- a/marvin/app/models/stat.rb
+++ b/marvin/app/models/stat.rb
@@ -1,3 +1,11 @@
class Stat < ActiveRecord::Base
belongs_to :app
+
+ def self.create_from_stats(app, start_time, end_time)
+ stat = Stat.create({
+ :app => app,
+ :request_at => start_time,
+ :request_time => end_time.to_f - start_time.to_f
+ })
+ end
end |
| |   |
| 1 | 1 | class CreateStats < ActiveRecord::Migration |
| 2 | 2 | def self.up |
| 3 | 3 | 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 |
| 8 | 7 | end |
| 9 | 8 | end |
| 10 | 9 | |
| toggle raw diff |
--- a/marvin/db/migrate/002_create_stats.rb
+++ b/marvin/db/migrate/002_create_stats.rb
@@ -1,10 +1,9 @@
class CreateStats < ActiveRecord::Migration
def self.up
create_table :stats do |t|
- t.integer :app_id
- t.integer :requests, :default => 0
- t.float :total_request_time, :default => 0.0
- t.timestamps
+ t.integer :app_id
+ t.float :request_time, :default => 0.0
+ t.timestamp :request_at
end
end
|