class Riemann::Tools::AWS

Public Class Methods

new() click to toggle source
# File bin/riemann-sqs, line 18
def initialize
  @sqs = Fog::AWS::SQS.new(:aws_access_key_id => opts[:access_key],
                           :aws_secret_access_key => opts[:secret_key],
                           :region => opts[:region])
  response = @sqs.list_queues
  @queues_info = opts[:queue].inject({}) {|h, name| h[name] = response[:body]['QueueUrls'].select {|url| url.include? name }.first; h }
end

Public Instance Methods

tick() click to toggle source
# File bin/riemann-sqs, line 26
def tick
  @queues_info.each_pair do |queue, queue_url|
    response = @sqs.get_queue_attributes(queue_url, 'All')
    ['ApproximateNumberOfMessages', 'ApproximateNumberOfMessagesNotVisible'].each do |attr|
      msg = {
        metric: response[:body]['Attributes'][attr],
        service: "#{queue} #{attr}",
        state: 'ok'
      }
      report msg
    end
  end
end