Class: Floom::Reporter
Instance Attribute Summary
Attributes inherited from Client
#connection
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Client
#initialize, #reset_connection!, #to_s
Constructor Details
This class inherits a constructor from Floom::Client
Instance Method Details
24
25
26
27
28
29
|
# File 'lib/floom/client/reporter.rb', line 24
def (metrics, namespace = 'null')
jvm_info_key = metrics.keys.detect{ |key| key =~ /^#{namespace}\.jvm-Info$/ }
jvm_info = metrics.delete(jvm_info_key) || {}
jvm_info.delete('name')
{ jvm_info: jvm_info }
end
|
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/floom/client/reporter.rb', line 31
def (metrics, physical_node)
logical_node_keys = metrics.keys.map{ |key| key.match(/^#{physical_node}\.(?<node_name>[\w-]+)\.(?<metric>[\w-.]+)$/) }.compact
logical_nodes = logical_node_keys.inject({}) do |hsh, node_key|
logical_node = node_key[:node_name]
metric_key = node_key[:metric]
hsh[logical_node] = {} unless hsh[logical_node]
hsh[logical_node].merge!(metric_key => metrics.delete(node_key.to_s))
hsh
end
{ logical_nodes: logical_nodes }
end
|
10
11
12
13
14
15
|
# File 'lib/floom/client/reporter.rb', line 10
def (metrics)
master_key = metrics.keys.detect{ |key| key =~ /^flume-master-\d+$/ }
master = metrics.delete(master_key) || {}
master.delete('name')
{ master: master }
end
|
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/floom/client/reporter.rb', line 43
def (metrics)
physical_node_keys = metrics.keys.map{ |key| key.match(/^pn-(?<node_name>[\w-]+)$/) }.compact
physical_nodes = physical_node_keys.inject({}) do |hsh, node_key|
node_name = node_key[:node_name]
hsh[node_name] = {} unless hsh[node_name]
hsh[node_name].merge!(metrics.delete(node_key.to_s)).
merge!((metrics, node_key.to_s)).
merge!((metrics, node_key.to_s)).
merge!((metrics, node_name))
hsh
end
{ physical_nodes: physical_nodes }
end
|
17
18
19
20
21
22
|
# File 'lib/floom/client/reporter.rb', line 17
def (metrics, namespace = 'null')
system_info_key = metrics.keys.detect{ |key| key =~ /^#{namespace}\.system-info$/ }
system_info = metrics.delete(system_info_key) || {}
system_info.delete('name')
{ system_info: system_info }
end
|
#rehash(metrics = reports) ⇒ Object
57
58
59
60
61
62
|
# File 'lib/floom/client/reporter.rb', line 57
def rehash(metrics = reports)
{}.merge!( metrics).
merge!( metrics).
merge!( metrics).
merge!( metrics)
end
|
#reports ⇒ Object
6
7
8
|
# File 'lib/floom/client/reporter.rb', line 6
def reports
connection.getAllReports.inject({}){ |hsh, (name, report)| hsh[name] = Floom::Report.parse(report) ; hsh }
end
|