class Dogscaler::Datadog

Public Class Methods

new(settings) click to toggle source
# File lib/dogscaler/datadog.rb, line 5
def initialize(settings)
    @dog ||= Dogapi::Client.new(settings['api_key'], settings['application_key'])
end

Public Instance Methods

process(query, period=5) click to toggle source
# File lib/dogscaler/datadog.rb, line 9
def process(query, period=5)
  to = Time.now
  from = to - (period.to_i*60)
  res = @dog.get_points(query, from.strftime('%s'), to.strftime('%s'))
  if res[0] != '200'
    logger.error "Error code generated on query, please validate your api keys, and query"
    logger.error "query: #{query}"
    logger.error "Result: #{res}"
    exit 1
  end
  if res[1]['series'].empty?
    logger.error "No results returned from query #{instance.query}"
    exit 1
  end
  points = unzip(res)

end
unzip(raw) click to toggle source
# File lib/dogscaler/datadog.rb, line 27
def unzip(raw)
  points = []
  raw[1]['series'][0]['pointlist'].each {|k,v| points << v.to_i }
  points
end