Module: COMOClient

Defined in:
lib/como_client.rb,
lib/como_client/metrics.rb,
lib/como_client/version.rb,
lib/como_client/metrics/cf.rb,
lib/como_client/configuration.rb,
lib/como_client/tasks/observer.rb,
lib/como_client/tasks/periodic_push.rb

Defined Under Namespace

Modules: Metrics, Tasks Classes: Configuration, Railtie

Constant Summary collapse

VERSION =
"0.5.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



31
32
33
# File 'lib/como_client.rb', line 31

def self.configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



39
40
41
42
# File 'lib/como_client.rb', line 39

def self.configure
  yield(configuration)
  self.run
end

.loggerObject



13
14
15
# File 'lib/como_client.rb', line 13

def self.logger
  @@logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
end

.logger=(logger) ⇒ Object



17
18
19
# File 'lib/como_client.rb', line 17

def self.logger=(logger)
  @@logger = logger
end

.resetObject



35
36
37
# File 'lib/como_client.rb', line 35

def self.reset
  @configuration = Configuration.new
end

.runObject



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/como_client.rb', line 44

def self.run

  COMOClient.logger.debug("initialise metrics push service...")
  if @pushTask and @pushTask.running?
    COMOClient.logger.debug("push service is already running!")
    return true
  end

  COMOClient::Metrics.register
  @pushTask = Concurrent::TimerTask.new(execution_interval: @configuration.push_interval, timeout_interval: 20){COMOClient::Tasks::PeriodicPush.push}
  @pushTask.add_observer(COMOClient::Tasks::Observer.new)
  @pushTask.execute
  COMOClient.logger.info("push service initialised")
  @pushTask.running?
end

.stopObject



60
61
62
# File 'lib/como_client.rb', line 60

def self.stop
  @pushTask.shutdown
end