Distributed tracing theo dấu một request khi nó đi qua nhiều service trong hệ phân tán, để thấy toàn bộ hành trình và tìm điểm chậm/lỗi. Đây là trụ cột giải quyết câu hỏi "request chậm ở đâu?" — điều mà log và metric rời rạc khó chỉ ra.
Khái niệm cốt lõi:
- Span: một đơn vị công việc — vd một lời gọi service, một truy vấn DB — có thời gian bắt đầu/kết thúc và metadata (tên, trạng thái, tag). Span có thể lồng nhau (cha–con).
- Trace: cây các span thuộc cùng một request, nối với nhau bằng một trace id chung. Nhìn vào trace thấy được thời gian tiêu tốn ở từng chặng.
- Context propagation: truyền trace id + span id qua header giữa các service để nối các span lại.
OpenTelemetry chuẩn hóa việc sinh và xuất trace (cũng như metric/log), gửi tới backend như Jaeger, Tempo, Zipkin. Cùng với logs và metrics, traces là một trong ba trụ cột observability.