Chỉ số: bốn kiểu
Counter tốn 2,0 ns, Summary tốn 226,4 ns. Nhưng cái đắt thật không phải kiểu chỉ số — mà là số giá trị nhãn.
Counter tốn 2,0 ns, Summary tốn 226,4 ns. Nhưng cái đắt thật không phải kiểu chỉ số — mà là số giá trị nhãn.
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á.
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.
Tôi cho tỷ lệ request chậm tăng dần trên một triệu mẫu thật và xem ba con số quen thuộc phản ứng ra sao. Kết quả: nếu theo dõi p50 bạn không thấy gì, nếu theo dõi trung bình bạn thấy quá muộn, chỉ p99 kêu đúng lúc. Và con số chính xác nhất Histogram cho bạn lại đúng là con số ít dùng nhất.
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.
Bốn cách tính p99 trên cùng dữ liệu cho bốn kết quả. Nghịch lý: p90 sai 19,7% còn p99 chỉ sai 2,5%. Và avg(p99) — công thức có mặt trên vô số dashboard — báo nhẹ sự cố đi 4,4 lần đúng lúc bạn cần nó nhất, vì phân vị không cộng được.