這篇文章給大家介紹prometheus 中怎么實現(xiàn)微服務(wù)指標監(jiān)控,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計與策劃設(shè)計,龍勝網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:龍勝等地區(qū)。龍勝做網(wǎng)站價格咨詢:13518219792
服務(wù)上線后我們往往需要對服務(wù)進行監(jiān)控,以便能及早發(fā)現(xiàn)問題并做針對性的優(yōu)化,監(jiān)控又可分為多種形式,比如日志監(jiān)控,調(diào)用鏈監(jiān)控,指標監(jiān)控等等。而通過指標監(jiān)控能清晰的觀察出服務(wù)指標的變化趨勢,了解服務(wù)的運行狀態(tài),對于保證服務(wù)穩(wěn)定起著非常重要的作用
prometheus是一個開源的系統(tǒng)監(jiān)控和告警工具,支持強大的查詢語言PromQL允許用戶實時選擇和匯聚時間序列數(shù)據(jù),時間序列數(shù)據(jù)是服務(wù)端通過HTTP協(xié)議主動拉取獲得,也可以通過中間網(wǎng)關(guān)來推送時間序列數(shù)據(jù),可以通過靜態(tài)配置文件或服務(wù)發(fā)現(xiàn)來獲取監(jiān)控目標
Prometheus 的整體架構(gòu)以及生態(tài)系統(tǒng)組件如下圖所示:
Prometheus Server直接從監(jiān)控目標中或者間接通過推送網(wǎng)關(guān)來拉取監(jiān)控指標,它在本地存儲所有抓取到樣本數(shù)據(jù),并對此數(shù)據(jù)執(zhí)行一系列規(guī)則,以匯總和記錄現(xiàn)有數(shù)據(jù)的新時間序列或生成告警??梢酝ㄟ^ Grafana 或者其他工具來實現(xiàn)監(jiān)控數(shù)據(jù)的可視化
go-zero 框架中集成了基于prometheus的服務(wù)指標監(jiān)控,下面我們通過go-zero官方的示例shorturl來演示是如何對服務(wù)指標進行收集監(jiān)控的:
第一步需要先安裝Prometheus,安裝步驟請參考官方文檔
go-zero默認不開啟prometheus監(jiān)控,開啟方式很簡單,只需要在shorturl-api.yaml文件中增加配置如下,其中Host為Prometheus Server地址為必填配置,Port端口不填默認9091,Path為用來拉取指標的路徑默認為/metrics
Prometheus: Host: 127.0.0.1 Port: 9091 Path: /metrics
編輯prometheus的配置文件prometheus.yml,添加如下配置,并創(chuàng)建targets.json
- job_name: 'file_ds' file_sd_configs: - files: - targets.json
編輯targets.json文件,其中targets為shorturl配置的目標地址,并添加了幾個默認的標簽
[ { "targets": ["127.0.0.1:9091"], "labels": { "job": "shorturl-api", "app": "shorturl-api", "env": "test", "instance": "127.0.0.1:8888" } } ]
啟動prometheus服務(wù),默認偵聽在9090端口
prometheus --config.file=prometheus.yml
在瀏覽器輸入http://127.0.0.1:9090/,然后點擊Status -> Targets即可看到狀態(tài)為Up的Job,并且Lables欄可以看到我們配置的默認的標簽
通過以上幾個步驟我們完成了prometheus對shorturl服務(wù)的指標監(jiān)控收集的配置工作,為了演示簡單我們進行了手動的配置,在實際的生產(chǎn)環(huán)境中一般采用定時更新配置文件或者服務(wù)發(fā)現(xiàn)的方式來配置監(jiān)控目標,篇幅有限這里不展開講解,感興趣的同學請自行查看相關(guān)文檔
go-zero中目前在http的中間件和rpc的攔截器中添加了對請求指標的監(jiān)控。
主要從請求耗時和請求錯誤兩個維度,請求耗時采用了Histogram指標類型定義了多個Buckets方便進行分位統(tǒng)計,請求錯誤采用了Counter類型,并在http metric中添加了path標簽rpc metric中添加了method標簽以便進行細分監(jiān)控。
接下來演示如何查看監(jiān)控指標:
首先在命令行多次執(zhí)行如下命令
curl -i "http://localhost:8888/shorten?url=http://www.xiaoheiban.cn"
打開Prometheus切換到Graph界面,在輸入框中輸入{path="/shorten"}指令,即可查看監(jiān)控指標,如下圖
我們通過PromQL語法查詢過濾path為/shorten的指標,結(jié)果中顯示了指標名以及指標數(shù)值,其中http_server_requests_code_total指標中code值為http的狀態(tài)碼,200表明請求成功,http_server_requests_duration_ms_bucket中對不同bucket結(jié)果分別進行了統(tǒng)計,還可以看到所有的指標中都添加了我們配置的默認指標
Console界面主要展示了查詢的指標結(jié)果,Graph界面為我們提供了簡單的圖形化的展示界面,在實際的生產(chǎn)環(huán)境中我們一般使用Grafana做圖形化的展示
grafana是一款可視化工具,功能強大,支持多種數(shù)據(jù)來源Prometheus、Elasticsearch、Graphite等,安裝比較簡單請參考官方文檔,grafana默認端口3000,安裝好后再瀏覽器輸入http://localhost:3000/,默認賬號和密碼都為admin
下面演示如何基于以上指標進行可視化界面的繪制:
點擊左側(cè)邊欄Configuration->Data Source->Add data source進行數(shù)據(jù)源添加,其中HTTP的URL為數(shù)據(jù)源的地址
點擊左側(cè)邊欄添加dashboard,然后添加Variables方便針對不同的標簽進行過濾篩選比如添加app變量用來過濾不同的服務(wù)
進入dashboard點擊右上角Add panel添加面板,以path維度統(tǒng)計接口的qps
最終的效果如下所示,可以通過服務(wù)名稱過濾不同的服務(wù),面板展示了path為/shorten的qps變化趨勢
關(guān)于prometheus 中怎么實現(xiàn)微服務(wù)指標監(jiān)控就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
文章標題:prometheus中怎么實現(xiàn)微服務(wù)指標監(jiān)控
文章鏈接:http://www.2m8n56k.cn/article16/gpocgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站導航、手機網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、虛擬主機、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)