class Peek::Views::Dalli
Public Class Methods
new(options = {})
click to toggle source
# File lib/peek/views/dalli.rb, line 6 def initialize(options = {}) @duration = Concurrent::AtomicReference.new(0) @calls = Concurrent::AtomicReference.new(0) @reads = Concurrent::AtomicReference.new(0) @misses = Concurrent::AtomicReference.new(0) @writes = Concurrent::AtomicReference.new(0) @others = Concurrent::AtomicReference.new(0) setup_subscribers end
Public Instance Methods
context()
click to toggle source
# File lib/peek/views/dalli.rb, line 27 def context { :reads => @reads.value, :misses => @misses.value, :writes => @writes.value, :others => @others.value, } end
formatted_duration()
click to toggle source
# File lib/peek/views/dalli.rb, line 18 def formatted_duration ms = @duration.value * 1000 if ms >= 1000 "%.2fs" % (ms / 1e3) else "%.0fms" % ms end end
results()
click to toggle source
# File lib/peek/views/dalli.rb, line 36 def results { :duration => formatted_duration, :calls => @calls.value, } end
Private Instance Methods
setup_subscribers()
click to toggle source
# File lib/peek/views/dalli.rb, line 45 def setup_subscribers # Reset each counter when a new request starts before_request do @duration.value = 0 @calls.value = 0 @reads.value = 0 @misses.value = 0 @writes.value = 0 @others.value = 0 end subscribe(/cache_(.*).active_support/) do |name, start, finish, id, payload| case name when 'cache_read.active_support' @reads.update { |value| value + 1 } when 'cache_miss.active_support' @misses.update { |value| value + 1 } when 'cache_write.active_support' @writes.update { |value| value + 1 } else @others.update { |value| value + 1 } end duration = (finish - start) @duration.update { |value| value + duration } @calls.update { |value| value + 1 } end end