class MetricsAdapter::Trackers::SlowRequest
Attributes
slow_request_threshold[R]
Public Class Methods
new(event)
click to toggle source
Calls superclass method
MetricsAdapter::Trackers::Base::new
# File lib/metrics_adapter/trackers/slow_request.rb, line 6 def initialize(event) @slow_request_threshold = ::MetricsAdapter.thresholds.fetch(:slow_request) super end
Public Instance Methods
call()
click to toggle source
# File lib/metrics_adapter/trackers/slow_request.rb, line 11 def call return if conditional.present? && conditional.call.blank? if event.duration > slow_request_threshold data = { id: event.transaction_id, name: metric_name, duration: (event.duration / 1000), method: event.payload[:method].to_s.downcase, cpu_time_in_ms: event.cpu_time, idle_time_in_ms: event.idle_time, path: event.payload[:path] }.merge(extra_attributes) logger.info( "Slow request detected. Sending data to #{adapter.class.name}" ) if logger adapter.publish(data) end end