Sha256: a111a9b6c69c407cc105a0108a4e26bd281f841cbc2e45b87a483f30451b9212
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
module Staccato module Subscribers class Timing def self.call(*args) new(args).track! end def initialize(args) @args = args end def total_runtime @total_runtime ||= event.duration end def db_runtime @db_runtime ||= payload[:db_runtime] end def view_runtime @view_runtime ||= payload[:view_runtime] end def times [ {label: :total, time: total_runtime}, {label: :db, time: db_runtime}, {label: :view, time: view_runtime} ] end def track! params = context.merge(category: :rails, variable: :runtime) times.each do |time| tracker.timing(params.merge(time)) end end private def event @event ||= ActiveSupport::Notifications::Event.new(*@args) end def payload @payload ||= event.payload end def tracker @tracker ||= payload['staccato.tracker'] end def context @context ||= payload['staccato.context'] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
staccato-rails-0.1.0 | lib/staccato/subscribers/timing.rb |