class SystemMetrics::Collector

Attributes

store[R]

Public Class Methods

new(store) click to toggle source
# File lib/system_metrics/collector.rb, line 5
def initialize(store)
  @store = store
end

Public Instance Methods

collect() { || ... } click to toggle source
# File lib/system_metrics/collector.rb, line 13
def collect
  events.clear
  SystemMetrics.collection_on
  result = yield
  SystemMetrics.collection_off
  store.save events.dup
  result
ensure
  SystemMetrics.collection_off
  events.clear
end
collect_event(event) click to toggle source
# File lib/system_metrics/collector.rb, line 9
def collect_event(event)
  events.push event if SystemMetrics.collecting?
end

Private Instance Methods

events() click to toggle source
# File lib/system_metrics/collector.rb, line 27
def events
  Thread.current[:system_metrics_events] ||= []
end