cartodb/services/importer/spec/doubles/importer_stats.rb
2020-06-15 10:58:47 +08:00

65 lines
1.6 KiB
Ruby

require_relative '../../../../lib/cartodb/stats/importer'
module CartoDB
module Doubles
module Stats
class Importer < CartoDB::Stats::Importer
TEST_HOST = '172.28.128.3'
TEST_PORT = 8125
def self.instance(config={}, host_info=Socket.gethostname)
Statsd.host = TEST_HOST
Statsd.port = TEST_PORT
importer_stats_double = new({}, 'importer-stats-double')
importer_stats_double.timed_blocks = Hash.new(0)
importer_stats_double
end
attr_writer :timed_blocks
def timing(key)
@timing_stack.push(key)
begin
return_value = nil
if(block_given?)
@timed_blocks[timing_chain] = @timed_blocks[timing_chain] + 1
return_value = yield
end
ensure
@timing_stack.pop
end
return_value
end
def timed_block(key)
@timed_blocks[key]
end
def timed_block_prefix_count(prefix)
matching_timed_blocks_count("^#{prefix}")
end
def timed_block_suffix_count(suffix)
matching_timed_blocks_count("#{suffix}$")
end
def matching_timed_blocks_count(regexp)
@timed_blocks.each_key.find_all { | key | !Regexp.new(regexp).match(key).nil? }.map { |key| @timed_blocks[key] }.reduce(0, :+)
end
def spy_runner(runner)
importer_self = self
runner.instance_eval {
@importer_stats = importer_self
}
end
end
end
end
end