Ba khái niệm liên quan nhưng không đồng nghĩa:
- Logging: ghi lại sự kiện rời rạc (dòng log có timestamp) — hữu ích để tra cứu "chuyện gì đã xảy ra" khi debug.
- Monitoring: thu thập metric đã biết theo thời gian và cảnh báo (alert) khi vượt ngưỡng — trả lời câu hỏi đã biết trước ("CPU có cao không?", "error rate ra sao?").
- Observability: khả năng suy ra trạng thái bên trong hệ thống từ dữ liệu nó phát ra, kể cả với câu hỏi chưa lường trước ("vì sao 1% request p99 chậm?"). Là thuộc tính của hệ thống, không phải một công cụ.
Ba trụ cột của observability:
1. Metrics — số liệu tổng hợp (đếm, đo).
2. Logs — sự kiện chi tiết.
3. Traces — theo dấu một request đi qua nhiều service (distributed tracing).
Monitoring cho biết có gì đó sai; observability giúp hiểu tại sao. Công cụ: Prometheus/Grafana, ELK, OpenTelemetry, Jaeger.