Skip to content

Instantly share code, notes, and snippets.

@s-tajima
Created July 3, 2012 05:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s-tajima/3037897 to your computer and use it in GitHub Desktop.
Save s-tajima/3037897 to your computer and use it in GitHub Desktop.
Monitoring RDS by right_aws
require 'rubygems'
require 'right_aws'
access_key_id = "your-access-key-id"
secret_access_key = "your-secret-access-key"
ENV["ACW_URL"] = "https://monitoring.ap-northeast-1.amazonaws.com:443/"
ENV["RDS_URL"] = "https://rds.ap-northeast-1.amazonaws.com:443/"
#rds = Rightscale::RdsInterface.new(access_key_id, secret_access_key)
rds = Rightscale::RdsInterface.new(access_key_id, secret_access_key, :logger => Logger.new('/dev/null'))
acw = Rightscale::AcwInterface.new(access_key_id, secret_access_key, :logger => Logger.new('/dev/null'))
instances = rds.describe_db_instances
instances.each do |params|
puts name = params[:db_name]
puts created = params[:create_time]
puts type = params[:instance_class]
puts storage = params[:allocated_storage]
puts status = params[:status]
puts endpoint = params[:endpoint_address]
puts region = params[:availability_zone]
puts retentions = params[:backup_retention_period]
puts maintenance = params[:preferred_maintenance_window]
puts backup = params[:preferred_backup_window]
puts restorable = params[:latest_restorable_time]
puts multiaz = params[:multi_az]
puts version = params[:engine_version]
puts secg = params[:db_security_groups][0][:name]
puts paramg = params[:db_parameter_group][:name]
options = { :namespace => "AWS/RDS", :period => 300, :statistics => "Average", :measure_name => "CPUUtilization", :dimentions => { :DBInstanceIdentifier => name } }
result = acw.get_metric_statistics(options)
puts result[:datapoints][0][:average]
options = { :namespace => "AWS/RDS", :period => 300, :statistics => "Average", :measure_name => "FreeStorageSpace", :dimentions => { :DBInstanceIdentifier => name } }
result = acw.get_metric_statistics(options)
puts result[:datapoints][0][:average]
options = { :namespace => "AWS/RDS", :period => 300, :statistics => "Average", :measure_name => "FreeableMemory", :dimentions => { :DBInstanceIdentifier => name } }
result = acw.get_metric_statistics(options)
puts result[:datapoints][0][:average]
options = { :namespace => "AWS/RDS", :period => 300, :statistics => "Average", :measure_name => "SwapUsage", :dimentions => { :DBInstanceIdentifier => name } }
result = acw.get_metric_statistics(options)
puts result[:datapoints][0][:average]
options = { :namespace => "AWS/RDS", :period => 300, :statistics => "Maximum", :measure_name => "DatabaseConnections", :dimentions => { :DBInstanceIdentifier => name } }
result = acw.get_metric_statistics(options)
puts result[:datapoints][0][:maximum]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment