Quan sát hệ thống: log, metric, trace

Sê-ri 40 phần về giám sát và quan sát, đo chi phí thật của từng lớp công cụ.

23/40 phần đã đăng DevOps
1 Ba trụ cột quan sát Sự cố làm 0,2% request chậm gấp 56 lần: p99 đứng yên ở 0,46 µs, chỉ p99.9 mới lộ ra 21,88 µs. 01/09/2026 · 8 phút đọc 2 Chi phí ghi log Năm cách ghi cùng một dòng: print 0,18 µs, logging 4,51 µs, loguru 6,98 µs — và 94% chi phí không nằm ở chỗ ai cũng đoán. 01/09/2026 · 8 phút đọc 3 Log có cấu trúc JSON to hơn 50% khi chưa nén và chỉ 6% sau khi nén. Nhưng grep trên log chữ nhanh gấp 19 lần jq. 01/09/2026 · 6 phút đọc 4 Lấy mẫu log Lấy mẫu 1/10 làm p99 sập từ 414,9 xuống 119,9 ms — sai 71%, và sai đều ở cả ba lần đo. 01/09/2026 · 6 phút đọc 5 Thu thập log: agent và sidecar Thu thập một dòng log tốn 1,73 µs — đắt gấp ba lần chính việc ghi ra dòng đó. Và Vector ăn RAM gấp 10 lần Fluent Bit. 02/09/2026 · 6 phút đọc 6 Loki 200.000 dòng log 30,75 MB vào Loki còn 5,40 MB trên đĩa, chỉ mục chiếm 0,42% — và thư mục WAL suýt làm tôi kết luận ngược. 02/09/2026 · 8 phút đọc 7 Elasticsearch cho log Cùng 200.000 dòng: Loki 5,40 MB tìm mất 33 ms, Elasticsearch 16,22 MB tìm mất 3 ms — và mapping mặc định phí thêm 29,5%. 02/09/2026 · 8 phút đọc 8 Xoay vòng và giữ log copytruncate làm mất 4.317 trong 300.000 dòng mà không báo lỗi; đổi tên file thì không mất dòng nào nhưng tất cả chảy vào chỗ không ai đọc. 02/09/2026 · 8 phút đọc 9 Bốn kiểu chỉ số Cả bốn kiểu đều ghi dưới nửa micro giây; chỗ tính tiền là số chuỗi — một Histogram sinh gấp 9 lần một Counter. 02/09/2026 · 8 phút đọc 10 Prometheus: mô hình kéo Một lần quét 50.000 nhãn chuyển 50,6 MB và mất 435 ms. Và khi mục tiêu chết, chuỗi biến mất ngay lập tức. 02/09/2026 · 5 phút đọc 11 Nhãn và bùng nổ chiều Thêm hai nhãn 'vô hại' biến 1.000 chuỗi thành 20.000. Và 50.000 giá trị nhãn ăn 1,3 GB RAM của Prometheus. 02/09/2026 · 5 phút đọc 12 Histogram và phân vị Tỷ lệ request chậm tăng 10 lần: p50 nhích 3%, trung bình tăng 91%, p99 tăng 927%. Đo trên 1 triệu mẫu, đối chiếu với Prometheus. 02/09/2026 · 8 phút đọc 13 Phân vị tính sai Bốn cách tính p99 trên cùng dữ liệu cho bốn kết quả. p90 sai 19,7% chứ không phải p99, và avg(p99) báo nhẹ đi 4,4 lần đúng lúc có sự cố. 02/09/2026 · 8 phút đọc 14 Ghi trước quy tắc và cảnh báo Quy tắc ghi trước làm truy vấn nhanh 35 lần. Và độ trễ phát hiện có công thức chính xác, kiểm chứng được. 02/09/2026 · 6 phút đọc 15 Cảnh báo ồn Ngưỡng tức thời báo giả 50 lần cho 3 sự cố thật. Nhưng lỗi không nằm ở quy tắc — nó nằm ở mẫu quá nhỏ. 02/09/2026 · 6 phút đọc 16 Bốn tín hiệu vàng Saturation chạm trần khi latency và errors còn hoàn hảo. Client tăng 8 lần, thông lượng chỉ +8%, còn p99 gấp 15,6 lần. 02/09/2026 · 7 phút đọc 17 SLI và ngân sách lỗi Cùng một sự cố, ba cách tính SLI cho ba kết luận: vi phạm SLO, đạt SLO, và không có chuyện gì xảy ra. 02/09/2026 · 8 phút đọc 18 Bảng điều khiển nặng 40 panel làm tươi mỗi 10 giây tốn 12% một nhân cho mỗi người xem. Và sum by không làm Prometheus nhẹ đi chút nào. 02/09/2026 · 7 phút đọc 19 Lưu chỉ số dài hạn Prometheus nén còn 2,16 byte mỗi mẫu. Nhưng giảm mẫu bằng trung bình xoá mất 84% chiều cao đỉnh — 939 ms còn 150 ms. 02/09/2026 · 8 phút đọc 20 Trace bốn chặng Hai sự cố khác hẳn nhau, metric ở dịch vụ đầu chỉ cho một con số. Trace chỉ thẳng svc-c: tự làm 101,45 ms trong khi ba chặng kia đều 10 ms. 02/09/2026 · 8 phút đọc 21 OpenTelemetry BatchSpanProcessor mặc định vứt 62,5% số span khi dịch vụ chạy nhanh — và chỉ ghi một dòng log. Dịch vụ càng nhanh càng mất nhiều trace. 02/09/2026 · 8 phút đọc 22 Truyền ngữ cảnh Một chặng quên chuyển tiếp header traceparent chia đôi cái cây. Cộng với lấy mẫu, tỷ lệ có trace đầy đủ rơi từ 9,93% xuống 1,01%. 02/09/2026 · 8 phút đọc 23 Lấy mẫu trace Cùng ngân sách lưu trữ: lấy mẫu đầu giữ được 10,48% trace lỗi, lấy mẫu đuôi giữ 100%. Cái giá là 46,3 MB bộ nhớ đệm. 02/09/2026 · 8 phút đọc

Còn 17 phần nữa sẽ lần lượt được đăng.