Prometheus là gì?
Hệ thống giám sát dựa trên metrics, thu thập và lưu trữ dữ liệu để theo dõi sức khỏe và hiệu năng hệ thống.
Prometheus dùng mô hình pull hay push?
Pull-based system — Prometheus chủ động kéo dữ liệu (scrape) từ các targets qua HTTP.
“Target” trong Prometheus là gì?
Là nơi Prometheus thu thập metrics, có thể là ứng dụng riêng hoặc third-party system (qua exporter).
Exporter trong Prometheus dùng để làm gì?
Chuyển đổi dữ liệu từ hệ thống không hỗ trợ Prometheus sang định dạng metrics chuẩn để Prometheus đọc được.
Prometheus lưu trữ dữ liệu ở đâu?
Lưu trong local time-series database (TSDB), gồm các cặp {metric_name, labels} → value theo thời gian.
Hai cách để Prometheus phát hiện target là gì?
1️⃣ Static config (khai báo thủ công) (file yml)
2️⃣ Dynamic discovery (tự động, qua DNS hoặc Kubernetes API)
Công cụ nào trong Prometheus chịu trách nhiệm xử lý cảnh báo?
Alertmanager
Prometheus có thể hiển thị dữ liệu bằng công cụ nào?
Web UI (PromQL trực tiếp)
Grafana (vẽ dashboard trực quan)
Prometheus có mấy loại metric chính?
4 loại — Gauge, Counter, Summary, Histogram
Gauge trong Prometheus dùng để làm gì?
Đo giá trị hiện tại (có thể tăng hoặc giảm) như CPU usage, RAM, disk space.
Các hàm thường dùng với Gauge?
Set(), Inc(), Dec(), Add(), Sub()
Counter là gì?
Bộ đếm chỉ tăng, không giảm. Dùng để đếm request, lỗi, thời gian CPU,…
Counter có thể giảm giá trị hoặc reset không?
Không thể giảm, nhưng reset về 0 khi app restart.
Counter có những hàm nào?
Inc() – tăng 1, Add(value) – tăng tùy ý.
Tại sao không nên đọc trực tiếp giá trị Counter?
Vì nó chỉ thể hiện tổng tích lũy, không cho biết tốc độ thay đổi hiện tại.
Hàm PromQL nào giúp xem tốc độ tăng của Counter?
rate(counter[5m]) — tốc độ trung bình
irate(counter[5m]) — tốc độ tức thời
increase(counter[5m]) — tổng số tăng thêm
Summary dùng để làm gì?
Đo phân phối (distribution) của các giá trị và trả về quantile (phần trăm vị) như 50%, 90%, 99%.
Nhược điểm của Summary là gì?
Không thể aggregate (cộng gộp) giữa nhiều instance/server.
Histogram khác Summary ở điểm nào?
Histogram đếm giá trị rơi vào các “bucket” thay vì tính quantile trực tiếp → có thể aggregate giữa nhiều instance.
Bucket trong Histogram nghĩa là gì?
Là khoảng giá trị chứa các metric ≤ một ngưỡng nhất định (VD: le=”0.25” → ≤ 0.25 giây).