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.