Hai thứ bắt buộc: correlation id và log tập trung.
Correlation id (request id): sinh một id duy nhất ở cửa ngõ (gateway hoặc service đầu tiên), gắn vào header, truyền tiếp qua mọi lời gọi xuống dưới và ghi vào mọi dòng log.
X-Request-Id: 7c1f4c2a-9d3e-4a11-8a02-4f0d2b6b1e77Để không phải nhớ truyền tay ở từng chỗ, lưu id trong context của request (middleware nhận vào, HTTP client tự đính khi gọi ra).
Log tập trung (log aggregation): mọi instance đẩy log về một nơi (ELK, Loki, CloudWatch). Khi đó tìm sự cố chỉ còn một truy vấn duy nhất theo request_id, thấy toàn bộ hành trình.
Ghi log dạng cấu trúc (JSON), không phải chuỗi tự do — để lọc được theo trường:
{"ts":"2026-08-06T09:12:03Z","level":"error","service":"payment","request_id":"7c1f...","user_id":9182,"msg":"charge failed","provider_code":"insufficient_funds"}Không ghi mật khẩu, token, số thẻ vào log.
Bước tiếp theo khi cần đo cả thời gian từng chặng là distributed tracing.