Prometheus là một hệ thống giám sát open-source mạnh mẽ dùng để thu thập các metric từ các dịch vụ và lưu trữ trong time-series database. Nó cung cấp một mô hinh dữ liệu đa chiều, ngôn ngữ linh hoạt và có thể hiển thị linh hoạt thông qua các công cụ như Grafana.
Nội dung chính :
Các tính năng chính:
- Data model đa chiều (time series data xác định bởi tên metric và cặp key/value)
- Ngôn ngữ truy vấn hiệu quả
- Không phụ thuộc lưu trữ phân tán, các server node là các autonomous
- Time series data được thu thập qua việc pull, sử dụng giao thức HTTP
- Các data không thể tổng hợp được push qua gateway trung gian
- Các target được phát hiện bằng cấu hình tĩnh hoặc nhờ service discovery
- Hỗ trợ dashboard, graph
Hệ sinh thái Prometheus gồm nhiều thành phần, nhiều trong số đó là những thành phần tùy chọn:
- Prometheus server là thành phần chính, dùng để scrape và store time series data.
- client libraries thư viện sử dụng để code trong ứng dụng của bạn
- Pushgateway hỗ trợ các short-lived job
- Exporter thu thập metric từ các serivce HAProxy, StatsD, Graphite, ...
- Alertmanager thành phần gửi cảnh báo
- và một vài công cụ hỗ trợ khác
Chi tiết về từng thành phần, các hạ xem hồi sau sẽ rõ xD
Prometheus scrape các metric từ các job/exporter hoặc từ pushgateway. Nó sẽ lưu trữ data và chạy các rule qua các data này để tổng hợp và ghi lại time series mới từ dữ liệu đã tồn tại hoặc là tạo cảnh báo. Grafana hoặc các API consumer có thể sử dụng để vẽ những dữ liệu thu thập được.
Prometheus hoạt động tốt để ghi các time series data dạng số. Nó phù hợp với việc giám sát các máy chủ cũng như các kiến trúc highly dynamic service-oriented.
Đối với microservice, nó hỗ trợ thu thập và truy vấn dữ liệu đa chiều.
Prometheus là đáng tin cậy. Bạn có thể xem thống kê nào có sẵn về hệ thống của bạn, ngay cả trong điều kiện lỗi. Nếu bạn cần độ chính xác 100%, ví dụ cho mục đích thanh toán, Prometheus không phải là một lựa chọn tốt vì nó không chi tiết và đầy đủ.
Phần tiếp Prometheus server