📖 Scenario: You are managing a simple web application hosted on AWS. You want to monitor the CPU usage of your application servers to ensure they are running smoothly and to detect any performance issues early.
🎯 Goal: Create a CloudWatch metric setup that tracks CPU utilization for your application servers. You will define the metric data, configure a threshold for high CPU usage, apply the monitoring logic, and complete the CloudWatch alarm configuration.
📋 What You'll Learn
Create a CloudWatch metric data dictionary with exact keys and values
Add a threshold variable for CPU utilization
Write a function to check if CPU usage exceeds the threshold
Complete the CloudWatch alarm configuration with the correct metric and threshold
💡 Why This Matters
🌍 Real World
Monitoring server CPU usage helps keep applications running smoothly and prevents downtime by alerting when resources are overused.
💼 Career
Cloud engineers and DevOps professionals use CloudWatch metrics and alarms to maintain healthy cloud infrastructure and respond quickly to issues.
Progress0 / 4 steps
1
Create CloudWatch metric data dictionary
Create a dictionary called cpu_metric with these exact entries: 'Namespace': 'AWS/EC2', 'MetricName': 'CPUUtilization', 'Dimensions': [{'Name': 'InstanceId', 'Value': 'i-1234567890abcdef0'}], and 'Unit': 'Percent'.
AWS
Hint
Think of cpu_metric as a label that describes what you want to measure in AWS CloudWatch.
2
Add CPU utilization threshold
Create a variable called cpu_threshold and set it to the integer 80 to represent 80% CPU usage as the alert threshold.
AWS
Hint
This threshold will help you decide when CPU usage is too high.
3
Write function to check CPU usage against threshold
Write a function called is_cpu_high that takes a parameter cpu_usage and returns True if cpu_usage is greater than cpu_threshold, otherwise returns False.
AWS
Hint
This function helps you decide if the CPU usage is above the limit you set.
4
Complete CloudWatch alarm configuration
Create a dictionary called cpu_alarm with these exact entries: 'AlarmName': 'HighCPUUsage', 'MetricName': cpu_metric['MetricName'], 'Namespace': cpu_metric['Namespace'], 'Dimensions': cpu_metric['Dimensions'], 'Threshold': cpu_threshold, 'ComparisonOperator': 'GreaterThanThreshold', and 'EvaluationPeriods': 1.
AWS
Hint
This dictionary represents the alarm that will notify you when CPU usage is too high.
Practice
(1/5)
1. What is the primary purpose of AWS CloudWatch metrics?
easy
A. To create virtual machines
B. To store files and documents securely
C. To monitor and track the performance of cloud resources
D. To manage user permissions
Solution
Step 1: Understand CloudWatch metrics role
CloudWatch metrics collect data points about cloud resources like CPU usage or network traffic.
Step 2: Identify the main use
This data helps monitor and keep cloud resources healthy and efficient.
Final Answer:
To monitor and track the performance of cloud resources -> Option C
Quick Check:
CloudWatch metrics = Monitor resources [OK]
Hint: CloudWatch metrics = numbers about resource health [OK]
Common Mistakes:
Confusing metrics with storage services
Thinking metrics create resources
Mixing metrics with user management
2. Which of the following is the correct way to specify a metric namespace in AWS CloudWatch?
easy
A. Namespace: AWS/EC2
B. Namespace = AWS-EC2
C. Namespace -> AWS.EC2
D. Namespace is AWS_EC2
Solution
Step 1: Recall CloudWatch namespace format
Namespaces use a string format with a slash, like AWS/EC2, to group metrics.
Step 2: Check each option format
Only 'Namespace: AWS/EC2' uses the correct slash format without invalid characters.
Final Answer:
Namespace: AWS/EC2 -> Option A
Quick Check:
Namespace uses slash (/) format [OK]
Hint: Namespace uses slash (/) format, not dash or underscore [OK]
Common Mistakes:
Using dash or underscore instead of slash
Using equal sign instead of colon
Using arrow notation incorrectly
3. Given the following CloudWatch metric data points for CPU utilization: [10, 20, 30, 40, 50], what is the average CPU utilization reported?
medium
A. 10
B. 25
C. 50
D. 30
Solution
Step 1: Sum all CPU utilization values
10 + 20 + 30 + 40 + 50 = 150
Step 2: Calculate average by dividing sum by count
150 / 5 = 30
Final Answer:
30 -> Option D
Quick Check:
Average = Sum / Count = 30 [OK]
Hint: Average = add all values, divide by number of values [OK]
Common Mistakes:
Adding incorrectly
Dividing by wrong count
Picking max or min instead of average
4. You set a CloudWatch alarm to trigger when CPU utilization exceeds 70%, but it never triggers even when CPU is 80%. What is a likely cause?
medium
A. The metric period is too long, smoothing out spikes
B. The alarm threshold is set incorrectly below 70%
C. The alarm action is missing
D. The CPU utilization metric is disabled
Solution
Step 1: Understand alarm threshold and metric period
The alarm triggers if average CPU exceeds 70% during the period.
Step 2: Identify effect of long metric period
A long period averages out spikes, so short CPU spikes above 70% may not trigger alarm.
Final Answer:
The metric period is too long, smoothing out spikes -> Option A
Quick Check:
Long period averages hide spikes [OK]
Hint: Long metric periods smooth spikes, prevent alarms [OK]
Common Mistakes:
Assuming threshold is set below 70%
Ignoring missing alarm actions
Thinking metrics can be disabled
5. You want to monitor the average latency of your web application every 5 minutes using CloudWatch. Which combination of settings is best to achieve this?
hard
A. Set metric period to 60 seconds and statistic to Sum
B. Set metric period to 300 seconds and statistic to Average
C. Set metric period to 300 seconds and statistic to Maximum
D. Set metric period to 60 seconds and statistic to Minimum
Solution
Step 1: Understand metric period and statistic
Period defines how often data is collected; statistic defines how data is summarized.
Step 2: Match requirements to settings
To monitor average latency every 5 minutes, use 300 seconds period and Average statistic.
Final Answer:
Set metric period to 300 seconds and statistic to Average -> Option B
Quick Check:
5 min period + Average = correct monitoring [OK]
Hint: Use 300s period and Average for 5-minute average latency [OK]
Common Mistakes:
Using Sum or Maximum instead of Average
Using 60s period for 5-minute average
Confusing Minimum with latency monitoring
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.