Class: Judoscale::JobMetricsCollector
- Inherits:
-
MetricsCollector
show all
- Includes:
- Logger
- Defined in:
- lib/judoscale/job_metrics_collector.rb,
lib/judoscale/job_metrics_collector/active_record_helper.rb
Defined Under Namespace
Modules: ActiveRecordHelper
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Logger
#logger
#collect
Constructor Details
Returns a new instance of JobMetricsCollector.
27
28
29
30
31
32
33
|
# File 'lib/judoscale/job_metrics_collector.rb', line 27
def initialize
super
log_msg = "#{self.class.adapter_name} enabled"
log_msg << " with busy job tracking support" if track_busy_jobs?
logger.info log_msg
end
|
Class Method Details
.adapter_config ⇒ Object
23
24
25
|
# File 'lib/judoscale/job_metrics_collector.rb', line 23
def self.adapter_config
raise "Implement `self.adapter_config` in individual job metrics collectors."
end
|
.adapter_identifier ⇒ Object
19
20
21
|
# File 'lib/judoscale/job_metrics_collector.rb', line 19
def self.adapter_identifier
adapter_config.identifier
end
|
.adapter_name ⇒ Object
15
16
17
|
# File 'lib/judoscale/job_metrics_collector.rb', line 15
def self.adapter_name
@_adapter_name ||= adapter_identifier.to_s.capitalize.gsub(/(?:_)(.)/i) { $1.upcase }
end
|
.collect?(config) ⇒ Boolean
11
12
13
|
# File 'lib/judoscale/job_metrics_collector.rb', line 11
def self.collect?(config)
super && !config.current_runtime_container.redundant_instance? && adapter_config.enabled
end
|
Instance Method Details
#clear_queues ⇒ Object
45
46
47
|
# File 'lib/judoscale/job_metrics_collector.rb', line 45
def clear_queues
@queues = nil
end
|
#queues ⇒ Object
Track the known queues so we can continue reporting on queues that don’t have enqueued jobs at the time of reporting.
37
38
39
|
# File 'lib/judoscale/job_metrics_collector.rb', line 37
def queues
@queues ||= Set.new([])
end
|
#queues=(new_queues) ⇒ Object
41
42
43
|
# File 'lib/judoscale/job_metrics_collector.rb', line 41
def queues=(new_queues)
@queues = filter_queues(new_queues)
end
|