class Daikon::Client
Constants
- EXCEPTIONS
Attributes
config[RW]
http[RW]
logger[RW]
monitor[RW]
redis[RW]
Public Instance Methods
connect()
click to toggle source
# File lib/daikon/client.rb, line 22 def connect Redis.connect(:url => config.redis_url) end
exception(error)
click to toggle source
# File lib/daikon/client.rb, line 34 def exception(error) log error.to_s error.backtrace.each do |line| log line end end
log(message)
click to toggle source
# File lib/daikon/client.rb, line 30 def log(message) logger.info message if logger end
push(method, path, body)
click to toggle source
# File lib/daikon/client.rb, line 51 def push(method, path, body) json = body.to_json request(method, path, :body => json, :headers => {"Content-Length" => json.size.to_s, "Content-Type" => "application/json"}) end
report_info()
click to toggle source
# File lib/daikon/client.rb, line 70 def report_info push :post, "/api/v1/infos.json", redis.info rescue *EXCEPTIONS => ex log "Error when reporting info" exception(ex) end
request(method, path, options = {})
click to toggle source
# File lib/daikon/client.rb, line 41 def request(method, path, options = {}) options[:method] = method.to_s.upcase options[:path] = path options[:headers] ||= {} options[:headers]['Authorization'] = config.api_key http.reset http.request(options) end
rotate_monitor(start, stop)
click to toggle source
# File lib/daikon/client.rb, line 59 def rotate_monitor(start, stop) payload = monitor.rotate.merge({ "created_at" => stop }) push :post, "/api/v1/summaries.json", payload rescue *EXCEPTIONS => ex log "Error when rotating monitor" exception(ex) end
setup(config, logger = nil)
click to toggle source
# File lib/daikon/client.rb, line 12 def setup(config, logger = nil) self.config = config self.logger = logger self.redis = connect self.monitor = Monitor.new(connect, logger) self.http = Excon.new(config.server_prefix) log "Started Daikon v#{VERSION}" end
start_monitor()
click to toggle source
# File lib/daikon/client.rb, line 26 def start_monitor monitor.start end