ADR 0006Chấp nhận
ADR 0006: Chỉ dùng gauge, agent tính sẵn tốc độ
Trạng thái: Chấp nhận. Ngày: 2026-09-30.
Bối cảnh
Nhiều chỉ số hệ thống là bộ đếm tăng dần (byte mạng, thời gian CPU). Prometheus thường lưu bộ đếm rồi dùng rate() khi truy vấn.
Quyết định
Agent gửi gauge đã tính tốc độ (net_rx_bytes_per_sec, cpu_usage_percent), mẫu đầu tiên sau khởi động bị bỏ vì chưa có kỳ trước. Không gửi counter thô.
Lý do
- Đánh giá luật đơn giản và độc lập với thứ tự đến (không cần cửa sổ
rate). - Truy vấn API cố định không phải sinh biểu thức
ratetheo từng chỉ số. - Tránh lỗi khi bộ đếm quay vòng hoặc khởi động lại, agent xử lý một chỗ.
- Rollup (
avg,min,max,last) trên gauge có nghĩa trực tiếp.
Đánh đổi
- Mất độ chính xác so với tính từ bộ đếm thô ở khoảng ngắn khi mất gói (chấp nhận, vì đây là giám sát vận hành, không phải tính cước).
- Agent phải giữ trạng thái kỳ trước, ghi rõ trong catalog chỉ số.
Hệ quả
Danh mục chỉ số (agent, 03-metrics-catalog) chỉ chứa gauge và nêu công thức tính. Không dùng kiểu counter và histogram ở giao thức v1.