Module: Harness

Defined in:
lib/harness.rb,
lib/harness/version.rb,
lib/harness/sync_queue.rb,
lib/harness/async_queue.rb,
lib/harness/fake_collector.rb,
lib/harness/null_collector.rb,
lib/harness/instrumentation.rb

Defined Under Namespace

Modules: Instrumentation Classes: AsyncQueue, Config, Counter, FakeCollector, Measurement, NullCollector, SyncQueue, Timer

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.collectorObject



94
95
96
# File 'lib/harness.rb', line 94

def self.collector
  config.collector
end

.configObject



59
60
61
# File 'lib/harness.rb', line 59

def self.config
  @config ||= Config.new
end

.count(*args) ⇒ Object



75
76
77
# File 'lib/harness.rb', line 75

def self.count(*args)
  queue.push [:count, args]
end

.decrement(*args) ⇒ Object



67
68
69
# File 'lib/harness.rb', line 67

def self.decrement(*args)
  queue.push [:decrement, args]
end

.gauge(*args) ⇒ Object



86
87
88
# File 'lib/harness.rb', line 86

def self.gauge(*args)
  queue.push [:gauge, args]
end

.increment(*args) ⇒ Object



63
64
65
# File 'lib/harness.rb', line 63

def self.increment(*args)
  queue.push [:increment, args]
end

.queueObject



90
91
92
# File 'lib/harness.rb', line 90

def self.queue
  config.queue
end

.time(stat, sample_rate = 1) ⇒ Object



79
80
81
82
83
84
# File 'lib/harness.rb', line 79

def self.time(stat, sample_rate = 1)
  start = Time.now
  result = yield
  timing(stat, ((Time.now - start) * 1000).round, sample_rate)
  result
end

.timing(*args) ⇒ Object



71
72
73
# File 'lib/harness.rb', line 71

def self.timing(*args)
  queue.push [:timing, args]
end