class Wildsight::Agent::Agent
Public Class Methods
new(config = (Wildsight::Agent::Config.load))
click to toggle source
# File lib/wildsight/agent/agent.rb, line 24 def initialize(config = (Wildsight::Agent::Config.load)) @config = config setup end
Public Instance Methods
context(name = nil)
click to toggle source
# File lib/wildsight/agent/agent.rb, line 33 def context(name = nil) name ||= SecureRandom.uuid name = name.to_s unless @contexts[name] @contexts[name] = Wildsight::Context::Context.new(name, self) self.logger.log(:debug) { "New context registered #{name}"} end return @contexts[name] end
logger()
click to toggle source
# File lib/wildsight/agent/agent.rb, line 29 def logger @logger end
submit(type, event)
click to toggle source
# File lib/wildsight/agent/agent.rb, line 54 def submit(type, event) (@events[type] ||= []) << event if @events.size > @config['agent']['threshold'] self.logger.log(:debug) { 'Uploading collected data' } upload end end
unknown_context()
click to toggle source
# File lib/wildsight/agent/agent.rb, line 43 def unknown_context context('unknown_context') end
unregister_context(context)
click to toggle source
# File lib/wildsight/agent/agent.rb, line 47 def unregister_context(context) context = context.name if context.kind_of?(Wildsight::Context::Context) name = context.to_s self.logger.log(:debug) { "Context unregistered #{name}"} @contexts.delete(name) end
upload()
click to toggle source
# File lib/wildsight/agent/agent.rb, line 62 def upload payload, @events = @events, {} @transport.send(payload) if payload != nil && payload.size > 0 end
Private Instance Methods
setup()
click to toggle source
# File lib/wildsight/agent/agent.rb, line 69 def setup @logger = Wildsight::Agent::Logger.new(@config) @logger.log(:debug) { 'Logger initialized' } @events = {} @contexts = {} @transport = Wildsight::Transport.detect.new(self, @config) thread end
thread()
click to toggle source
# File lib/wildsight/agent/agent.rb, line 80 def thread @thread ||= Thread.new { while true begin upload sleep(@config['agent']['timeout']) rescue Exception => e puts e.message puts e.backtrace end end }.run end