1. 程式人生 > 實用技巧 >Prometheus入門教程(五):Prometheus 的關鍵概念

Prometheus入門教程(五):Prometheus 的關鍵概念

文章首發於【陳樹義】公眾號,點選跳轉到原文:https://mp.weixin.qq.com/s/_eLAnJC6yKjeS4dvpBMdJw

前面幾篇文章,我們單刀直入地講解了 Prometheus 能做什麼。接著用一個例子來讓大家知道如何使用 Prometheus,以及如何進行告警配置。最後,還用了一篇文章來講解如何進行圖表配置。但是 Prometheus 裡面也有一些關鍵性的概念,理解這些概念有利於我們後續更深入的學習。

Metric 指標

在 Prometheus 中,我們所有的資訊都以 Metrics(指標) 的形式存在。

Metrics 由 metric name 和 label name 組成。

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

例如下面的 api_http_requests_total 就是 metrics name(指標名稱),而 method 就是 label name(標籤)。而 metric name 加上 label name 就是一個完整的 Metric。

api_http_requests_total{method="POST", handler="/messages"}

Metric Type 指標型別

Prometheus 中主要有四種不同的指標型別,用來適應不同的指標型別。

  • counter 計數器
  • gauges 計量器
  • histogram 柱狀圖
  • summary 彙總

counter 計數器

資料從 0 開始累計,理想狀態下應該是永遠增長或者是不變。

適用於例如機器開機時間、HTTP 訪問量等數值。

gauges 量器

獲取一個返回值,採集回來是多少就是多少。數值可能升高,也可能降低。

適用於例如硬碟容量、CPU 記憶體使用率等數值。

histogram 柱狀圖

counter 和 gauges 反應的是數值的情況,而 histogram 則是反應數值的分佈情況。

histogram 柱狀圖反映了樣本的區間分佈梳理,經常用來表示請求持續時間、響應大小等資訊。

例如我們 1 分鐘內有 1000 個 http 請求,我們想要知道大多數的請求耗時是多少。這時我們使用評價耗時可能不太準,但是我們使用 histogram 柱狀圖就可以看出這些請求大多數都是分佈在哪個耗時區間。

Summary 彙總

文章首發於【陳樹義】公眾號,點選跳轉到原文:https://mp.weixin.qq.com/s/_eLAnJC6yKjeS4dvpBMdJw

柱狀圖同樣表示樣本的分佈情況,與 Histogram 類似,其會有總數、數量表示。但其多了一個是中位數的表示。 常用來表示類似於:請求持續時間、響應大小的資訊。

Histogram 與 summary

為了區分是平均的慢還是長尾的慢,最簡單的方式就是按照請求延遲的範圍進行分組。例如,統計延遲在010ms之間的請求數有多少而1020ms之間的請求數又有多少。通過這種方式可以快速分析系統慢的原因。Histogram和Summary都是為了能夠解決這樣問題的存在,通過Histogram和Summary型別的監控指標,我們可以快速瞭解監控樣本的分佈情況。

Histogram 指標直接反應了在不同區間內樣本的個數,區間通過標籤len進行定義。而 summary 則是使用中位數反映樣本的情況。

任務(Job)和例項(Instance)

在 Prometheus 中抓取資料的應用叫做例項(Instance),而幾個為了同個目的的例項組合起來稱之為任務(Job)。例如下面是一個有4個例項的服務工作。

job: api-server  // 名為api-server的job
    instance 1: 1.2.3.4:5670  
    instance 2: 1.2.3.4:5671  
    instance 3: 5.6.7.8:5670
    instance 4: 5.6.7.8:5671

文章首發於【陳樹義】公眾號,點選跳轉到原文:https://mp.weixin.qq.com/s/_eLAnJC6yKjeS4dvpBMdJw

總結

這篇文章我們介紹了 Prometheus 的幾個關鍵概念:

  • Metric 指標
  • Metric Type 指標型別
  • 工作(Job)和例項(Instance)

它們之間的關係如下圖所示:

一個任務(Job)可以有多個例項(Instance),一個例項上可以有多個指標(Metric),一個指標只會有一個指標型別(Metric Type)。

文章首發於【陳樹義】公眾號,點選跳轉到原文:https://mp.weixin.qq.com/s/_eLAnJC6yKjeS4dvpBMdJw