class Fluent::Plugin::OsqueryInput

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_jmx.rb, line 21
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_jmx.rb, line 27
def configure(conf)
  super
end
shutdown() click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_jmx.rb, line 36
def shutdown
  super
end
start() click to toggle source
Calls superclass method
# File lib/fluent/plugin/in_jmx.rb, line 31
def start
  super
  timer_execute(:in_jmx, interval, &method(:execute))
end

Private Instance Methods

_get_record() click to toggle source
# File lib/fluent/plugin/in_jmx.rb, line 52
def _get_record
  record = Hash.new(0)
  uri = URI.parse("#{@url}/read/#{@mbean}/#{@attribute}")
  if @attribute && @inner_path
    uri = URI.parse("#{@url}/read/#{@mbean}/#{@attribute}/#{@inner_path}")
  end
  @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.delete("value"["Verbose"])
      @log.debug(response.body)
    end
  end
  record
end
execute() click to toggle source
# File lib/fluent/plugin/in_jmx.rb, line 42
def execute
  @time = Fluent::Engine.now
  record = _get_record
  log.debug(record)
  router.emit(@tag, @time, record)
rescue => e
  @log.error('faild to run', error: e.to_s, error_class: e.class.to_s)
  @log.error_backtrace
end