這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
下載Prometheus
下載最新安裝包,本文說的都是在Linux x64下面內容,其它平台沒嘗試過,請選擇合適的下載。
- Prometheus 主程式,主要是負責儲存、抓取、彙總、查詢方面。
- Alertmanager 程式,主要是負責實現警示功能。
- Pushgateway 程式,主要是實現接收由Client push過來的指標資料,在指定的時間間隔,由主程式來抓取。
- *_exporter 這類是不同系統已經實現了的整合。
下載解壓,一般預設的配置就可以運行。
tar xvfz prometheus-*.tar.gzcd prometheus-*
go寫的東西,直接打包成二進位包了,其本上沒有別的依賴。
下面我們主要來瞭解一下他的設定檔,這是一個非常重要的步聚。
配置Prometheus監控自已
Prometheus 通過預設 *http://localhost:9090/metrics* HTTP介面暴露了自己的效能指標資料,當然也就可以配置抓取目標 targets 為自己了。Prometheus 採集自身效能資料就是一個十分好的例子了,開啟解壓目錄下面的prometheus.yml檔案。
# 全域配置global: scrape_interval: 15s # 預設 15秒到目標處抓取資料 # 這個標籤是在本機上每一條時間序列上都會預設產生的,主要可以用於 聯集查詢、遠程儲存、Alertmanger時使用。 external_labels: monitor: 'codelab-monitor'# 這裡就表示抓取對象的配置# 設定抓取自身資料scrape_configs: # job name 這個配置是表示在這個配置內的時間序例,每一條都會自動添加上這個{job_name:"prometheus"}的標籤。 - job_name: 'prometheus' # 重寫了全域抓取間隔時間,由15秒重寫成5秒。 scrape_interval: 5s static_configs: - targets: ['localhost:9090']
啟動Prometheus
使用剛才的設定檔啟動Prometheus。
./prometheus -config.file=prometheus.yml
這時候Prometheus應該正確啟動了,如果報錯,請檢查設定檔。(注意:yml格式是對縮排有要求的。) 使用瀏覽器開啟該機器的*http://部署機器:9090*,或者http://localhost:9090/ 即可以看到Prometheus的graph頁面了。一般等幾秒抓取,就會有資料寫進Prometheus裡面了。
如果相驗證Prometheus自己輸出了什麼效能資料,可以開啟 http://localhost:9090/metrics 這個頁面看看。
Prometheus預設是有多少個CPU核心就使用多少OS線程,主要是由GOMAXPROCS 這個環境變數控制的,開發GO的應該都清楚。一般預設就好了,太高的話可能會帶來意想不到的後果。
Prometheus預設大概會佔用3G左右的記憶體,如果想調小一點,得修改設定檔,或者添加啟動參數。
使用Prometheus 內建的運算式瀏覽器
如果想查看Prometheus都抓了些什麼資料,可以使用它內建的一個瀏覽頁面。開啟*http://localhost:9090/graph*,預設是在graph的頁面。
試試在運算式 expression 輸入框:
prometheus_target_interval_length_seconds
查詢Promethues目標抓取間隔時間長度。執行後會返回很多條時間序列,Console 內列出的是最後一次抓到的數值。不同的標籤表示不同的時間間隔和耗時%。
如果想查詢99%的抓取耗時,可以這樣:
prometheus_target_interval_length_seconds{quantile="0.99"}
如果想查詢返回的時間序列有多少條,可以這樣:
count(prometheus_target_interval_length_seconds)
暫時寫到這了。