Bài viết thuộc series “Chinh phục Prometheus”

Giới thiệu

bài trước chúng ta đã tìm hiểu sơ lược về Prometheus. Ở bài này, chúng ta sẽ tìm hiểu kỹ hơn về các khái niệm của Prometheus và kiến trúc của nó, sau đó ta sẽ cài đặt và cấu hình một Prometheus đơn giản.

Mục lục

prometheus-01.drawio.png

Như ta đã nói ở bài trước Prometheus là một công cụ chuyên dùng trong việc giám sát hệ thống bằng cách thu thập dữ liệu tình trạng của các ứng dụng, vậy Prometheus sẽ thực hiện việc đó như thế nào?

Prometheus hoạt động thế nào?

Prometheus sẽ thực việc thu thập dữ liệu bằng cách kéo dữ liệu từ các hạ tầng hoặc ứng dụng nó cần giám sát về. Các hạ tầng và ứng dụng mà Prometheus giám sát được gọi là targets, các targets này sẽ được định nghĩa trong file cấu hình của Prometheus.

Các targets cần phải cung cấp một HTTP endpoints, sau đó Prometheus sẽ kéo dữ liệu bằng cách gọi vào các endpoints và lưu kết quả mà endpoint trả về, những dữ liệu đó được gọi là time series data.

Để targets có thể cung cấp được time series data thì ta sẽ có hai cách:

Ta sẽ thường nghe thuật ngữ metrics, giải thích đơn giản metrics là tập họp của nhiều time series mà có tên giống nhau. Để hiểu hơn về time series và metrics được trả về từ các targets thì ta sẽ tìm hiểu cách dữ liệu được định dạng.

Prometheus Data Model

Ví dụ một time series được trả về từ target có giá trị như sau:

container_cpu_load_average_10s{id="/docker", instance="10.0.2.15:8080", job="docker"} 0

Định đạng của dữ liệu ở trên như sau:

<metric name>{<label name>=<label value>, ...} <samples>

Tiếp theo là những thuật ngữ các bạn cần nhớ khi đi phỏng vấn: