class ScoutApm::JobRecord
Attributes
errors[R]
exclusive_time[R]
job_name[R]
metric_set[R]
queue_name[R]
total_time[R]
Public Class Methods
new(queue_name, job_name, total_time, exclusive_time, errors, metrics)
click to toggle source
# File lib/scout_apm/job_record.rb, line 17 def initialize(queue_name, job_name, total_time, exclusive_time, errors, metrics) @queue_name = queue_name @job_name = job_name @total_time = NumericHistogram.new(50) @total_time.add(total_time) @exclusive_time = NumericHistogram.new(50) @exclusive_time.add(exclusive_time) @errors = errors.to_i @metric_set = MetricSet.new @metric_set.absorb_all(metrics) end
Public Instance Methods
==(o)
click to toggle source
Hash Key interface
# File lib/scout_apm/job_record.rb, line 61 def ==(o) self.eql?(o) end
combine!(other)
click to toggle source
Modifies self and returns self, after merging in `other`.
# File lib/scout_apm/job_record.rb, line 34 def combine!(other) if !self.eql?(other) ScoutApm::Agent.instance.logger.debug("Mismatched Merge of Background Job: (Queue #{queue_name} == #{other.queue_name}) (Name #{job_name} == #{other.job_name}) (Hash #{hash} == #{other.hash})") return self end @errors += other.errors @metric_set = metric_set.combine!(other.metric_set) @total_time.combine!(other.total_time) @exclusive_time.combine!(other.exclusive_time) self end
eql?(o)
click to toggle source
# File lib/scout_apm/job_record.rb, line 71 def eql?(o) self.class == o.class && queue_name.downcase == o.queue_name.downcase && job_name.downcase == o.job_name.downcase end
hash()
click to toggle source
# File lib/scout_apm/job_record.rb, line 65 def hash h = queue_name.downcase.hash h ^= job_name.downcase.hash h end
metrics()
click to toggle source
# File lib/scout_apm/job_record.rb, line 52 def metrics metric_set.metrics end
run_count()
click to toggle source
# File lib/scout_apm/job_record.rb, line 48 def run_count total_time.total end