class LogStash::Outputs::Ciscozeusmetrics
Outputs metrics to CiscoZeus
Public Instance Methods
multi_receive(events)
click to toggle source
# File lib/logstash/outputs/CiscoZeusMetrics.rb, line 31 def multi_receive(events) events.group_by{ |ev| ev.sprintf(@metric_name) }.each do |metric_name, events_group| metrics = events_group.map{|event| reform(event)} result = @zeus_client.send_metrics(metric_name, metrics) if not result.success? STDERR.puts "Failed to send data to zeus: " + result.data.to_s end end end
reform(event)
click to toggle source
Matches Zeus metrics API format
# File lib/logstash/outputs/CiscoZeusMetrics.rb, line 42 def reform(event) datapoint = {} if @fields == nil datapoint = event.to_hash.select{ |k,v| k != "@timestamp" and v.is_a? Numeric } else datapoint = event.to_hash.select{ |k,v| @fields.include? k } datapoint = Hash[datapoint.map{ |k,v| [k,if v.is_a? Numeric then v else v.to_f end]}] end return {timestamp: event.get("@timestamp").to_f, point: datapoint} end
register()
click to toggle source
# File lib/logstash/outputs/CiscoZeusMetrics.rb, line 24 def register @zeus_client = Zeus::APIClient.new({ access_token: @token, endpoint: @endpoint }) end