Sha256: 86962c63aafdaf2fa993cf9a6a77b33d065debb16b5f4cea5eabde61ddadf85c
Contents?: true
Size: 1.74 KB
Versions: 5
Compression:
Stored size: 1.74 KB
Contents
module Lens class EventFormatter def initialize(event, records, gc_time = 0.0, allocations_data = Lens::AllocationsData.new) @event = event @records = records.map{|payload| filter_payload(payload)} @gc_time = gc_time @allocations_data = allocations_data end def json_formatted formatted.to_json end def formatted @formatted ||= { data: event_data } end private def event_payload @event_payload ||= filter_payload(@event.payload) end def event_data @event_data ||= { action: event_payload[:action], controller: event_payload[:controller], params: event_payload[:params], method: event_payload[:method], url: event_payload[:path], records: @records, time: Time.now, start: @event.time.to_f, end: @event.end.to_f, duration: @event.duration, gc_time: @gc_time, event_name: @event.name, meta: { client_version: VERSION, rails_version: ::Rails.version }, objects_count: @allocations_data.objects_count, objects_memory: @allocations_data.objects_memory } end def filter_payload(payload) payload.inject({}) do |res, h| k, v = h if v.is_a?(Hash) res[k] = filter_payload(v) elsif v.is_a?(File) res[k] = {type: :file, path: v.path} elsif v.is_a?(ActionDispatch::Http::UploadedFile) res[k] = { content_type: v.content_type, headers: v.headers, original_filename: v.original_filename, tempfile_path: v.tempfile.path } else res[k] = v end res end end end end
Version data entries
5 entries across 5 versions & 1 rubygems