Class: Mnemonic
- Inherits:
-
Object
show all
- Includes:
- MonitorMixin
- Defined in:
- lib/mnemonic.rb,
lib/mnemonic/sink.rb,
lib/mnemonic/util.rb,
lib/mnemonic/config.rb,
lib/mnemonic/util/os.rb,
lib/mnemonic/version.rb,
lib/mnemonic/sink/csv.rb,
lib/mnemonic/sink/json.rb,
lib/mnemonic/metric/rss.rb,
lib/mnemonic/metric/base.rb,
lib/mnemonic/metric/time.rb,
lib/mnemonic/sink/pretty.rb,
lib/mnemonic/logger_proxy.rb,
lib/mnemonic/metric/rss/ps.rb,
lib/mnemonic/metric/gc_stat.rb,
lib/mnemonic/util/page_size.rb,
lib/mnemonic/metric/hash_metric.rb,
lib/mnemonic/metric/rss/proc_fs.rb,
lib/mnemonic/metric/objects_size.rb,
lib/mnemonic/metric/time_seconds.rb,
lib/mnemonic/metric/objects_count.rb,
lib/mnemonic/metric/instances_size.rb,
lib/mnemonic/metric/instances_count.rb,
lib/mnemonic/metric/time_milliseconds.rb
Defined Under Namespace
Modules: Metric, Sink, Util
Classes: Config, LoggerProxy
Constant Summary
collapse
- VERSION =
"0.1.1"
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize {|config| ... } ⇒ Mnemonic
Returns a new instance of Mnemonic.
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/mnemonic.rb', line 16
def initialize
super
config = Mnemonic::Config.new
yield config
@root_metrics = config.metrics.map do |metric|
metric.klass.new(*metric.args)
end
@metrics = @root_metrics.flat_map do |metric|
metric.to_enum(:each_submetric).to_a
end
@root_metrics.each(&:start!)
@metric_names = @metrics.map(&:name)
@sinks = Set.new
@enabled = true
end
|
Instance Attribute Details
#enabled ⇒ Object
Returns the value of attribute enabled.
14
15
16
|
# File 'lib/mnemonic.rb', line 14
def enabled
@enabled
end
|
#metric_names ⇒ Object
Returns the value of attribute metric_names.
14
15
16
|
# File 'lib/mnemonic.rb', line 14
def metric_names
@metric_names
end
|
#metrics ⇒ Object
Returns the value of attribute metrics.
14
15
16
|
# File 'lib/mnemonic.rb', line 14
def metrics
@metrics
end
|
#root_metrics ⇒ Object
Returns the value of attribute root_metrics.
14
15
16
|
# File 'lib/mnemonic.rb', line 14
def root_metrics
@root_metrics
end
|
Instance Method Details
#attach(sink_class, *args, &block) ⇒ Object
63
64
65
66
67
68
69
|
# File 'lib/mnemonic.rb', line 63
def attach(sink_class, *args, &block)
synchronize do
sink_class.new(self, *args, &block).tap do |sink|
@sinks << sink
end
end
end
|
#attach_csv(*args) ⇒ Object
51
52
53
|
# File 'lib/mnemonic.rb', line 51
def attach_csv(*args)
attach(Sink::CSV, *args)
end
|
#attach_json(*args) ⇒ Object
55
56
57
|
# File 'lib/mnemonic.rb', line 55
def attach_json(*args)
attach(Sink::JSON, *args)
end
|
#attach_pretty(*args) ⇒ Object
59
60
61
|
# File 'lib/mnemonic.rb', line 59
def attach_pretty(*args)
attach(Sink::Pretty, *args)
end
|
#detach(sink) ⇒ Object
71
72
73
74
75
76
|
# File 'lib/mnemonic.rb', line 71
def detach(sink)
synchronize do
sink.close
@sinks.delete sink
end
end
|
#detach_all ⇒ Object
78
79
80
81
82
83
|
# File 'lib/mnemonic.rb', line 78
def detach_all
synchronize do
@sinks.each(&:close)
@sinks.clear
end
end
|
#disable! ⇒ Object
43
44
45
|
# File 'lib/mnemonic.rb', line 43
def disable!
@enabled = false
end
|
#enable! ⇒ Object
47
48
49
|
# File 'lib/mnemonic.rb', line 47
def enable!
@enabled = true
end
|
#trigger!(extra = nil) ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/mnemonic.rb', line 35
def trigger!( = nil)
return unless enabled
synchronize do
@root_metrics.each(&:refresh!)
@sinks.each { |s| s.drop!() }
end
end
|