DevOps 02/09/2026 9 phút

Chỉ mục của Loki chỉ chiếm 0,42% dữ liệu — bí quyết là nó đánh chỉ mục nhãn, không đánh chỉ mục nội dung; và thư mục WAL suýt khiến tôi kết luận ngược hẳn

200.000 dòng log 30,75 MB vào Loki còn 5,40 MB trên đĩa (nén 5,69 lần), chỉ mục vỏn vẹn 0,42%. Đó là toàn bộ triết lý Loki gói trong một con số: trả tiền chỉ mục cho 15 luồng, không cho 30 MB văn bản. Nhưng thư mục WAL 32 MB suýt làm tôi kết luận Loki phình 1,22 lần thay vì nén 5,69 lần.

DevOps 02/09/2026 9 phút

Cùng 200.000 dòng log: Loki tốn 5,40 MB tìm 33 ms, Elasticsearch tốn 16,22 MB tìm 3 ms — và để mapping mặc định là ném đi 29,5% dung lượng lấy đúng kết quả cũ

Tôi đẩy cùng một tệp log vào Loki và Elasticsearch rồi đo từng con số: ES trả lời nhanh gấp 13 lần, Loki tốn ít hơn 3 lần và nạp nhanh hơn. Nhưng phát hiện đắt nhất là mapping động mặc định của ES phí 29,5% dung lượng, nạp chậm 1,8 lần, lọc chậm 3,5 lần — cho y hệt kết quả. Đây là đánh đổi 'chỉ mục mọi thứ hay không' hiện ra bằng megabyte.

DevOps 02/09/2026 9 phút

logrotate báo 'thành công' rồi nuốt mất 4.317 dòng log — và không một dòng lỗi nào cảnh báo tôi

Tôi cho một tiến trình ghi 300.000 dòng đánh số rồi chạy logrotate ở giữa. copytruncate làm mất 4.317 dòng, im lặng tuyệt đối; đổi tên file thì không mất dòng nào nhưng cả luồng log chảy vào chỗ không ai đọc. Hai cách xoay vòng, hai kiểu hỏng, không cái nào kêu lên.

DevOps 02/09/2026 8 phút

Bốn kiểu chỉ số đều ghi dưới nửa micro giây — nên chọn kiểu nào không phải chuyện hiệu năng, mà là chuyện một Histogram sinh gấp 9 lần số chuỗi so với Counter

Tôi đo giá của Counter, Gauge, Histogram, Summary và thấy chỗ tính tiền không nằm ở đâu mình tưởng: cả bốn ghi dưới 0,5 µs, khoảng cách rộng nhất chỉ 2,53 lần. Cái thật sự đắt là số chuỗi thời gian — một Histogram sinh 18 dòng mỗi tổ hợp nhãn so với 2 của Counter, gấp 9 lần, và nó nhân lên chứ không cộng vào. Người thêm nhãn không phải người trả giá.