class Leafy::Instrumented::BasicInstrumented
Constants
- NAME_PREFIX
Public Class Methods
new( registry, name, meter_names_by_status_code = {} )
click to toggle source
# File leafy-rack/lib/leafy/instrumented/basic_instrumented.rb, line 7 def initialize( registry, name, meter_names_by_status_code = {} ) @meters_by_status_code = java.util.concurrent.ConcurrentHashMap.new meter_names_by_status_code.each do |k,v| @meters_by_status_code[ k ] = registry.register_meter( "#{name}.#{v}" ) end @other = registry.register_meter( "#{name}.#{NAME_PREFIX}.other" ) @active = registry.register_counter( "#{name}.active_requests" ) @timer = registry.register_timer( "#{name}.requests" ) end
Public Instance Methods
call( &block )
click to toggle source
# File leafy-rack/lib/leafy/instrumented/basic_instrumented.rb, line 17 def call( &block ) raise "block needed" unless block_given? @active.inc @timer.time do result = block.call mark_meter_for_status_code result[0] result end ensure @active.dec end
mark_meter_for_status_code( status )
click to toggle source
# File leafy-rack/lib/leafy/instrumented/basic_instrumented.rb, line 32 def mark_meter_for_status_code( status ) metric = @meters_by_status_code[ status ] || @other metric.mark end