Ghi log và đo lường với Amazon CloudWatch

Triển khai Ứng dụng trên AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Có bị sập không?

  • Khách hàng báo app bị lỗi
  • Bạn không có dữ liệu để xác nhận hay bác bỏ
  • CloudWatch biến phỏng đoán thành câu trả lời

Bảng điều khiển giám sát với dấu hỏi, không chắc dịch vụ đang khỏe hay đang ngưng

Triển khai Ứng dụng trên AWS

Logging, monitoring và observability

Sơ đồ ba cột phân biệt logging là bản ghi sự kiện bất biến, monitoring là ngưỡng metric kèm cảnh báo, và observability là liên kết dữ liệu để trả lời câu hỏi mới

  • Logging: ghi lại các sự kiện rời rạc khi xảy ra
  • Monitoring: theo dõi các metric đã biết so với ngưỡng
  • Observability: đặt câu hỏi mới từ dữ liệu của bạn
  • Cần cả ba để vận hành tự tin
Triển khai Ứng dụng trên AWS

Log group, log stream và retention

  • Log group: vùng chứa có tên cho các log liên quan
  • Log stream: chuỗi log từ một nguồn
  • Retention: thời gian lưu log
  • Log tốn chi phí; hãy đặt retention có chủ đích

Phân cấp CloudWatch Logs: log group chứa nhiều log stream, mỗi stream là chuỗi sự kiện theo thời gian, có thiết lập thời hạn lưu và ghi chú chi phí

Triển khai Ứng dụng trên AWS

Metrics và custom metrics

  • Metrics: dữ liệu số theo chuỗi thời gian
  • AWS tự động công bố nhiều metric dịch vụ
  • Custom metrics: số liệu app của bạn phát ra
  • Dimension chia nhỏ metric theo thuộc tính

CloudWatch metrics: metric dịch vụ AWS tự công bố bên trái, custom metric với dimension bên phải, và biểu đồ chuỗi thời gian với đường ngưỡng cảnh báo

Triển khai Ứng dụng trên AWS

Định dạng metric nhúng (embedded)

Một dòng log có cấu trúc chứa giá trị metric cùng khối _aws cho CloudWatch biết trường nào là metric:

{
  "_aws": {
    "CloudWatchMetrics": [
      {
        "Namespace": "OrdersApp",
        "Dimensions": [["customerTier"]],
        "Metrics": [{ "Name": "OrderLatencyMs", "Unit": "Milliseconds" }]
      }
    ]
  },
  "customerTier": "premium",
  "OrderLatencyMs": 142
}
Triển khai Ứng dụng trên AWS

Dashboard và cảnh báo

Bảng dashboard CloudWatch bên trái và máy trạng thái cảnh báo với các trạng thái OK, ALARM, và INSUFFICIENT_DATA bên phải, SNS chuyển tiếp thông báo đến email và tự động hóa

  • Dashboard: một màn hình biểu đồ và widget
  • Alarm: kích hoạt khi metric vượt ngưỡng
  • Alarm chuyển qua SNS, rồi email, SMS hoặc tự động hóa
  • Cảnh báo theo triệu chứng người dùng cảm nhận, không phải mọi metric
Triển khai Ứng dụng trên AWS

Chiến lược logging có cấu trúc

  • Ghi log dạng JSON, không phải văn bản tự do
  • Bao gồm timestamp, level, request ID, user ID
  • Trường có cấu trúc có thể lọc và truy vấn
  • Nhất quán giữa các dịch vụ giúp liên kết dữ liệu

Dòng log JSON có cấu trúc với trường timestamp, level, requestId, và userId, kèm truy vấn Logs Insights cho thấy cách trường có tên hỗ trợ lọc và tổng hợp chính xác

Triển khai Ứng dụng trên AWS

Cùng luyện tập nào!

Triển khai Ứng dụng trên AWS

Preparing Video For Download...