class Fluent::Plugin::OsqueryInput
Public Class Methods
new()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_storm.rb, line 20 def initialize super require 'net/http' require 'uri' end
Public Instance Methods
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_storm.rb, line 26 def configure(conf) super end
shutdown()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_storm.rb, line 35 def shutdown super end
start()
click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_storm.rb, line 30 def start super timer_execute(:in_storm_timer, interval, &method(:execute)) end
Private Instance Methods
execute()
click to toggle source
# File lib/fluent/plugin/in_storm.rb, line 41 def execute @time = Fluent::Engine.now record = Hash.new(0) uri = URI.parse("#{@url}/api/v1/topology/summary") log.debug(uri) Net::HTTP.start(uri.host, uri.port) do |http| request = Net::HTTP::Get.new(uri.request_uri) http.request(request) do |response| record = JSON.parse(response.body) rescue next record["topologies"].each do |line| topology_id = line["id"] #@log.debug(line["id"]) uri = URI.parse("#{@url}/api/v1/topology/#{topology_id}") if @window && @sys uri = URI.parse("#{@url}/api/v1/topology/#{topology_id}?window=#{@window}&sys=#{@sys}") elsif @window uri = URI.parse("#{@url}/api/v1/topology/#{topology_id}?window=#{@window}") elsif @sys uri = URI.parse("#{@url}/api/v1/topology/#{topology_id}?sys=#{@sys}") end #@log.debug(uri) emit_record = Hash.new(0) Net::HTTP.start(uri.host, uri.port) do |http| request = Net::HTTP::Get.new(uri.request_uri) http.request(request) do |response| emit_record = JSON.parse(response.body) rescue next emit_record.delete("visualizationTable") emit_record.delete("configuration") end end log.debug(emit_record) router.emit(@tag, @time, emit_record) end end end rescue => e log.error('faild to run', error: e.to_s, error_class: e.class.to_s) log.error_backtrace end