lib/airbrake-ruby/performance_breakdown.rb
module Airbrake # PerformanceBreakdown holds data that shows how much time a request spent # doing certaing subtasks such as (DB querying, view rendering, etc). # # @see Airbrake.notify_breakdown # @api public # @since v4.2.0 # rubocop:disable Metrics/ParameterLists class PerformanceBreakdown include HashKeyable include Ignorable include Stashable include Mergeable attr_accessor :method, :route, :response_type, :groups, :timing, :time def initialize( method:, route:, response_type:, groups:, timing: nil, time: Time.now ) @time_utc = TimeTruncate.utc_truncate_minutes(time) @method = method @route = route @response_type = response_type @groups = groups @timing = timing @time = time end def destination 'routes-breakdowns' end def cargo 'routes' end def to_h { 'method' => method, 'route' => route, 'responseType' => response_type, 'time' => @time_utc, }.delete_if { |_key, val| val.nil? } end end # rubocop:enable Metrics/ParameterLists end