Monitor RDS databases with CloudWatch metrics, alarms, Performance Insights, and SNS
Michael Wittig – 15 Jan 2018 (updated 17 Aug 2021)
The database is a critical component of each system that needs monitoring. Amazon RDS provides PostgreSQL, MySQL, MariaDB, Oracle, and Microsoft SQL Server as a Service. Monitoring an RDS database instance touches multiple parts of AWS. In this post, you learn how to monitor RDS databases.
CloudWatch metrics
Each database sends metrics to CloudWatch that we can monitor with CloudWatch alarms. We recommend creating alarms for the following metrics:
BurstBalance
: The percent of General Purpose SSD (gp2) burst-bucket I/O credits available.DiskQueueDepth
: The number of outstanding I/Os (read/write requests) waiting to access the disk.FreeStorageSpace
: The amount of available storage space in bytes.CPUUtilization
: The percentage of CPU used by the databaseCPUCreditBalance
: The number of CPU credits left (only applies to db.t* instance types).FreeableMemory
: The amount of available random access memory in bytes.SwapUsage
: The amount of swap space used in bytes.
Performance Insights
Performance Insights provides additional insights into running RDS databases. We recommend creating alarms for the following metrics:
DBLoad
: The number of active sessions for the DB engine.
Events via SNS
Besides metrics, RDS sends out events if the state of the database instance has changed. E.g., because of a Multi-AZ failover.
We recommend subscribing to events of the following categories:
failover
failure
low storage
maintenance
notification
recovery
Set up instructions
Monitoring Assistant
Monitor RDS and receive alerts in Slack or Microsoft Teams!It couldn't be easier!
- Add marbot to Slack or Microsoft Teams.
- Invite marbot to a channel.
- Follow the setup wizard.
Take your AWS monitoring to a new level! Chatbot for AWS Monitoring: Configure monitoring, escalate alerts, solve incidents.