Class: Barnes::Periodic
- Inherits:
-
Object
- Object
- Barnes::Periodic
- Defined in:
- lib/barnes/periodic.rb
Instance Method Summary collapse
-
#initialize(reporter:, interval: 10, debug: false, panels: []) ⇒ Periodic
constructor
A new instance of Periodic.
- #stop ⇒ Object
Constructor Details
#initialize(reporter:, interval: 10, debug: false, panels: []) ⇒ Periodic
Returns a new instance of Periodic.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/barnes/periodic.rb', line 29 def initialize(reporter:, interval: 10, debug: false, panels: []) @reporter = reporter @debug = debug @interval = interval @panels = panels @thread = Thread.new { Thread.current[:barnes_state] = {} @panels.each do |panel| panel.start! Thread.current[:barnes_state] end loop do begin sleep @interval env = { STATE => Thread.current[:barnes_state], COUNTERS => {}, GAUGES => {} } @panels.each do |panel| panel.instrument! env[STATE], env[COUNTERS], env[GAUGES] end puts env.to_json if @debug @reporter.report env rescue => e $stderr.puts "barnes: error during metrics collection: #{e.class}: #{e.}" end end } @thread.abort_on_exception = true end |
Instance Method Details
#stop ⇒ Object
66 67 68 |
# File 'lib/barnes/periodic.rb', line 66 def stop @thread.exit end |