Module: MetricsMachine
- Defined in:
- lib/metrics_machine.rb,
lib/metrics_machine/mysql.rb,
lib/metrics_machine/monitor.rb,
lib/metrics_machine/railtie.rb,
lib/metrics_machine/version.rb
Defined Under Namespace
Classes: Monitor, Mysql, Railtie
Constant Summary
collapse
- VERSION =
"0.0.4"
Class Method Summary
collapse
Class Method Details
38
39
40
|
# File 'lib/metrics_machine.rb', line 38
def self.configure &block
monitor.configure &block
end
|
.die_gracefully_on_signal ⇒ Object
42
43
44
45
|
# File 'lib/metrics_machine.rb', line 42
def self.die_gracefully_on_signal
Signal.trap("INT") { EM.stop }
Signal.trap("TERM") { EM.stop }
end
|
.monitor ⇒ Object
34
35
36
|
# File 'lib/metrics_machine.rb', line 34
def self.monitor
@monitor ||= Monitor.new reporter
end
|
.reporter ⇒ Object
47
48
49
|
# File 'lib/metrics_machine.rb', line 47
def self.reporter
@statsd ||= Statsd.new(reporter_config['host'],reporter_config['port'])
end
|
.start(options = {}, &block) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/metrics_machine.rb', line 13
def self.start options = {}, &block
monitor.configure &block if block_given?
p = lambda { EM.run { monitor.run! } }
if defined?(PhusionPassenger)
PhusionPassenger.on_event(:starting_worker_process) do |forked|
if forked && EM.reactor_running?
EM.stop
end
Thread.new &p
die_gracefully_on_signal
end
else
Thread.abort_on_exception = true
Thread.new &p
end
end
|