class LHC::Monitoring
Constants
- FORWARDED_OPTIONS
Options forwarded to the monitoring
Public Instance Methods
after_request(request)
click to toggle source
# File lib/lhc-core-interceptors/monitoring.rb, line 17 def after_request(request) return unless statsd LHC::Monitoring.statsd.count("#{key(request)}.count", 1) LHC::Monitoring.statsd.count("#{key(request)}.after_request", 1) end
after_response(response)
click to toggle source
# File lib/lhc-core-interceptors/monitoring.rb, line 23 def after_response(response) return unless statsd key = key(response) LHC::Monitoring.statsd.timing("#{key}.time", response.time) if response.success? key += response.timeout? ? '.timeout' : ".#{response.code}" LHC::Monitoring.statsd.count(key, 1) end
before_request(request)
click to toggle source
# File lib/lhc-core-interceptors/monitoring.rb, line 12 def before_request(request) return unless statsd LHC::Monitoring.statsd.count("#{key(request)}.before_request", 1) end
Private Instance Methods
key(target)
click to toggle source
# File lib/lhc-core-interceptors/monitoring.rb, line 33 def key(target) request = target.is_a?(LHC::Request) ? target : target.request key = options(request.options)[:key] return key if key.present? url = sanitize_url(request.url) key = [ 'lhc', Rails.application.class.parent_name.underscore, Rails.env, URI.parse(url).host.gsub(/\./, '_'), request.method ] key.join('.') end
options(input = {})
click to toggle source
# File lib/lhc-core-interceptors/monitoring.rb, line 54 def options(input = {}) options = {} FORWARDED_OPTIONS.each do |k, v| options[v] = input[k] if input.key?(k) end options end
sanitize_url(url)
click to toggle source
# File lib/lhc-core-interceptors/monitoring.rb, line 49 def sanitize_url(url) return url if url.match(%r{https?://}) "http://#{url}" end