AWS CloudWatch is a monitoring solution that’s provided by Amazon Web Services. It’s really a big service that contains a large collection of monitoring tools.
All of the below services build off of CloudWatch Logs:
- Container Insights
- Contributor Insights
Alarms trigger notifications based on metrics when your designated threshold has been breached. For example, after 5 500 errors occur in an AWS Lambda you could trigger a SNS message that gets sent to mobile phones.
When you are running containerized apps or microservices, you really need to log the data somewhere. Container Insights is a pretty good service for collecting and aggregating metrics and logs.
I’m not all that familiar with this service. Contributor Insights allows you to understand what is impacting systems and performance by finding heavy traffic patterns.
The dashboards allows you to create visualizations off of the various metrics that CloudWatch is logging. For example, database consumption or concurrent lambda requests.
Events / EventBridge
Basically when certain events occur things can be done within AWS. For example, you might have a lambda spin up and do some processing.
Any of your custom logs, or things like Memory Usage, Nginx Logs, etc. I like to push log data from EC2 Instances to the CloudWatch logs because it allows me to better search and analyze data. It also means my EC2 instances should be 100% stateless.
Any logs from AWS Lambda end up here.
Metrics are usually based off of the CloudWatch logs, it can be things like Memory Usage, CPU usage, etc.
ServiceLens is a newer service that allows you to better monitor and troublesheet issues with microservice based applications. It does this by unifying all of the metrics and logs allowing us to monitor performance end to end.
Basically, it’s Xray and CloudWatch together.
Synthetics allows us to write tests for our API and be able to monitor them in CloudWatch. Synthetics runs the tests every minute.