Search code examples
amazon-web-servicesmonitoringamazon-cloudwatchnagios

Send weekly performance metric(CPU,Memory,I/O,Network) reports for AWS resources(ec2, RDS)


I need to send weekly emails to my team for the complete performance metrics dashboard snapshot which includes CPU, Memory, I/O, Network graphs for the production server in AWS EC2,RDS database for the last week.

I prefer to use AWS CloudWatch Custom dashboard. However, i am not able to send automatic emails for Custom Dashboards on weekly basis.

Should i use AWS Cloud Watch or some other monitoring tool to achieve this task.

I have created AWS cloudwatch alerts but will only trigger email, if certain threshold reaches which will not serve my purpose as i need complete dashboard to be emailed to my team which includes CPU, Memory, Network for Web server, RDS..etc etc in the same email.

I created custom dashboard in Cloudwatch which displays graphs for Ec2 and RDS (CPU, Memory, Network..etc). Is there a way to send Custom Dashboards in email

Expected Results: Setup a email notification ever week that send complete performance metric dashboard to my team members


Solution

  • I think no way to take snap and send the metrics in AWS.

    This may help you...

    If you need AWS CloudWatch console UI snapshot, Create Automation Script and configure it.

    Way1:

    1. Write automation script to get Statistics by using below awscli and get metrics by changing "--metric-name", "--start-time" and "--end-time".
    2. Include sending mail in the script using this link
    3. Configure CRON job and configure the script by running weekly basis.
    aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization \
    --dimensions Name=InstanceId,Value=i-1234567890abcdef0 --statistics Maximum \
    --start-time 2016-10-18T23:18:00 --end-time 2016-10-19T23:18:00 --period 360
    

    Way 2:

    1. create UI automation script to take snap using Selenium driver

    Use this link for Console login and this link for Taking screenshot.

    1. Configure UI automation script in JOB1 and enable "Poll SCM" for daily run basis.
    2. Create Jenkins JOB2 and enable "Poll SCM" for Weekly basis and add automation script as downstream project