Class: Salus::BaseRenderer
- Inherits:
-
Object
- Object
- Salus::BaseRenderer
- Includes:
- Logging
- Defined in:
- lib/salus/renderer/base.rb
Direct Known Subclasses
BlockRenderer, CollectdRenderer, GraphiteRenderer, StdoutRenderer, ZabbixBulkRenderer, ZabbixCacheRenderer, ZabbixSenderRenderer
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ BaseRenderer
constructor
A new instance of BaseRenderer.
- #iterate(node, prefix = "", &block) ⇒ Object
- #render(data) ⇒ Object
Methods included from Logging
Constructor Details
#initialize(opts = {}) ⇒ BaseRenderer
Returns a new instance of BaseRenderer.
13 14 15 16 |
# File 'lib/salus/renderer/base.rb', line 13 def initialize(opts={}) @separator = opts.fetch(:separator, '.') @allow_mute = opts.fetch(:allow_mute, false) end |
Class Method Details
.descendants ⇒ Object
9 10 11 |
# File 'lib/salus/renderer/base.rb', line 9 def self.descendants @@descendants || [] end |
.inherited(subclass) ⇒ Object
4 5 6 7 |
# File 'lib/salus/renderer/base.rb', line 4 def self.inherited(subclass) @@descendants ||= [] @@descendants << subclass end |
Instance Method Details
#iterate(node, prefix = "", &block) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/salus/renderer/base.rb', line 23 def iterate(node, prefix="", &block) case node when Hash node.each do |name, item| iterate(item, join_name(prefix, name), &block) end when Salus::Group node.each(@allow_mute) do |name, metric| iterate(metric, join_name(prefix, name), &block) end if node.has_subgroups? node.groups.each do |name, group| iterate(group, join_name(prefix, name), &block) end end when Salus::Metric block.call(prefix, node) unless node.expired? else log WARN, "Unknown node type #{node.class}" end end |
#render(data) ⇒ Object
18 19 20 21 |
# File 'lib/salus/renderer/base.rb', line 18 def render(data) # Implement renderer raise "Unimplemented" end |