Sha256: c3db776d754e9131651671666243d98cd19e470b98749aac1e46302ee92a2ff3

Contents?: true

Size: 836 Bytes

Versions: 1

Compression:

Stored size: 836 Bytes

Contents

module Salus
  class ZabbixSenderRenderer < BaseRenderer
    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(/\.\[/, '[')
            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
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
salus-0.1.2 lib/salus/renderer/zabbixsender.rb