CloudWatch Logs and Metrics
Utilize Amazon CloudWatch to collect, monitor, and analyze logs and performance metrics from your Lambda functions and other AWS services.
CloudWatch Logs and Metrics is a free Serverless AWS Lambda Development lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Serverless AWS Lambda Development learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Your Serverless Watchdog: CloudWatch
Welcome! In this lesson, we'll dive into Amazon CloudWatch, AWS's powerful monitoring and observability service. It's your eyes and ears for understanding what's happening with your AWS resources and applications.
For serverless applications built with AWS Lambda, CloudWatch is absolutely essential to ensure everything runs smoothly.
Why Monitoring Matters for Lambda
Lambda functions execute quickly and often, sometimes hundreds or thousands of times per second. Without proper visibility, it's incredibly hard to know if they're working correctly or encountering issues.
CloudWatch helps you:
- Monitor function health and performance.
- Debug errors efficiently when things go wrong.
- Optimize resource usage and control costs.
Diving into CloudWatch Logs
The first key component is CloudWatch Logs. This is where all your Lambda function's text-based output, runtime messages, and errors are stored. Think of it as a centralized place for all your application's 'print statements' and system messages.
Every time your Lambda function runs, it generates logs. These logs are automatically sent to CloudWatch Logs.
Lambda's Automatic Logging
The great news is you don't need to configure anything special for basic logging. When your Lambda function executes, anything printed to standard output (like console.log in Node.js or print() in Python) is automatically captured.
These captured messages, along with execution details (like start/end times and billing info), are then pushed to CloudWatch Logs without any extra setup from you.
Organizing Your Logs: Groups & Streams
CloudWatch Logs organizes logs into two main concepts:
- Log Group: A container for log streams that share the same retention, monitoring, and access control settings. Each Lambda function typically gets its own Log Group (e.g.,
/aws/lambda/your-function-name). - Log Stream: A sequence of log events from a single source. Each invocation or concurrent execution of your Lambda function typically creates a new log stream within its log group.
Adding Logs in Your Lambda Code
You can add custom log messages to your Lambda function code. This helps you trace execution flow, understand data, and debug issues. Here's a simple Python example using the standard logging module:
import json
import logging
# Configure logging for the Lambda function
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
logger.info("Lambda function started processing event.")
logger.info(f"Received event: {json.dumps(event)}")
message = "Hello from CoddyKit Lambda!"
logger.info(f"Preparing response: {message}")
return {
'statusCode': 200,
'body': json.dumps(message)
}
# Example of how you might test this locally
if __name__ == "__main__":
# Simulate a simple event object
test_event = {"action": "greet", "name": "Learner"}
# The 'context' object is usually provided by Lambda, we can mock it or pass None for basic tests.
result = lambda_handler(test_event, None)
print("--- Lambda Handler Output (Local Test) ---")
print(result)Introducing CloudWatch Metrics
While logs tell you what happened in detail, CloudWatch Metrics tell you how well your functions are performing. Metrics are time-ordered sets of numerical data points that represent a specific measurement.
AWS automatically collects metrics for your Lambda functions, giving you high-level insights into their operational health and performance trends.
Essential Lambda Performance Metrics
Some crucial metrics that CloudWatch automatically collects for your Lambda functions include:
- Invocations: The total number of times your function was triggered.
- Errors: The number of times your function failed during execution.
- Duration: The execution time of your function, measured in milliseconds.
- Throttles: The number of times your function invocations were limited due to concurrency limits.
Monitoring these helps you quickly identify performance bottlenecks or potential issues.
Visualizing Metrics in the Console
You can view these performance metrics as interactive graphs in the CloudWatch console. Simply navigate to the 'Metrics' section, then select 'Lambda', and choose the desired metric for your specific function.
This visual representation makes it easy to spot trends, sudden spikes, or drops in performance, allowing you to react quickly to operational changes and optimize your functions.
Quick Check: Logs vs. Metrics
Let's test your understanding of CloudWatch Logs and Metrics for AWS Lambda.
Recap: CloudWatch for Serverless Insight
We've explored how Amazon CloudWatch is your go-to service for monitoring AWS Lambda functions. You learned about:
- CloudWatch Logs: For collecting, storing, and analyzing detailed runtime messages and custom outputs from your functions.
- CloudWatch Metrics: For tracking key performance indicators like invocations, errors, duration, and throttles.
Together, logs and metrics provide a comprehensive picture of your serverless application's health and performance, empowering you to debug and optimize effectively.
Frequently asked questions
Is the “CloudWatch Logs and Metrics” lesson free?
Yes — the full text of “CloudWatch Logs and Metrics” is free to read here on the web, and the Serverless AWS Lambda Development course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Serverless AWS Lambda Development course, upgrade to CoddyKit PRO.
What will I learn in “CloudWatch Logs and Metrics”?
Utilize Amazon CloudWatch to collect, monitor, and analyze logs and performance metrics from your Lambda functions and other AWS services. You practise Serverless AWS Lambda Development with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Serverless AWS Lambda Development?
No prior experience is required. Serverless AWS Lambda Development on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “CloudWatch Logs and Metrics” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Serverless AWS Lambda Development lesson?
Yes. Every Serverless AWS Lambda Development lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- CloudWatch Logs and Metrics
- Error Handling and Retries
- Debugging Serverless Applications
- Custom Metrics and CloudWatch Alarms