-
Notifications
You must be signed in to change notification settings - Fork 80
AWS Monitoring
Kirill Yakovenko edited this page Apr 14, 2017
·
1 revision
We use Сloudwatch for gathering all metrics in AWS. It's the official way at AWS platform and below you can find all important metrics of Omaha-Server which we recommend to track:
Metric | Description | Units | Critical Limit |
---|---|---|---|
CPUUtilization | The percentage of CPU utilization. | Percents | 90% |
DatabaseConnections | The number of database connections in use. | Count | Depends on instance type (please, see below) |
FreeableMemory | The amount of available random access memory. | Bytes | 90 percent of maximum. More information in Specifications for DB Instance Classes |
FreeStorageSpace | The amount of available storage space. | Bytes | 70-90 percents of maximum. |
If you reached a critical limit you should upgrade your current instances' class to higher one.
Max amount of connections to database for different RDS types:
t2.micro | 66 |
t2.small | 150 |
m3.medium | 296 |
t2.medium | 312 |
m3.large | 609 |
t2.large | 648 |
m4.large | 648 |
m3.xlarge | 1237 |
r3.large | 1258 |
m4.xlarge | 1320 |
m2.xlarge | 1412 |
m3.2xlarge | 2492 |
r3.xlarge | 2540 |
The most important metrics which we recommend to use:
Metric | Description | Units | Critical Limit |
---|---|---|---|
CPUUtilization | The percentage of CPU utilization. | Percents | 90% |
FreeableMemory | The amount of free memory available on the host. | Bytes | 80 percent of maximum. ElastiCache Instance Classes |
- Go to the Elastic Beanstalk service
- Choose an application
- Open the Monitoring tab
- Click on the Edit button, if you need additional metrics
The most important metrics:
Resource | Metric | Description | Units |
---|---|---|---|
AWSEBAutoScalingGroup | CPUUtilization | The percentage of allocated EC2 compute units that are currently in use on the instance. | Percent |
AWSEBAutoScalingGroup | NetworkIn | The number of bytes received on all network interfaces | Bytes |
AWSEBAutoScalingGroup | NetworkOut | The number of bytes sent out on all network interfaces | Bytes |
AWSEBAutoScalingGroup | DiskReadBytes | Bytes read from all instance store volumes available to the instance | Bytes |
AWSEBAutoScalingGroup | DiskWriteBytes | Bytes written to all instance store volumes available to the instance. | Bytes |
AWSEBLoadBalancer | Latency | The time elapsed, after the request leaves the load balancer until the headers of the response are received. | Seconds |
AWSEBLoadBalancer | HealthyHostCount | The number of targets that are considered healthy. | Hosts |
AWSEBLoadBalancer | RequestCount | The number of requests received by the load balancer. | Requests |
3.1 Elastic Beanstalk allows you to configure autoscaling which based on metrics. Follow the next steps:
- Choose an Elastic Beanstalk application
- Click on the Configuration tab
- Go to the scaling section(Click on the gear button)
- Configure a scaling trigger.
Finding the number of tasks in a queue:
$ redis-cli -h HOST -p PORT -n DATABASE_NUMBER llen QUEUE_NAME
The default queue is named celery. To get all available queues, invoke:
$ redis-cli -h HOST -p PORT -n DATABASE_NUMBER keys \*
Note! The commands should be executed from an EC2 instance which has access to your Redis node.