CloudWatch Metrics là gì?
CloudWatch Metrics là các số liệu (Time-Series data) mô tả trạng thái và hiệu năng của tài nguyên hoặc ứng dụng trong AWS. Mỗi metric bao gồm:
- Namespace: Không gian tên nhóm các metrics (ví dụ: AWS/EC2, AWS/Lambda).
- Metric Name: Tên metric (ví dụ:
CPUUtilization). - Dimensions: Cặp key-value để định danh metric (ví dụ:
InstanceId=i-1234567890). - Datapoints: Giá trị được thu thập tại thời điểm cụ thể (ví dụ: CPU = 35% lúc 12:00:00 UTC).
Nguồn dữ liệu của Metrics
- AWS Services (EC2, RDS, Lambda, S3, DynamoDB, v.v.)
- Mỗi dịch vụ tự động đẩy metrics mặc định lên CloudWatch.
- Ví dụ: EC2 cung cấp
CPUUtilization,NetworkIn,NetworkOut.
- Custom Metrics
- Người dùng có thể đẩy dữ liệu riêng bằng PutMetricData API.
- Ứng dụng: Theo dõi số lượng request trong hàng đợi, thời gian phản hồi ứng dụng.
- Ví dụ:
Số user đăng ký mới mỗi giờ.
Resolution (Độ phân giải)
Resolution là khoảng thời gian nhỏ nhất giữa hai datapoint mà CloudWatch lưu trữ. CloudWatch hỗ trợ 2 mức độ phân giải metrics:
-
Standard Resolution:
- Granularity: 1 phút.
- Dùng cho hầu hết các dịch vụ AWS mặc định.
-
High Resolution:
- Granularity: 1 giây (có thể tổng hợp thành 1s, 5s, 10s…).
- Thích hợp cho ứng dụng cần giám sát Near Real-Time.
- Tính phí cao hơn.
Retention (Thời gian lưu trữ)
Retention trong CloudWatch xác định thời gian mà các datapoint được giữ lại trước khi bị xóa. Dưới đây là bảng chi tiết về retention dựa trên độ phân giải:
| Resolution (độ phân giải) | Retention (giữ được bao lâu) |
|---|---|
| 1s (high resolution) | 3 giờ |
| 60s (1m) | 15 ngày |
| 300s (5m) | 63 ngày |
| 3600s (1h) | 15 tháng |
-> Sau thời gian này, CloudWatch sẽ tự động xóa các datapoint cũ.
Dimensions
- Là các cặp key-value để phân loại và lọc metrics.
- Một metric có thể gắn tối đa 10 dimensions.
- Dimension giúp phân biệt dữ liệu chi tiết hơn.
Ví dụ với EC2:
InstanceId=i-1234abcdInstanceType=t2.micro
- Nhờ dimension, bạn có thể tách metric theo từng resource thay vì chỉ nhìn tổng quan.
Metric Math
CloudWatch hỗ trợ công thức để tính toán trên nhiều metrics khác nhau:
- Cộng/trừ/nhân/chia.
- Lấy giá trị trung bình, phần trăm, tỷ lệ lỗi.
- Ví dụ:
ErrorRate = 100 * (5xxErrorCount / TotalRequestCount)
Metric Math rất hữu ích khi muốn tạo Alarm hoặc Dashboard có logic phức tạp.
Metric Streams là gì
- Cho phép export metrics gần real-time sang các dịch vụ phân tích khác như:
- Kinesis Data Firehose → rồi đổ data vào S3, Redshift, OpenSearch…
- Third-party monitoring tools (Datadog, Splunk)
- Dùng cho trường hợp cần phân tích hoặc giám sát ngoài AWS.
Ứng dụng thực tế
- EC2: Theo dõi CPU, network, disk I/O để tự động scaling.
- Lambda: Giám sát số lần gọi, thời gian chạy, số lỗi.
- RDS: Theo dõi connections, IOPS, dung lượng lưu trữ.
- Custom Metrics: Theo dõi hàng đợi Kafka, độ trễ request trong ứng dụng.