class Salus::ZabbixSenderRenderer
Public Instance Methods
render(data)
click to toggle source
# File lib/salus/renderer/zabbixsender.rb, line 3 def render(data) # Top level groups are considered hostnames result = {} data.each do |hostname, group| iterate(group) do |name, metric| unless metric.timestamp.nil? timestamp = metric.timestamp.to_i name = name.gsub(/\.\[/, '[') name = name.to_json if (name.match(/\s/)) value = metric.value value = '""' if value.nil? value = value.to_json if (!value.nil? && metric.is_a?(Salus::Text)) result[timestamp] = [] unless result.key?(timestamp) result[timestamp] << "#{hostname.dump} #{name} #{timestamp} #{value}" end end end # Zabbix requires timestamps to be sorted result.keys.sort.each { |k| STDOUT.puts result[k] } end