Class: Neetodeploy::Rails::MetricsCollector

Inherits:
Object
  • Object
show all
Includes:
NeetoDeploy::Logger, Singleton
Defined in:
lib/neetodeploy/autoscale/rails/metrics_collector.rb

Constant Summary collapse

PERCENTILES =
{ p90: 0.90, p95: 0.95, p99: 0.99 }.freeze
RESTART_DELAY =
5

Class Method Summary collapse

Instance Method Summary collapse

Methods included from NeetoDeploy::Logger

logger, #logger

Class Method Details

.startObject



18
19
20
# File 'lib/neetodeploy/autoscale/rails/metrics_collector.rb', line 18

def self.start
  instance.start! unless instance.running?
end

Instance Method Details

#running?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/neetodeploy/autoscale/rails/metrics_collector.rb', line 34

def running?
  @pid == Process.pid && @thread&.alive?
end

#start!Object



22
23
24
25
26
# File 'lib/neetodeploy/autoscale/rails/metrics_collector.rb', line 22

def start!
  logger.info("Starting background worker to collect metrics")
  @pid = Process.pid
  start_collector_thread
end

#stop!Object



28
29
30
31
32
# File 'lib/neetodeploy/autoscale/rails/metrics_collector.rb', line 28

def stop!
  @thread&.terminate
  @thread = nil
  @pid = nil
end