class Twirl::Instrumentation::Subscriber
Public Class Methods
call(name, start, ending, transaction_id, payload)
click to toggle source
Public: Use this as the subscribed block.
# File lib/twirl/instrumentation/subscriber.rb, line 5 def self.call(name, start, ending, transaction_id, payload) new(name, start, ending, transaction_id, payload).update end
new(name, start, ending, transaction_id, payload)
click to toggle source
Private: Initializes a new event processing instance.
# File lib/twirl/instrumentation/subscriber.rb, line 10 def initialize(name, start, ending, transaction_id, payload) @name = name @start = start @ending = ending @payload = payload @duration = ending - start @transaction_id = transaction_id end
Public Instance Methods
update()
click to toggle source
Public: Actually update all the metriks timers for the event.
Returns nothing.
# File lib/twirl/instrumentation/subscriber.rb, line 22 def update op = @payload[:op] bytes = @payload[:bytes] queue_name = @payload[:queue_name] metric_type = @payload[:metric_type] || :timer return unless op send "update_#{metric_type}", "twirl.op_#{op}" if @payload[:retry] update_counter "twirl.retries_op_#{op}" end if bytes update_counter "twirl.bytes_op_#{op}" if queue_name update_counter "twirl.bytes_queue_#{queue_name}_op_#{op}" end end if queue_name update_timer "twirl.queue_#{queue_name}_op_#{op}" end end
update_counter(metric, value = 1)
click to toggle source
Internal: Override in subclass.
# File lib/twirl/instrumentation/subscriber.rb, line 55 def update_counter(metric, value = 1) raise NotImplementedError end
update_timer(metric)
click to toggle source
Internal: Override in subclass.
# File lib/twirl/instrumentation/subscriber.rb, line 50 def update_timer(metric) raise NotImplementedError end