下載Prometheus
下載最新安裝包,本文說的都是在Linux x64下面內容,其它平台沒嘗試過,請選擇合適的下載。
- Prometheus 主程序,主要是負責存儲、抓取、聚合、查詢方面。
- Alertmanager 程序,主要是負責實現報警功能。
- Pushgateway 程序,主要是實現接收由Client push過來的指標數據,在指定的時間間隔,由主程序來抓取。
- *_exporter 這類是不同系統已經實現了的集成。
下載解壓,一般默認的配置就可以運行。
tar xvfz prometheus-*.tar.gz
cd 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)
暫時寫到這了。