Ref: https://learn.cantrill.io/courses/1820301/lectures/41301628
DEMO: https://learn.cantrill.io/courses/1820301/lectures/41301629
Amazon CloudWatch - Components and Architecture
- 🔧 Collects & manages operational data → provides operational management & monitoring
- Operation data includes service performance, metrics, logs…
- Core support service used by almost all other AWS services
- Public service

- Three main components:
- CW Metrics = "CW itself” (”Vanilla” CW)
- e.g. CPU utilization of EC2 instance over time, disk usage on an on-premises server…
- Can ingest metrics from AWS products, apps, or on-premises infrastructure
- Some metrics are gathered natively by AWS products
- Configuration of a CW Agent is needed for:
- Collecting metrics inside AWS that are not gathered natively
- e.g. internal processes in an EC2 instance
- Collecting metrics outside of AWS
- 💡 Lots of metrics, must be kept divided
- CW Logs
- Can ingest logs from AWS products, apps, or on-premises infrastructure
- Some logs generated natively by AWS products, other products need CW Agent
- CW Alarms
- Trigger notifications (send to Amazon SNS) or events based on observed metrics
- e.g. ring an alarm and send SMS when CPU usage of my EC2 instance surpasses 90%
- 💡 The simple Billing Alarm we set before was set with CW → send a notification (email) when billing surpasses a budget
- ❗ NOTE: There used to be also
CW Events, but its functionality is nowadays provided by Amazon EventBridge
Amazon CloudWatch - Key Concepts

- Datapoint = Timestamp + Value (Pair)
- e.g. CPU usage is 6.7% at 10:32:67 on 2026-06-27
- Metric = Sequence of datapoints ordered in time = Time-ordered set of datapoints
- e.g. CPU usage/utilization, NW I/O, Disk I/O… (in a given time frame)
- ‼️ NOT necessarily related to a single server!
- e.g. CPU usage will be displaying by default the usage across all EC2 instances! Must specify otherwise if you want to limit to one instance!
- Namespace = Name container for monitoring data, contains name-related metrics
- 💡 Keeps things from getting messy
- Can have any rule-complying name
- e.g.
AWS/ ← namespace where all AWS data goes to
- e.g.
AWS/EC2 ← namespace where all EC2 data goes to
- Dimensions = Criteria that separate datapoints of same metric into different perspectives
- e.g. Inside
AWS/EC2 namespace, separate into dimensions: Instance A, Instance B…
- Powerful & Flexible
- Alarms take actions based on a specific metric reaching specified values/thresholds
- e.g. Send a notification when budget has been exceeded (billing alarm)
- States:
INSUFFICIENT DATA (initial state), OK, or ALARM
- alarm uses Amazon SNS (Simple Notification System) when the state is
ALARM
- Configurations to consider: period, evaluation period, datapoints to alarm