Class: RailsPerformance::Instrument::MetricsCollector

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_performance/instrument/metrics_collector.rb

Instance Method Summary collapse

Instance Method Details

#call(event_name, started, finished, event_id, payload) ⇒ Object

payload

controller: "PostsController",
action: "index",
params: {"action" => "index", "controller" => "posts",
headers: #<ActionDispatch::Http::Headers:0x0055a67a519b88>,
format: :html,
method: "GET",
path: "/posts",
status: 200,
view_runtime: 46.848,
db_runtime: 0.157

}



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/rails_performance/instrument/metrics_collector.rb', line 18

def call(event_name, started, finished, event_id, payload)
  event = ActiveSupport::Notifications::Event.new(event_name, started, finished, event_id, payload)

  return if event.payload[:path] =~ /^\/rails\/performance/

  record = {
    controller: event.payload[:controller],
    action: event.payload[:action],
    format: event.payload[:format],
    status: event.payload[:status],
    datetime: finished.strftime(RailsPerformance::FORMAT),
    datetimei: finished.to_i,
    method: event.payload[:method],
    path: event.payload[:path],
    view_runtime: event.payload[:view_runtime],
    db_runtime: event.payload[:db_runtime],
    duration: event.duration
  }

  CurrentRequest.current.record = record
end