Lesson 1Metrics

CloudWatch Metrics, Alarms and Dashboards

Amazon CloudWatch ให้ observability ผ่าน metrics, alarms, dashboards และ agent เพื่อให้คุณเห็น resource utilization, application health และ operational signals แบบ real time

Metrics, Namespace และ Dimension

Metric คือข้อมูลเชิงตัวเลขตามเวลา เช่น CPUUtilization, DiskReadOps หรือ custom business metric Namespace คือกลุ่มของ metric เช่น AWS/EC2 ส่วน Dimension คือ key-value ที่ระบุ resource หรือมุมมอง เช่น InstanceId

Namespace: AWS/EC2
Metric: CPUUtilization
Dimension: InstanceId=i-0123456789abcdef0
Statistic: Average
Period: 5 minutes

CloudWatch Alarm

Alarm monitor metric เทียบกับ threshold แล้วเปลี่ยน state เช่น OK, ALARM หรือ INSUFFICIENT_DATA Alarm ที่ดีควร action ได้จริง เช่นส่ง SNS, trigger automation หรือเปิด incident ไม่ใช่แค่ส่ง noise

Dashboard

Dashboard รวม metrics และ logs visualization ไว้ดูระบบแบบเร็ว เช่น API latency, error rate, CPU, memory, database connection, queue depth และ alarm state สำหรับ service สำคัญ

CloudWatch Agent

EC2 ส่ง basic metrics บางตัวให้ CloudWatch เอง แต่ metrics ระดับ OS เช่น memory, disk usage และ custom log files มักต้องใช้ CloudWatch Agent และ IAM Role ที่มี permission เหมาะสม

Common mistakes

  • ตั้ง alarm จาก CPU อย่างเดียว ทั้งที่ user impact อยู่ที่ latency/error rate
  • ตั้ง threshold แคบเกินจน alert บ่อยและทีมไม่สนใจ
  • ไม่มี dashboard สำหรับ incident ทำให้เสียเวลาหา metric ตอนระบบมีปัญหา
  • ลืมว่าบาง custom metrics และ high-resolution metrics มีค่าใช้จ่าย

Review questions

  1. Namespace และ Dimension ใช้ทำอะไร?
  2. Alarm ที่ actionable ควรมีคุณสมบัติอะไร?
  3. CloudWatch Agent ช่วยเก็บ metrics/logs อะไรที่ EC2 basic metrics ไม่มี?