Class: Prometheus::Collector::Extensions::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/prometheus/collector/extensions.rb

Direct Known Subclasses

Once

Class Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Class Attribute Details

.loggerObject



15
16
17
# File 'lib/prometheus/collector/extensions.rb', line 15

def logger
  @logger ||= Prometheus::Collector.logger
end

.scheduleObject



19
20
21
# File 'lib/prometheus/collector/extensions.rb', line 19

def schedule
  @schedule ||= '* * * * *'
end

Class Method Details

.installObject



23
24
25
26
# File 'lib/prometheus/collector/extensions.rb', line 23

def install
  logger.info "Install #{name.to_sym}"
  Prometheus::Collector::Extensions::Runnable.register name.to_sym, new
end

Instance Method Details

#callObject



33
34
35
36
# File 'lib/prometheus/collector/extensions.rb', line 33

def call
  log 'Starting call'
  run
end

#callbackObject



42
43
44
# File 'lib/prometheus/collector/extensions.rb', line 42

def callback
  proc { log 'Finished call' }
end

#errbackObject



46
47
48
49
50
51
52
53
54
# File 'lib/prometheus/collector/extensions.rb', line 46

def errback
  proc do |error|
    log "Exception in call: '#{error}'", level: :error
    log 'Backtrace:', level: :debug
    error.backtrace.each do |l|
      log l, level: :debug
    end
  end
end

#log(msg, level: :info) ⇒ Object



29
30
31
# File 'lib/prometheus/collector/extensions.rb', line 29

def log(msg, level: :info)
  self.class.logger.send(level, self.class) { msg } if self.class.logger
end

#runObject



38
39
40
# File 'lib/prometheus/collector/extensions.rb', line 38

def run
  raise 'Not Implemented - please implement a run function'
end