Docs học tập
Backend nền tảng

H6 · Logging, Metrics và Tracing

Log có cấu trúc (JSON), đủ ngữ cảnh (request id, user id), đúng mức (error, warn, info), không chứa dữ liệu nhạy cảm.

H6 · Middle

Log là nhật ký, metrics là đồng hồ trên bảng táp-lô, tracing là định vị hành trình của từng gói hàng qua các trạm.

Cốt lõi

  • Log có cấu trúc (JSON), đủ ngữ cảnh (request id, user id), đúng mức (error, warn, info), không chứa dữ liệu nhạy cảm.
  • Metrics: số request, tỷ lệ lỗi, độ trễ p95/p99, tài nguyên → dashboard và cảnh báo.
  • Distributed tracing (OpenTelemetry): theo một request đi qua nhiều service, thấy ngay chỗ chậm.
  • Cảnh báo theo triệu chứng người dùng thấy (lỗi, chậm), không chỉ theo CPU.

Đánh đổi

Log quá nhiều thì tốn tiền lưu trữ và khó tìm; quá ít thì mù khi có sự cố.

Trong thực tế

Người dùng báo lỗi thanh toán → tìm theo request id thấy ngay lời gọi sang cổng thanh toán bị quá thời gian.

Bug thường gặp

Bắt lỗi rồi bỏ qua im lặng (catch rỗng) → dữ liệu sai nhiều ngày mà không ai biết.

Tự hỏi lại

Vì sao độ trễ p99 quan trọng hơn giá trị trung bình?

On this page