Class: Perfm::SidekiqGvlMetricsAnalyzer
- Inherits:
-
Object
- Object
- Perfm::SidekiqGvlMetricsAnalyzer
- Defined in:
- lib/perfm/sidekiq_gvl_metrics_analyzer.rb
Instance Attribute Summary collapse
-
#end_time ⇒ Object
readonly
Returns the value of attribute end_time.
-
#query ⇒ Object
readonly
Returns the value of attribute query.
-
#start_time ⇒ Object
readonly
Returns the value of attribute start_time.
Instance Method Summary collapse
- #analyze ⇒ Object
-
#initialize(start_time: nil, end_time: nil, job_class: nil, queue: nil) ⇒ SidekiqGvlMetricsAnalyzer
constructor
A new instance of SidekiqGvlMetricsAnalyzer.
Constructor Details
#initialize(start_time: nil, end_time: nil, job_class: nil, queue: nil) ⇒ SidekiqGvlMetricsAnalyzer
Returns a new instance of SidekiqGvlMetricsAnalyzer.
7 8 9 10 11 12 13 14 |
# File 'lib/perfm/sidekiq_gvl_metrics_analyzer.rb', line 7 def initialize(start_time: nil, end_time: nil, job_class: nil, queue: nil) @start_time = start_time @end_time = end_time @query = SidekiqGvlMetric.where(true) @query = @query.where(job_class: job_class) if job_class @query = @query.where(queue: queue) if queue @query = @query.where(created_at: start_time..end_time) if start_time && end_time end |
Instance Attribute Details
#end_time ⇒ Object (readonly)
Returns the value of attribute end_time.
5 6 7 |
# File 'lib/perfm/sidekiq_gvl_metrics_analyzer.rb', line 5 def end_time @end_time end |
#query ⇒ Object (readonly)
Returns the value of attribute query.
5 6 7 |
# File 'lib/perfm/sidekiq_gvl_metrics_analyzer.rb', line 5 def query @query end |
#start_time ⇒ Object (readonly)
Returns the value of attribute start_time.
5 6 7 |
# File 'lib/perfm/sidekiq_gvl_metrics_analyzer.rb', line 5 def start_time @start_time end |
Instance Method Details
#analyze ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/perfm/sidekiq_gvl_metrics_analyzer.rb', line 16 def analyze return {} if query.count.zero? result = {} result[:total_io_percentage] = total_io_percentage result[:total_io_and_stall_percentage] = total_io_and_stall_percentage result[:average_processing_time_ms] = average_processing_time_ms result[:average_stall_ms] = average_stall_ms result[:job_count] = job_count result[:time_range] = time_range_info result[:by_job_class] = metrics_by_job_class result[:by_queue] = metrics_by_queue result end |