class LogStash::Inputs::Attunity_Metrics

Generate a repeating message.

This plugin is intented only as an example.

Public Instance Methods

register() click to toggle source
# File lib/logstash/inputs/attunity_metrics.rb, line 26
def register
  
  @header = {
    :content_type => "application/json",
    :user => @username,
    :password => @password
  }

  @client = resource = RestClient::Resource.new(
    @url,
    :verify_ssl => OpenSSL::SSL::VERIFY_NONE
  )

  @logger.info("Registering attunity_metrics", :url => @url, :user => @username, :password => @password, :verify_ssl => @verify_ssl)
end
run(queue) click to toggle source
# File lib/logstash/inputs/attunity_metrics.rb, line 42
def run(queue)
  # we can abort the loop if stop? becomes true
  # while !stop?
  #   event = LogStash::Event.new("message" => @message, "host" => @host)
  #   decorate(event)
  #   queue << event
  #   # because the sleep interval can be big, when shutdown happens
  #   # we want to be able to abort the sleep
  #   # Stud.stoppable_sleep will frequently evaluate the given block
  #   # and abort the sleep(@interval) if the return value is true
  #   Stud.stoppable_sleep(@interval) { stop? }
  # end # loop

  login()

  servers = get_servers()
  servers.each do |server|
    server_details = get_server_details(server.name)
    tasks = get_tasks(server.name)

    tasks.each do |task|
      task_detail = get_task_details(server.name, task.name)

      event = LogStash::Event.new("message" => @message, "host" => @host)
      decorate(event)
      queue << event
    end
  end

  logout()

end
stop() click to toggle source
# File lib/logstash/inputs/attunity_metrics.rb, line 75
def stop
  # nothing to do in this case so it is not necessary to define stop
  # examples of common "stop" tasks:
  #  * close sockets (unblocking blocking reads/accepts)
  #  * cleanup temporary files
  #  * terminate spawned threads
end

Private Instance Methods

get_server_details(server) click to toggle source
# File lib/logstash/inputs/attunity_metrics.rb, line 110
def get_server_details(server)
  response = @client["api/v1/servers/#{server}"].get(
    :header => @header
  )
  return response.body.server_details
end
get_servers() click to toggle source
# File lib/logstash/inputs/attunity_metrics.rb, line 102
def get_servers()
  response = @client["api/v1/servers"].get(
    :header => @header
  )
  return response.body.serverList
end
get_task_details(server, task) click to toggle source
# File lib/logstash/inputs/attunity_metrics.rb, line 126
def get_task_details(server, task)
  response = @client["api/v1/servers/#{server}/tasks/#{task}"].get(
    :header => @header
  )
  return response.body
end
get_tasks(server) click to toggle source
# File lib/logstash/inputs/attunity_metrics.rb, line 118
def get_tasks(server)
  response = @client["api/v1/servers/#{server}/tasks"].get(
    :header => @header
  )
  return response.body.taskList
end
login() click to toggle source
# File lib/logstash/inputs/attunity_metrics.rb, line 84
def login()
  response = @client["api/v1/login"].get(
    :header => @header
  )
  
  @header[:'EnterpriseManager.APISessionID'] = response.header[:'EnterpriseManager.APISessionID']
end
logout() click to toggle source
# File lib/logstash/inputs/attunity_metrics.rb, line 93
def logout()
  response = @client["api/v1/logout"].get(
    :header => @header
  )
  
  @header[:'EnterpriseManager.APISessionID'] = ""
end