check_aws plugin
                    Overview
The check_aws plugin can be used to monitor AWS Services That Publish CloudWatch Metrics. It uses Boto3 for interacting with AWS CloudWatch, and the nagiosplugin library for working with the Nagios plugin format.
This plugin is available on GitHub: ITRS-Group/check_aws.
CLI usage
usage: check-aws.py [-h] -r
                    {af-south-1,ap-east-1,ap-northeast-1,ap-northeast-2,ap-northeast-3,ap-south-1,ap-southeast-1,ap-southeast-2,ca-central-1,eu-central-1,eu-north-1,eu-south-1,eu-west-1,eu-west-2,eu-west-3,me-south-1,sa-east-1,us-east-1,us-east-2,us-west-1,us-west-2}
                    [-u UNIT] -m METRIC -n NAMESPACE [-d [DIMENSIONS]]
                    [-p PROFILE]
                    [-s {Average,Sum,SampleCount,Maximum,Minimum}]
                    [-w WARNING] [-c CRITICAL] [-v] [-P [PERIOD]] [-D DELTA]
                    [-l LAG] [-C [CREDENTIALS_FILE]] [-f [CREDENTIALS_FILE]]
Plugin for monitoring AWS via CloudWatch
optional arguments:
  -h, --help            show this help message and exit
  -r {af-south-1,ap-east-1,ap-northeast-1,ap-northeast-2,ap-northeast-3,ap-south-1,ap-southeast-1,ap-southeast-2,ca-central-1,eu-central-1,eu-north-1,eu-south-1,eu-west-1,eu-west-2,eu-west-3,me-south-1,sa-east-1,us-east-1,us-east-2,us-west-1,us-west-2}, --region {af-south-1,ap-east-1,ap-northeast-1,ap-northeast-2,ap-northeast-3,ap-south-1,ap-southeast-1,ap-southeast-2,ca-central-1,eu-central-1,eu-north-1,eu-south-1,eu-west-1,eu-west-2,eu-west-3,me-south-1,sa-east-1,us-east-1,us-east-2,us-west-1,us-west-2}
                        AWS Region
  -u UNIT, --unit UNIT  Expected unit in the response
  -m METRIC, --metric METRIC
                        Metric name
  -n NAMESPACE, --namespace NAMESPACE
                        Service Namespace
  -d [DIMENSIONS], --dimensions [DIMENSIONS]
                        One or more Dimensions for selecting datapoints:
                        dimension=value[,dimension=value...]
  -p PROFILE, --profile PROFILE
                        Profile name from ~/.aws/credentials (default:
                        default)
  -s {Average,Sum,SampleCount,Maximum,Minimum}, --statistic {Average,Sum,SampleCount,Maximum,Minimum}
                        Statistic for evaluating metrics (default: Average)
  -w WARNING, --warning WARNING
                        Warning if threshold is outside range (default: 0)
  -c CRITICAL, --critical CRITICAL
                        Critical if threshold is outside range (default: 0)
  -v, --verbosity       Verbosity (use up to 3 times)
  -P [PERIOD], --period [PERIOD]
                        Period in seconds over which the statistic is applied
                        (default: 60)
  -D DELTA, --delta DELTA
                        Delta measurement in seconds
  -l LAG, --lag LAG     Delay in seconds to add to starting time (default: 0)
  -f [CREDENTIALS_FILE], --credentials_file [CREDENTIALS_FILE]
                        File containing AWS credentials
                                Credentials and authentication
By default, the check_aws plugin looks for credentials in ~/.aws/credentials. If you want to change this, use the --credentials_file command-line option.
Dimensions
Dimensions are name/value pairs that are part of the identity of a metric. You can specify one or more dimensions to the check_aws plugin CLI to select which metrics to monitor.
Usage examples
VPN availability
Example command to check the AWS/VPN tunnel availability:
$ ./check-aws.py --metric TunnelState --namespace AWS/VPN -r eu-west-1 -w @0 -c @0 -d TunnelIpAddress=1.2.3.4
                                    Free storage space
Example command to check the free storage space in AWS RDS:
$ ./check-aws.py --metric FreeStorageSpace --namespace AWS/RDS -r eu-west-1 -w @5000000000 -c @3000000000
                                    Credit usage
Example command to check the EC2 instance credit usage:
$ ./check-aws.py --metric CPUCreditUsage --namespace AWS/EC2 -r eu-west-1 -w 2 -c 3 -d InstanceId=i-0d7c12ec7asdf229
                                    CPU utilisation
Example command to check the EC2 instance CPU utilisation:
$ ./check-aws.py --metric CPUUtilization --namespace AWS/EC2 -r eu-west-1 -w 50 -c 70 -d InstanceId=i-0d7c44ec7eaad229
                                    ECS running tasks
Example command to check the ECS running task count:
$ ./check_aws.py -d ClusterName=my-ecs-cluster,ServiceName=my-ecs-service --metric RunningTaskCount --namespace ECS/ContainerInsights -w 1 -c 2