Sha256: 914e5b888977f852419776244a503016cb461bf8a40031bcadfdf37e13be4f93

Contents?: true

Size: 1.73 KB

Versions: 44

Compression:

Stored size: 1.73 KB

Contents

module ScoutApm
  class SlowJobRecord
    attr_reader :queue_name
    attr_reader :job_name

    # When did this job occur
    attr_reader :time

    # What else interesting did we learn?
    attr_reader :context

    attr_reader :total_time
    attr_reader :exclusive_time
    alias_method :total_call_time, :total_time

    attr_reader :metrics
    attr_reader :allocation_metrics
    attr_reader :mem_delta
    attr_reader :allocations
    attr_reader :hostname
    attr_reader :seconds_since_startup
    attr_reader :score
    attr_reader :git_sha
    attr_reader :truncated_metrics

    def initialize(queue_name, job_name, time, total_time, exclusive_time, context, metrics, allocation_metrics, mem_delta, allocations, score, truncated_metrics)
      @queue_name = queue_name
      @job_name = job_name
      @time = time
      @total_time = total_time
      @exclusive_time = exclusive_time
      @context = context
      @metrics = metrics
      @allocation_metrics = allocation_metrics
      @mem_delta = mem_delta
      @allocations = allocations
      @seconds_since_startup = (Time.now - ScoutApm::Agent.instance.process_start_time)
      @hostname = ScoutApm::Environment.instance.hostname
      @git_sha = ScoutApm::Environment.instance.git_revision.sha
      @score = score
      @truncated_metrics = truncated_metrics

      ScoutApm::Agent.instance.logger.debug { "Slow Job [#{metric_name}] - Call Time: #{total_call_time} Mem Delta: #{mem_delta}"}
    end

    def metric_name
      "Job/#{queue_name}/#{job_name}"
    end

    ########################
    # Scorable interface
    #
    # Needed so we can merge ScoredItemSet instances
    def call
      self
    end

    def name
      metric_name
    end

    def score
      @score
    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
scout_apm-2.3.5 lib/scout_apm/slow_job_record.rb
scout_apm-2.3.4 lib/scout_apm/slow_job_record.rb
scout_apm-2.3.3 lib/scout_apm/slow_job_record.rb
scout_apm-2.3.2 lib/scout_apm/slow_job_record.rb
scout_apm-3.0.0.pre13 lib/scout_apm/slow_job_record.rb
scout_apm-2.3.1 lib/scout_apm/slow_job_record.rb
scout_apm-3.0.0.pre12 lib/scout_apm/slow_job_record.rb
scout_apm-2.3.0 lib/scout_apm/slow_job_record.rb
scout_apm-2.3.0.pre3 lib/scout_apm/slow_job_record.rb
scout_apm-2.3.0.pre2 lib/scout_apm/slow_job_record.rb
scout_apm-2.3.0.pre1 lib/scout_apm/slow_job_record.rb
scout_apm-3.0.0.pre11 lib/scout_apm/slow_job_record.rb
scout_apm-2.3.0.pre lib/scout_apm/slow_job_record.rb
scout_apm-2.1.32 lib/scout_apm/slow_job_record.rb
scout_apm-2.1.31 lib/scout_apm/slow_job_record.rb
scout_apm-2.1.30 lib/scout_apm/slow_job_record.rb
scout_apm-2.1.29 lib/scout_apm/slow_job_record.rb
scout_apm-2.1.28 lib/scout_apm/slow_job_record.rb
scout_apm-2.1.27 lib/scout_apm/slow_job_record.rb
scout_apm-2.1.26 lib/scout_apm/slow_job_record.rb