這是介紹 Prometheus 的鐵人賽系列文。
但我不是資料庫大師,也不是 DevOps 大師。內容都是現學現賣。
如有疏漏錯誤不詳之處,還請各位賢達多多留言指教<(_ _)>,我會盡力補正。
本系列文預計會有十幾個小題,每個小題會以問答的方式呈現。
首先會有一篇敘述文章,仔細說明我們想知道什麼、解決什麼問題。
接著會有一到兩篇對應的文章,作為解答和舉例。
目前計劃如下
雖然第 0 天還沒介紹 prometheus 是什麼,但為了水一下內容,就先來說明之後實驗用的 prometheus 環境如何架設。
架構大致如圖。
打開教學 https://prometheus.io/docs/prometheus/latest/getting_started/
prometheus.yml
設定檔./prometheus --config.file=prometheus.yml
data
資料夾佔據的空間增加./pushgateway
prometheus.yml
設定檔,將 pushgateway 加入輪詢標的。scrape_configs:
- job_name: "push_gateway"
static_configs:
- targets: ["localhost:9091"]
架好 pushgateway 後,就可以直接用 curl 推資料到 localhost:9091
,等 prometheus 從 localhost:9091/metrics
拉進資料庫。
但手寫 curl 還是不太方便,我們可以用比較友善的python 套件。
sudo apt install python3-prometheus-client
為了研究方便,我無可避免會想在 prometheus 執行時插入我的程式碼。
所以自行編譯一次。各位讀者應該沒必要嘗試。
git clone https://github.com/prometheus/prometheus.git
(確認為最新版本)make
過程會裝新版的 golang, npmgo test
失敗可以先不理它。有出現 prometheus 執行檔就行。./prometheus --config.file=prometheus.yml
比照確認沒有問題。