Cách đọc các số liệu của Prometheus

4 min read

Prometheus là một hệ thống giám sát mạnh mẽ và phổ biến, cung cấp khả năng thu thập và lưu trữ số liệu thời gian thực từ các ứng dụng. Trong Prometheus, dữ liệu thường được biểu diễn dưới dạng các số liệu (metrics), được chia thành bốn kiểu chính: Counter, Gauge, Histogram, và Summary.

Dưới đây là phân tích chi tiết từng loại:

1. Counter

Counter là một số liệu đơn giản, chỉ tăng dần theo thời gian và không bao giờ giảm trừ khi được reset (ví dụ như khi khởi động lại ứng dụng).

  • Đặc điểm:
    • Giá trị luôn không âm (>= 0).
    • Dùng để đếm số lần xảy ra của một sự kiện (ví dụ: số lượng yêu cầu HTTP, số lỗi phát sinh, số gói dữ liệu được xử lý).
    • Dữ liệu thường được biểu diễn bằng tên số liệu kèm nhãn (label).
  • Ví dụ: http_requests_total{method="GET", status="200"} 125
    • Ở đây, http_requests_total là Counter dùng để đếm tổng số yêu cầu HTTP thành công với phương thức GET.
  • Khi nào sử dụng:
    • Counter phù hợp khi bạn muốn theo dõi một giá trị chỉ có thể tăng, chẳng hạn như số lần xảy ra của một sự kiện.

2. Gauge

Gauge là một số liệu có thể tăng hoặc giảm theo thời gian.

  • Đặc điểm:
    • Giá trị có thể âm, dương hoặc bằng 0.
    • Thể hiện trạng thái tại một thời điểm cụ thể, như mức sử dụng CPU, bộ nhớ, hoặc nhiệt độ.
    • Giá trị có thể thay đổi bất cứ lúc nào.
  • Ví dụ: memory_usage_bytes{application="web_server"} 523876864
    • memory_usage_bytes đo lường lượng bộ nhớ sử dụng tại một thời điểm cụ thể.
  • Khi nào sử dụng:
    • Sử dụng Gauge khi bạn muốn theo dõi các giá trị dao động lên xuống, chẳng hạn như trạng thái hệ thống, tải hiện tại, hoặc mức sử dụng tài nguyên.

3. Histogram

Histogram là số liệu dùng để phân phối dữ liệu thành các “xô” (buckets) dựa trên giá trị của chúng.

  • Đặc điểm:
    • Phân phối giá trị thành nhiều bucket với kích thước được định nghĩa trước.
    • Thường được sử dụng để đo lường thời gian hoặc kích thước của các sự kiện (ví dụ: thời gian phản hồi).
    • Đi kèm hai số liệu đặc biệt: _bucket (giá trị bucket), _sum (tổng giá trị), và _count (số lượng sự kiện).
  • Ví dụ:
http_request_duration_seconds_bucket{le="0.1"} 2400
http_request_duration_seconds_bucket{le="0.5"} 5000
http_request_duration_seconds_sum 2350
http_request_duration_seconds_count 6000

Dữ liệu này biểu thị thời gian phản hồi HTTP, với các bucket le đại diện cho giới hạn trên.

  • Khi nào sử dụng:
    • Histogram hữu ích khi bạn cần hiểu phân phối của một tập hợp số liệu, chẳng hạn như thời gian phản hồi hoặc kích thước yêu cầu.

4. Summary

Summary tương tự Histogram nhưng cung cấp một cách tính toán giá trị cụ thể hơn, như percentiles (phần trăm) và tổng.

  • Đặc điểm:
    • Đưa ra giá trị tổng (sum), số lượng (count), và percentiles (ví dụ: 50th, 90th, 99th percentiles).
    • Không yêu cầu cấu hình trước bucket, nhưng phần trăm không được tính ngược từ dữ liệu thô.
  • Ví dụ:
http_request_duration_seconds_sum 2350
http_request_duration_seconds_count 6000
http_request_duration_seconds{quantile="0.5"} 0.2
http_request_duration_seconds{quantile="0.9"} 0.8

http_request_duration_seconds biểu diễn thời gian phản hồi HTTP với các giá trị phần trăm.

  • Khi nào sử dụng:
    • Summary được sử dụng khi bạn muốn theo dõi giá trị phần trăm cụ thể hoặc tổng số liệu mà không cần quan tâm đến bucket.

So sánh Histogram và Summary

Tiêu chíHistogramSummary
Tính toánPhân phối số liệu thành bucket.Tính toán phần trăm (percentiles).
Độ chính xácCần xác định trước bucket, đôi khi thiếu chính xác.Phần trăm chính xác hơn nhưng không tổng hợp được dữ liệu.
Tổng hợpCó thể tổng hợp trên nhiều instance.Không tổng hợp được phần trăm qua nhiều instance.
Phạm vi sử dụngKhi bạn cần tổng hợp số liệu từ nhiều nguồn.Khi bạn cần giá trị phần trăm cụ thể.

Kết luận

Hiểu rõ từng loại số liệu trong Prometheus giúp bạn chọn đúng loại cho từng kịch bản giám sát.

  • Counter: Dùng để đếm.
  • Gauge: Dùng để đo trạng thái.
  • Histogram: Dùng để hiểu phân phối dữ liệu.
  • Summary: Dùng để tính toán giá trị phần trăm chính xác.

Việc chọn loại số liệu phù hợp sẽ tối ưu hóa hiệu suất và cung cấp thông tin chính xác cho các quyết định quan trọng.




Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *