Module: TimeBandits
- Defined in:
- lib/time_bandits/time_consumers/beetle.rb,
lib/time_bandits.rb,
lib/time_bandits/railtie.rb,
lib/time_bandits/version.rb,
lib/time_bandits/rack/logger.rb,
lib/time_bandits/time_consumers/jmx.rb,
lib/time_bandits/monkey_patches/redis.rb,
lib/time_bandits/time_consumers/redis.rb,
lib/time_bandits/time_consumers/sequel.rb,
lib/time_bandits/time_consumers/database.rb,
lib/time_bandits/time_consumers/mem_cache.rb,
lib/time_bandits/time_consumers/memcached.rb,
lib/time_bandits/time_consumers/garbage_collection.rb
Overview
a time consumer implementation for garbage collection
Defined Under Namespace
Modules: Rack, RedisInstrumentation, TimeConsumers
Classes: Railtie
Constant Summary
collapse
- VERSION =
"0.15.0"
Class Method Summary
collapse
Class Method Details
.add(bandit) ⇒ Object
25
26
27
|
# File 'lib/time_bandits.rb', line 25
def self.add(bandit)
self.time_bandits << bandit unless self.time_bandits.include?(bandit)
end
|
.benchmark(title = "Completed in", logger = Rails.logger) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/time_bandits.rb', line 60
def self.benchmark(title="Completed in", logger=Rails.logger)
reset
result = nil
e = nil
seconds = Benchmark.realtime do
begin
result = yield
rescue Exception => e
logger.error "Exception: #{e.class}(#{e.message}):\n#{e.backtrace[0..5].join("\n")}"
end
end
consumed rc = e ? "500 Internal Server Error" : "200 OK"
logger.info "#{title} #{sprintf("%.3f", seconds * 1000)}ms (#{runtime}) | #{rc}"
raise e if e
result
end
|
.consumed ⇒ Object
33
34
35
|
# File 'lib/time_bandits.rb', line 33
def self.consumed
time_bandits.map{|b| b.consumed}.sum
end
|
.current_runtime(except = []) ⇒ Object
37
38
39
40
|
# File 'lib/time_bandits.rb', line 37
def self.current_runtime(except = [])
except = Array(except)
time_bandits.map{|b| except.include?(b) ? 0 : b.current_runtime}.sum
end
|
.metrics ⇒ Object
50
51
52
53
54
55
56
57
58
|
# File 'lib/time_bandits.rb', line 50
def self.metrics
metrics = Hash.new(0)
time_bandits.each do |bandit|
bandit.metrics.each do |k,v|
metrics[k] += v
end
end
metrics
end
|
.reset ⇒ Object
29
30
31
|
# File 'lib/time_bandits.rb', line 29
def self.reset
time_bandits.each{|b| b.reset}
end
|
.runtime ⇒ Object
46
47
48
|
# File 'lib/time_bandits.rb', line 46
def self.runtime
runtimes.join(" | ")
end
|
.runtimes ⇒ Object
42
43
44
|
# File 'lib/time_bandits.rb', line 42
def self.runtimes
time_bandits.map{|b| b.runtime}.reject{|t| t.blank?}
end
|