Skip to content

Instantly share code, notes, and snippets.

@knakayama
Created July 13, 2016 07:40
Show Gist options
  • Save knakayama/8815a6d77188fb73e39a3bf65b6b55f9 to your computer and use it in GitHub Desktop.
Save knakayama/8815a6d77188fb73e39a3bf65b6b55f9 to your computer and use it in GitHub Desktop.
from __future__ import print_function
import os
import boto3
import pprint
import logging
import datetime
SPOT_FLEET_REQUEST_ID = os.environ['SpotFleetRequestId']
SNS_TOPIC_ARN = os.environ['SnsTopicArn']
QUEUE_URL = os.environ['QueueUrl']
QUEUE_NAME = os.environ['QueueName']
logger = logging.getLogger()
logger.setLevel(logging.INFO)
pp = pprint.PrettyPrinter(indent=4)
def handle(event, context):
ec2_client = boto3.client('ec2')
cloudwatch_client = boto3.client('cloudwatch', region_name='ap-northeast-1')
queue_metric = cloudwatch_client.get_metric_statistics(
Namespace='AWS/SQS',
MetricName='ApproximateNumberOfMessagesVisible',
Dimensions=[
{
'Name': 'QueueName',
'Value': QUEUE_NAME
}
],
StartTime=datetime.datetime.now() - datetime.timedelta(minutes=60),
EndTime=datetime.datetime.now(),
Period=300,
Statistics=['Average'])
avg = 0
for datapoint in queue_metric['Datapoints']:
avg += datapoint['Average']
else:
message_num = avg / len(queue_metric['Datapoints'])
pp.pprint(queue_metric)
logger.info(message_num)
#resp = client.modify_spot_fleet_request(
# SpotFleetRequestId=SPOT_FLEET_REQUEST_ID,
# TargetCapacity=3
# )
#logger.info(resp)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment