🔭 Cheatsheet: Observability cho người mới: log, metric và cảnh báo

By Better Wise

Tra cứu nhanh cho on-call: log, metric, dashboard, alert, tracing, và cách nhờ AI thêm log.


Module 1: Log có cấu trúc và log level

1.1 Structured logging

Log truyền thống là chuỗi văn bản khó parse. Structured log là một object JSON với các field cố định.

So sánh:

Kiểu Ví dụ Khi nào dùng
Unstructured User 42 failed login from 1.2.3.4 Chỉ đọc bằng mắt, không filter được
Structured {"level":"warn","event":"login_failed","user_id":42,"ip":"1.2.3.4"} Query, filter, alert, dashboard

Các field tối thiểu nên có:

Field Ý nghĩa Ví dụ
timestamp Thời điểm (ISO 8601, có timezone) 2024-05-01T03:12:45Z
level Mức log info, error
event Tên sự kiện ngắn, cố định order_created
service Tên service phát sinh log checkout-api
request_id ID gắn cả request để nối các log req_8f3a...
user_id Ai gây ra (nếu có) 42
duration_ms Thời gian xử lý (nếu đo được) 128
error Thông tin lỗi (message, type) "timeout"

Quy tắc vàng:

  • event là tên cố định, không phải câu văn tự do. Dùng order_created, không dùng "Đã tạo đơn hàng thành công".
  • Mọi field động (ID, giá trị) phải nằm trong field riêng, không nhét vào event.
  • Luôn kèm request_id để nối log giữa các service.
{"timestamp":"2024-05-01T03:12:45Z","level":"error","event":"payment_failed","service":"checkout-api","request_id":"req_8f3a","user_id":42,"duration_ms":1280,"error":{"type":"timeout","message":"gateway timeout"}}

Tip: Nếu log của bạn bắt đầu bằng một câu tiếng Việt có dấu phẩy, đó chưa phải structured log.

1.2 Log level

This cheatsheet is premium content. Sign in and purchase the course to view the full content. Sign in