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?