Module: Dalia::MiniGraphite
- Defined in:
- lib/mini_graphite.rb,
lib/mini_graphite/logger.rb,
lib/mini_graphite/version.rb,
lib/mini_graphite/routes_reporter.rb
Defined Under Namespace
Classes: Logger, RoutesReporter
Constant Summary
collapse
- DEFAULTS =
{
:graphite_host => "graphite.host.com",
:graphite_port => 2003,
:statsd_host => "statsd.host.com",
:statsd_port => 8125,
:mock_mode => false,
:debug_mode => false
}
- VERSION =
"0.3.7"
Class Method Summary
collapse
Class Method Details
.benchmark_wrapper(key, result_send_method = nil) ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/mini_graphite.rb', line 48
def self.benchmark_wrapper(key, result_send_method = nil)
counter("#{key}.ini")
result = nil
time =
Benchmark.realtime do
result = yield
end
counter("#{key}.time", time * 1000)
counter("#{key}.result", result.send(result_send_method)) if result_send_method
counter("#{key}.end")
time("#{key}.time_stats", time * 1000)
result
end
|
.config(opts = {}) ⇒ Object
19
20
21
22
23
24
|
# File 'lib/mini_graphite.rb', line 19
def self.config(opts = {})
@opts = DEFAULTS.merge(opts)
@logger = Dalia::MiniGraphite::Logger.new(opts[:debug_mode])
logger.debug("Initalized with opts")
logger.debug(opts.inspect)
end
|
.counter(key, value = nil) ⇒ Object
33
34
35
36
37
38
39
|
# File 'lib/mini_graphite.rb', line 33
def self.counter(key, value = nil)
value ||= 1
signal = "#{key}:#{value}|c"
logger.debug("Sending counter: '#{signal}'")
send_udp(signal) if !opts[:mock_mode]
end
|
.datapoint(key, value = 1, timestamp = Time.now) ⇒ Object
26
27
28
29
30
31
|
# File 'lib/mini_graphite.rb', line 26
def self.datapoint(key, value = 1, timestamp = Time.now)
signal = "#{key} #{value} #{timestamp.to_i}"
logger.debug("Sending datapoint: '#{signal}'")
send_tcp(signal) if !opts[:mock_mode]
end
|
.send_tcp(message) ⇒ Object
67
68
69
70
71
72
73
|
# File 'lib/mini_graphite.rb', line 67
def self.send_tcp(message)
hosts = [opts[:graphite_host]].flatten
hosts.each do |host|
send_tcp_on_host(host, opts[:graphite_port], message)
end
end
|
.send_tcp_on_host(host, port, message) ⇒ Object
83
84
85
86
87
|
# File 'lib/mini_graphite.rb', line 83
def self.send_tcp_on_host(host, port, message)
socket = TCPSocket.new(host, port)
socket.print("#{message}\n")
socket.close
end
|
.send_udp(message) ⇒ Object
75
76
77
78
79
80
81
|
# File 'lib/mini_graphite.rb', line 75
def self.send_udp(message)
hosts = [opts[:statsd_host]].flatten
hosts.each do |host|
send_udp_on_host(host, opts[:statsd_port], message)
end
end
|
.send_udp_on_host(host, port, message) ⇒ Object
89
90
91
92
93
|
# File 'lib/mini_graphite.rb', line 89
def self.send_udp_on_host(host, port, message)
socket = UDPSocket.new
socket.send(message, 0, host, port)
socket.close
end
|
.time(key, value = 0) ⇒ Object
41
42
43
44
45
46
|
# File 'lib/mini_graphite.rb', line 41
def self.time(key, value = 0)
signal = "#{key}:#{value}|ms"
logger.debug("Sending time: '#{signal}'")
send_udp(signal) if !opts[:mock_mode]
end
|