📖 Scenario: You are managing a web application hosted on AWS. You want to monitor its performance using AWS CloudWatch metrics. AWS provides default metrics automatically, but you also want to create a custom metric to track the number of user sign-ups per hour.
🎯 Goal: Build an AWS CloudWatch setup that includes both default metrics for an EC2 instance and a custom metric for user sign-ups.
📋 What You'll Learn
Create a CloudWatch metric namespace called MyAppMetrics
Use the default CPU utilization metric for an EC2 instance
Create a custom metric called UserSignUps under the MyAppMetrics namespace
Set the custom metric value to 5 sign-ups
💡 Why This Matters
🌍 Real World
Monitoring cloud resources with both default and custom metrics helps keep applications healthy and responsive.
💼 Career
Cloud engineers and DevOps professionals often create and manage custom metrics alongside default ones to get detailed insights.
Progress0 / 4 steps
1
Create a CloudWatch metric namespace and default metric reference
Create a variable called namespace and set it to the string 'MyAppMetrics'. Then create a variable called default_metric and set it to the string 'CPUUtilization' which represents the default EC2 CPU metric.
AWS
Hint
Use simple string assignments for namespace and default_metric.
2
Define the custom metric name and value
Create a variable called custom_metric_name and set it to the string 'UserSignUps'. Then create a variable called custom_metric_value and set it to the integer 5 representing the number of sign-ups.
AWS
Hint
Assign the exact string and integer values to the variables.
3
Create a dictionary representing the custom metric data
Create a dictionary called custom_metric_data with keys 'Namespace', 'MetricName', and 'Value'. Set their values to the variables namespace, custom_metric_name, and custom_metric_value respectively.
AWS
Hint
Use a dictionary with the exact keys and assign the variables as values.
4
Add the default metric to a list with the custom metric data
Create a list called metrics_to_monitor that contains two items: the string default_metric and the dictionary custom_metric_data.
AWS
Hint
Create a list with the exact two items in order.
Practice
(1/5)
1. Which statement best describes AWS default metrics in CloudWatch?
easy
A. They are automatically collected and free within certain limits.
B. They require manual setup and extra charges.
C. They only track custom application data.
D. They are disabled by default and need activation.
Solution
Step 1: Understand default metrics collection
AWS CloudWatch automatically collects default metrics for many services without extra setup.
Step 2: Recognize cost and availability
These default metrics are free within certain usage limits, making them easy to use.
Final Answer:
They are automatically collected and free within certain limits. -> Option A
Quick Check:
Default metrics = automatic + free [OK]
Hint: Default metrics are automatic and free within limits [OK]
Common Mistakes:
Thinking default metrics need manual setup
Assuming default metrics track custom data
Believing default metrics are disabled by default
2. Which of the following is the correct way to send a custom metric to AWS CloudWatch using the AWS CLI?
easy
A. aws cloudwatch send-metric --name CPUUtilization --value 70
B. aws cloudwatch add-metric-data --metric-name CPUUtilization --value 70
C. aws cloudwatch create-metric --metric CPUUtilization --value 70
D. aws cloudwatch put-metric-data --metric-name CPUUtilization --namespace AWS/EC2 --value 70
Solution
Step 1: Identify the correct AWS CLI command
The correct command to send custom metric data is put-metric-data under aws cloudwatch.
Step 2: Check the syntax and parameters
The command requires --metric-name, --namespace, and --value parameters as shown in aws cloudwatch put-metric-data --metric-name CPUUtilization --namespace AWS/EC2 --value 70.
What will be the average value shown in CloudWatch after 3 minutes if the command is run 3 times with values 5, 7, and 8 respectively?
medium
A. 6.67
B. 7
C. 20
D. 5
Solution
Step 1: Sum the metric values sent
The values sent are 5, 7, and 8. Their sum is 5 + 7 + 8 = 20.
Step 2: Calculate the average over 3 data points
Average = Total sum / Number of data points = 20 / 3 ≈ 6.67.
Final Answer:
6.67 -> Option A
Quick Check:
Average = sum/3 = 6.67 [OK]
Hint: Average = sum of values divided by count [OK]
Common Mistakes:
Adding values but not dividing by count
Taking the last value as average
Multiplying values instead of averaging
4. You tried to send a custom metric to CloudWatch but it does not appear in the console. Which of the following is the most likely cause?
medium
A. CloudWatch only shows metrics after 24 hours delay.
B. You forgot to specify the metric namespace in the command.
C. Custom metrics are automatically visible without sending data.
D. Default metrics do not require namespaces, so this is normal.
Solution
Step 1: Check required parameters for custom metrics
Custom metrics require a namespace to organize and display them properly in CloudWatch.
Step 2: Understand impact of missing namespace
If the namespace is missing, CloudWatch cannot categorize the metric, so it won't appear in the console.
Final Answer:
You forgot to specify the metric namespace in the command. -> Option B
Quick Check:
Missing namespace hides custom metric [OK]
Hint: Always specify namespace when sending custom metrics [OK]
Common Mistakes:
Assuming default metrics need namespaces
Expecting immediate visibility without data sent
Believing CloudWatch delays metric display by 24 hours
5. You want to monitor a custom application metric that tracks the number of user logins per hour. The default AWS metrics do not provide this data. What is the best approach to achieve this?
hard
A. Enable detailed monitoring on EC2 instances to get user login data.
B. Use the default CPUUtilization metric to estimate user logins.
C. Send custom metric data for user logins to CloudWatch using a unique namespace and metric name.
D. Create an alarm on default network metrics to infer user logins.
Solution
Step 1: Identify the need for custom data
User logins per hour is specific to the application and not tracked by default AWS metrics.
Step 2: Use custom metrics for application-specific data
Sending custom metric data with a unique namespace and metric name allows tracking exactly this information in CloudWatch.
Final Answer:
Send custom metric data for user logins to CloudWatch using a unique namespace and metric name. -> Option C
Quick Check:
Custom metrics track app-specific data [OK]
Hint: Use custom metrics for app-specific tracking [OK]
Common Mistakes:
Trying to use unrelated default metrics for app data