#!/usr/bin/python
import boto.ec2.cloudwatch
import sys
import datetime
try:
metName = sys.argv[1]
funcName = sys.argv[2]
dimSpace = sys.argv[3]
region = sys.argv[4]
accessKey = sys.argv[5]
secretKey = sys.argv[6]
except:
print "Usage: GetFromCloudwatch.py MetricName Function Dimension Region AWS_ACCESS_KEY AWS_SECRET_ACCESS_KEY"
print "Example: GetFromCloudwatch.py FreeableMemory Average \"CacheClusterId=ElsticCacheName\" us-east-1 ACCESS_KEY SECRET_ACCESS_KEY"
print " GetFromCloudwatch.py CPUUtilization Average \"DBInstanceIdentifier=RDSName\" us-east-1 ACCESS_KEY SECRET_ACCESS_KEY"
print " GetFromCloudwatch.py ApproximateNumberOfMessagesVisible Average \"QueueName=SQSName\" us-east-1 ACCESS_KEY SECRET_ACCESS_KEY"
sys.exit(1)
dim = {}
firstSplit = dimSpace.split(',')
for word in firstSplit:
secondSplit = word.split('=')
dim[secondSplit[0]] = secondSplit[1]
regions = boto.ec2.cloudwatch.regions()
reg = ''
for r in regions:
if region == r.name:
reg = r
c = boto.ec2.cloudwatch.CloudWatchConnection(aws_access_key_id=accessKey, aws_secret_access_key=secretKey, region=reg)
metrics = c.list_metrics(dimensions=dim)
end = datetime.datetime.utcnow()
start = end - datetime.timedelta(minutes=15)
dataPoints = [];
for met in metrics:
if met.name == metName:
dataPoints = met.query(start, end, funcName)
if len(dataPoints) > 0:
max = datetime.datetime.utcnow() - datetime.timedelta(hours=1)
index = 0
for i in range(0,len(dataPoints)):
if max < dataPoints[i][u'Timestamp']:
max = dataPoints[i][u'Timestamp']
index = i
for key in dataPoints[index].keys():
if funcName in key:
value = dataPoints[index][key]
print value
else:
print 'Error! No response from Amazon.'
sys.exit(2) |
#!/usr/bin/python
import boto.ec2.cloudwatch
import sys
import datetime
try:
metName = sys.argv[1]
funcName = sys.argv[2]
dimSpace = sys.argv[3]
region = sys.argv[4]
accessKey = sys.argv[5]
secretKey = sys.argv[6]
except:
print "Usage: GetFromCloudwatch.py MetricName Function Dimension Region AWS_ACCESS_KEY AWS_SECRET_ACCESS_KEY"
print "Example: GetFromCloudwatch.py FreeableMemory Average \"CacheClusterId=ElsticCacheName\" us-east-1 ACCESS_KEY SECRET_ACCESS_KEY"
print " GetFromCloudwatch.py CPUUtilization Average \"DBInstanceIdentifier=RDSName\" us-east-1 ACCESS_KEY SECRET_ACCESS_KEY"
print " GetFromCloudwatch.py ApproximateNumberOfMessagesVisible Average \"QueueName=SQSName\" us-east-1 ACCESS_KEY SECRET_ACCESS_KEY"
sys.exit(1)
dim = {}
firstSplit = dimSpace.split(',')
for word in firstSplit:
secondSplit = word.split('=')
dim[secondSplit[0]] = secondSplit[1]
regions = boto.ec2.cloudwatch.regions()
reg = ''
for r in regions:
if region == r.name:
reg = r
c = boto.ec2.cloudwatch.CloudWatchConnection(aws_access_key_id=accessKey, aws_secret_access_key=secretKey, region=reg)
metrics = c.list_metrics(dimensions=dim)
end = datetime.datetime.utcnow()
start = end - datetime.timedelta(minutes=15)
dataPoints = [];
for met in metrics:
if met.name == metName:
dataPoints = met.query(start, end, funcName)
if len(dataPoints) > 0:
max = datetime.datetime.utcnow() - datetime.timedelta(hours=1)
index = 0
for i in range(0,len(dataPoints)):
if max < dataPoints[i][u'Timestamp']:
max = dataPoints[i][u'Timestamp']
index = i
for key in dataPoints[index].keys():
if funcName in key:
value = dataPoints[index][key]
print value
else:
print 'Error! No response from Amazon.'
sys.exit(2)
Related Posts