Amazon CloudWatch is the component of Amazon Web Services that provides real-time monitoring of AWS resources and customer applications running on Amazon infrastructure.
Amazon CloudWatch is a monitoring and management service that provides data and actionable insights for AWS, hybrid, and on-premises applications and infrastructure resources. With CloudWatch, you can collect and access all your performance and operational data in form of logs and metrics from a single platform.
Amazon CloudWatch is one of the most used services offered by Amazon. It lets users keep track of what’s going on in their AWS Architecture. In this blog on Amazon CloudWatch, you will learn about CloudWatch in depth.
AWS provides a handy way for monitoring AWS resources and applications running on AWS in the form of AWS CloudWatch management service.
Amazon CloudWatch is AWS monitoring and management service which is designed for the purpose of maintaining the services and resources which are used. Particularly, this is designed for developers, site reliability engineers, IT managers, and system operators to make their life easier.
Amazon CloudWatch is free for 10 custom metrics and Alarms. 10 custom metrics and 10 Alarms are free for a lifetime and exceeding that will add charges.
1,000,000 API requests, 5GB of Log Data ingestion and Archiving is free and also you can set up 3 dashboards with upto 50 metrics in one dashboard each month.
Amazon CloudWatch has system-wide visibility into your AWS resources and applications. It will monitor your resource files and generate key metrics based on your application’s log files. Key metrics include CPU usage, CPU latency, Network traffic, Disk storage etc. Based on these metrics it provides a real-time summary of system activity and individual resources.
CloudWatch also provides a comprehensive at-a-glance view of AWS infrastructure to keep track of application performance, spot trends and troubleshoot operational issues. In addition, Amazon CloudWatch configures high-resolution alarms and sends real-time notifications in case of sudden operational changes in AWS environment.
Amazon CloudWatch allows developers, system architects, and administrators to monitor their AWS applications in the cloud, in near-real-time. CloudWatch is automatically configured to provide metrics on request counts, latency, and CPU usage. Users also can send their own logs and custom metrics to CloudWatch for monitoring.
The data and reports CloudWatch provides lets users keep track of application performance, resource use, operational issues, and constraints. This helps organizations resolve technical issues and streamline operations.
CloudWatch is most commonly used with Elastic Compute Cloud (EC2) instances, and can also monitor Amazon Elastic Block Store (EBS) volumes, Elastic Load Balancers (ELBs), and instances of Amazon Relational Database Service (RDS). It also can extend beyond these core services to intake custom data from external sources.
Users choose CloudWatch for its automatic integration with AWS services, its flexibility, and its ability to scale quickly.
How AWS CloudWatch Works?
CloudWatch performs 4 actions normally, first it collects log and metric data, then monitors the applications, then Acts according to the instructions, finally analyzes the collected log and metric data for further usage.
You can mention the service in CloudWatch and it starts collecting it’s raw log and metrics data. Even while collection it keeps on monitoring and updates the data. While AWS monitoring, if any issues are found, it will act and try to troubleshoot it. With all the collected log and metric data, it will analyze and produce visualized content for better understanding and further usage.
Amazon CloudWatch Concepts:
Metrics represents a time-ordered set of data points that are published to CloudWatch
You can relate metric to a variable that is being monitored and data points to the value of that variable over time
Metrics are uniquely defined by a name, a namespace, and zero or more dimensions
Each data point has a time-stamp.
A dimension is a name/value pair that uniquely identifies a metric.
Dimensions can be considered as categories of characteristics that describe a metric.
Because dimensions are unique identifiers for a metric, whenever you add a unique name/value pair to one of your metrics, you are creating a new variation of that metric.
Statistics are metric data aggregations over specified periods of time.
Aggregations are made using the namespace, metric name, dimensions within the time period you specify.
Few available statistics are maximum, minimum, sum, average and sample count.
An alarm can be used to automatically initiate actions on your behalf.
It watches a single metric over a specified time period and performs one or more specified actions.
The action is a simply a notification that is sent to Amazon SNS topic.
Amazon CloudWatch Alarms:
CloudWatch Alarms are used to monitor only metric data. You can set alarms in order to take actions by providing a condition in the metric data of a resource. CPU Utilization and Bytes Download are metric data of EC2 and SNS specifically.
There are 3 Amazon CloudWatch Alarm states:
OK – Within Threshold.
ALARM – Crossed Threshold.
INSUFFICIENT_DATA – Metric not available/ Missing data (Good, Bad, Ignore, Missing).
Advantages of Amazon CloudWatch:
- One dashboard, Access all data
- The web applications produce a lot data as they are highly distributed, to access all the data which have been collected you just need a single CloudWatch dashboard.
- Visibility on the complete Infrastructure
- You can see through all the AWS resources and services you use, so you can correlate and contradict data produced from multiple services.
- Improve total cost of ownership
- CloudWatch can be used to set high resolution alarms and can take automated actions while there is an breach in the limits provided. This can help in minimize the costs spent on AWS services
- Insights from logs
- You receive detailed insights on separate AWS services and the applications you run on the infrastructure. Data like memory, CPU utilization, and capacity utilization can be monitored and receive insights from it
- Optimize Applications and resources
- Using the log and metric data, you can optimize your AWS services to provide maximum throughput and performance.
AWS CloudWatch Benefits:
- Observability on a single platform across applications and infrastructure.
- Easiest way to collect metrics in AWS and on-premises
- Improve operational performance and resource optimization
- Get operational visibility and insight
- Derive actionable insights from logs
What is Amazon CloudWatch Logs?
Amazon CloudWatch Logs lets you monitor and troubleshoot your systems and applications using your existing system, application and custom log files.
With CloudWatch Logs, you can monitor your logs, in near real time, for specific phrases, values or patterns. For example, you could set an alarm on the number of errors that occur in your system logs or view graphs of latency of web requests from your application logs. You can then view the original log data to see the source of the problem. Log data can be stored and accessed indefinitely in highly durable, low-cost storage so you don’t have to worry about filling up hard drives.
What kinds of things can I do with CloudWatch Logs?
CloudWatch Logs is capable of monitoring and storing your logs to help you better understand and operate your systems and applications. You can use CloudWatch Logs in a number of ways.
Real time application and system monitoring: You can use CloudWatch Logs to monitor applications and systems using log data. For example, CloudWatch Logs can track the number of errors that occur in your application logs and send you a notification whenever the rate of errors exceeds a threshold you specify. CloudWatch Logs uses your log data for monitoring; so, no code changes are required.
Long term log retention: You can use CloudWatch Logs to store your log data indefinitely in highly durable and cost-effective storage without worrying about hard drives running out of space. The CloudWatch Logs Agent makes it easy to quickly move both rotated and non-rotated log files off of a host and into the log service. You can then access the raw log event data when you need it.