class Riemann::Tools::AWS
Public Class Methods
new()
click to toggle source
# File bin/riemann-aws-rds-status, line 18 def initialize abort "FATAL: specify a DB instance name, see --help for usage" unless opts[:dbinstance_identifier] if opts[:access_key] and opts[:secret_key] creds = { :aws_access_key_id => opts[:access_key], :aws_secret_access_key => opts[:secret_key] } else creds = { :use_iam_profile => true } end creds['region'] = opts[:region] @cloudwatch = Fog::AWS::CloudWatch.new(creds) end
Public Instance Methods
tick()
click to toggle source
# File bin/riemann-aws-rds-status, line 32 def tick time = Time.new ['DatabaseConnections', 'FreeableMemory', 'FreeStorageSpace', 'NetworkReceiveThroughput', 'NetworkTransmitThroughput', 'ReadThroughput', 'CPUUtilization'].each do |metric| result = @cloudwatch.get_metric_statistics({"Namespace" => 'AWS/RDS', "MetricName" => "#{metric}", "Statistics" => 'Average', "Dimensions" => [{"Name" => "DBInstanceIdentifier", "Value" => "#{opts[:dbinstance_identifier]}"}], "StartTime" => (time-120).to_time.iso8601, "EndTime" => time.to_time.iso8601, "Period" => 60}) metricsResult = result.data[:body]['GetMetricStatisticsResult'] if (metricsResult['Datapoints'].length>0) datapoint = metricsResult['Datapoints'][0] ev = {:metric => datapoint['Average'], :service => "#{opts[:dbinstance_identifier]}.#{metric} (#{datapoint['Unit']})", :description => JSON.dump(metricsResult), :state => "ok", :ttl => 300} report ev end end end