歡迎來到Prometheus!Prometheus是一個監控平臺,經過在監控目標上的HTTP端點來收集受監控目標的指標。本指南將向您展現如何使用Prometheus安裝,配置和監控咱們的第一個資源。 您將下載,安裝並運行Prometheus。您還將下載並安裝exporter,這些工具可在主機和服務上公開時間序列數據。咱們的第一個exporter將是Prometheus自己,它提供了有關內存使用,垃圾收集等的各類主機級指標。node
根據你的平臺prometheus.io/download/,而後解壓它:git
tar xvfz prometheus-*.tar.gz
cd prometheus-*
複製代碼
Prometheus服務器是一個名爲prometheus的二進制文件(或Microsoft Windows上的prometheus.exe)。 咱們能夠經過傳遞--help
標誌來運行二進制文件並查看其選項的幫助。github
./prometheus --help
usage: prometheus [<flags>]
The Prometheus monitoring server
. . .
複製代碼
在使用歡迎來到Prometheus以前,讓咱們配置它。瀏覽器
Prometheus配置是YAML。Prometheus下載附帶一個名爲prometheus.yml的文件中的示例配置,這是一個很好的入門之處。bash
咱們刪除了示例文件中的大部分註釋,使其更簡潔(註釋是以#爲前綴的行)。服務器
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
複製代碼
示例配置文件中有三個配置塊:global,rule_files和scrape_configs。ide
全局塊控制Prometheus服務器的全局配置。 咱們有兩種選擇。 第一個是scrape_interval,它控制Prometheus抓取目標的頻率。 您能夠爲單個目標重寫此值。 在這種例子下,全局設置是每15s抓取一次。 evaluation_interval選項控制Prometheus評估規則的頻率。 Prometheus使用規則建立新的時間序列並生成警報。工具
rule_files塊指定咱們但願Prometheus服務器加載的任何規則的位置。 如今咱們沒有規則。性能
最後一個塊scrape_configs控制Prometheus監視的資源。 因爲Prometheus還將本身的數據公開爲HTTP端點,所以它能夠抓取並監控自身的健康情況。 在默認配置中,有一個名爲prometheus的做業,它會抓取Prometheus服務器公開的時間序列數據。 該做業包含一個靜態配置的目標,即端口9090上的localhost。Prometheus但願指標在/metrics路徑上的目標上可用。 因此這個默認的工做是經過URL抓取:http//localhost:9090/metrics。學習
返回的時間序列數據將詳細說明Prometheus服務器的狀態和性能。
有關配置選項的完整規範,請參閱配置文檔。
要使用咱們新建立的配置文件啓動Prometheus,請切換到包含Prometheus二進制文件的目錄並運行:
./prometheus --config.file=prometheus.yml
複製代碼
prometheus應該啓動。您還應該可以在http//localhost:9090瀏覽到本身的狀態頁面。給它大約30秒的時間從本身的HTTP指標端點收集有關本身的數據。
您還能夠經過導航到其本身的指標端點來驗證Prometheus是否正在提供有關自身的指標:http//localhost:9090/metrics。
讓咱們試着看一下Prometheus收集的關於本身的一些數據。 要使用Prometheus的內置表達式瀏覽器,請導航到http//localhost:9090/graph並在「Graph」選項卡中選擇「Console」視圖。
正如您能夠從http//localhost:9090/metrics收集的那樣,Prometheus導出的一個度量標準稱爲promhttp_metric_handler_requests_total
(Prometheus服務器已服務的/ metrics請求的總數)。 繼續並將其輸入表達式控制檯:
promhttp_metric_handler_requests_total
複製代碼
這應該返回許多不一樣的時間序列(以及爲每一個記錄的最新值),全部時間序列都使用度量標準名稱promhttp_metric_handler_requests_total
,但具備不一樣的標籤。 這些標籤指定不一樣的請求狀態。
若是咱們只對致使HTTP代碼200的請求感興趣,咱們可使用此查詢來檢索該信息:
promhttp_metric_handler_requests_total{code="200"}
複製代碼
要計算返回的時間序列總數,您能夠寫:
count(promhttp_metric_handler_requests_total)
複製代碼
有關表達式語言的更多信息,請參閱表達式語言文檔。
要繪製表達式圖表,請導航到http//localhost:9090/graph graph並使用「圖表」選項卡。
例如,輸入如下表達式來繪製在自我抓取的Prometheus中發生的返回狀態代碼200的每秒HTTP請求率:
rate(promhttp_metric_handler_requests_total{code="200"}[1m])
複製代碼
您能夠嘗試圖形範圍參數和其餘設置。
僅從Prometheus那裏收集指標並不能很好地反映Prometheus的能力。 爲了更好地瞭解Prometheus能夠作什麼,咱們建議您瀏覽有關其餘exporter的文檔。 使用node exporter指南監控Linux或macOS主機指標是一個很好的起點。
在本指南中,您安裝了Prometheus,配置了Prometheus實例來監視資源,並學習了在Prometheus表達式瀏覽器中處理時間序列數據的一些基礎知識。 要繼續瞭解Prometheus,請查看概述,瞭解接下來要探索的內容。
Prometheus官網地址:prometheus.io/ 個人Github:github.com/Alrights/pr…