Metrics 指標(biāo)在可觀測(cè)體系的應(yīng)用
可觀測(cè)體系的概念由來(lái)已有,隨著分布式微服務(wù)迅猛發(fā)展,對(duì)可觀測(cè)體系的依賴(lài)也越來(lái)越深,可觀測(cè)體系通常包括 Metrics、Tracing、Logging 三類(lèi)數(shù)據(jù),再外加報(bào)警機(jī)制,即可構(gòu)成完整的監(jiān)控報(bào)警機(jī)制,業(yè)界對(duì)可觀測(cè)也有系統(tǒng)性說(shuō)明,如下:
回到我們?nèi)粘?wèn)題排查,基本路徑大致分為 Detect(檢測(cè))、Troubleshoot(問(wèn)題初步定位)、Pinpoint(精確定位)三個(gè)階段,其分別對(duì)應(yīng)可觀測(cè)的三部分內(nèi)容:Metrics、Traces、Logs,相信讀到這里您已經(jīng)理解 Metrics 指標(biāo)的重要性了,它是我們發(fā)現(xiàn)問(wèn)題的首要手段。
Metrics 指標(biāo)的分類(lèi)
我們希望使用指標(biāo)來(lái)檢測(cè)問(wèn)題,首先我們要定義各種指標(biāo),指標(biāo)的定義多種多樣,不同的業(yè)務(wù)應(yīng)用也都會(huì)有其符合自身要求的一些指標(biāo),但我們?nèi)匀豢梢詫?duì)指標(biāo)做一些粗粒度的分類(lèi),如下:
其中最受關(guān)注的無(wú)疑是核心業(yè)務(wù)指標(biāo),其重要性毋庸置疑,例如所有業(yè)務(wù)都會(huì)具備的三大核心指標(biāo):QPS、成功率、RT,其次是基礎(chǔ)指標(biāo)與其他指標(biāo)。所以任何應(yīng)用一定要保證核心業(yè)務(wù)指標(biāo)準(zhǔn)確與實(shí)時(shí)。同時(shí),搭配基礎(chǔ)指標(biāo)才能對(duì)問(wèn)題發(fā)現(xiàn)實(shí)現(xiàn)事半功倍的效果,尤其是程序運(yùn)行期的一些問(wèn)題。
Metrics 指標(biāo)在網(wǎng)關(guān)場(chǎng)景的應(yīng)用
聚焦于網(wǎng)關(guān)的可觀測(cè)場(chǎng)景,網(wǎng)關(guān)的職責(zé)是高效的將符合某組特性的流量轉(zhuǎn)發(fā)給目標(biāo)服務(wù),核心主要在于對(duì)網(wǎng)絡(luò)流量的處理,三大核心指標(biāo):QPS、成功率、RT 依然是反映服務(wù)核心運(yùn)行狀況的核心指標(biāo)。
值得說(shuō)明的是,在網(wǎng)關(guān)場(chǎng)景中三大指標(biāo)并不能完全真實(shí)反映網(wǎng)關(guān)實(shí)際運(yùn)行狀況,三大指標(biāo)異常抖動(dòng)常常跟后端服務(wù)抖動(dòng)相關(guān)。因此,實(shí)際觀測(cè)中我們將網(wǎng)關(guān)分為 Downstream 指標(biāo)(觀測(cè) Client 側(cè)的指標(biāo)集合)、Upstream 指標(biāo)(觀測(cè)上游 Service 服務(wù)維度的指標(biāo)集合)、路由指標(biāo)(觀測(cè)路由轉(zhuǎn)發(fā)規(guī)則維度的指標(biāo)集合)。同時(shí),網(wǎng)關(guān)作為流量入口還有一些功能性指標(biāo),如解壓縮 GZip、認(rèn)證鑒權(quán) Authz 等指標(biāo)。
實(shí)際應(yīng)用中還會(huì)有其他網(wǎng)絡(luò)指標(biāo)如接手、發(fā)送的數(shù)據(jù)量等,限于篇幅就不進(jìn)行贅述。
MSE 云原生網(wǎng)關(guān)在可觀測(cè)體系的實(shí)踐
在虛擬化時(shí)期的微服務(wù)架構(gòu)下,業(yè)務(wù)通常采用流量網(wǎng)關(guān) + 微服務(wù)網(wǎng)關(guān)兩層架構(gòu),流量網(wǎng)關(guān)負(fù)責(zé)南北向流量調(diào)度和安全防護(hù),微服務(wù)網(wǎng)關(guān)負(fù)責(zé)東西向流量調(diào)度和服務(wù)治理。而在容器和 K8s 主導(dǎo)的云原生時(shí)代,Ingress 成為 K8s 生態(tài)的網(wǎng)關(guān)標(biāo)準(zhǔn),賦予了網(wǎng)關(guān)新使命,使流量網(wǎng)關(guān) + 微服務(wù)網(wǎng)關(guān)合二為一成為可能。MSE 云原生網(wǎng)關(guān)正是在這種背景下誕生,其基于阿里開(kāi)源?Higress[1]?構(gòu)建,在能力不打折的情況下將兩層網(wǎng)關(guān)二合一,不僅可以節(jié)省 50% 的資源部署成本,還極大降低運(yùn)維及使用成本。
MSE 云原生網(wǎng)關(guān)[2]與阿里云應(yīng)用實(shí)時(shí)監(jiān)控服務(wù) ARMS、Prometheus 監(jiān)控深度集成,在網(wǎng)關(guān)場(chǎng)景下提供 Metrics、Tracing、Logging 完整可觀測(cè)體系,為用戶(hù)帶來(lái)一站式可觀測(cè)體系能力,降低可觀測(cè)的使用門(mén)檻。
接下來(lái)我們簡(jiǎn)要介紹下 Metrics 指標(biāo)在 MSE 云原生網(wǎng)關(guān)的實(shí)際應(yīng)用。
MSE 云原生網(wǎng)關(guān) Metrics 指標(biāo)大盤(pán)介紹
基礎(chǔ)指標(biāo)
對(duì)于 CPU、Memory 等基礎(chǔ)指標(biāo)建立了獨(dú)立指標(biāo)大盤(pán)“資源監(jiān)控”,方便一鍵查看網(wǎng)關(guān)當(dāng)前的資源使用情況。
核心指標(biāo)
對(duì)于核心的業(yè)務(wù)指標(biāo)也構(gòu)建了獨(dú)立指標(biāo)大盤(pán),包括“全局看板”、“業(yè)務(wù) TOP 榜”、“訪(fǎng)問(wèn)中心”、“灰度對(duì)比看板”。
全局看板
“全局看板”提供網(wǎng)關(guān)整體的指標(biāo)大盤(pán),幫忙用戶(hù)從全局視角查看網(wǎng)關(guān)當(dāng)前的運(yùn)行情況。
業(yè)務(wù)TOP榜
提供網(wǎng)關(guān)視角的當(dāng)前 Top 10 的后端服務(wù)處理請(qǐng)求的大盤(pán),幫忙用戶(hù)快速查看當(dāng)前高吞吐的服務(wù)詳情。
訪(fǎng)問(wèn)中心
提供網(wǎng)關(guān)當(dāng)前 Downstream、Upstream、Service 與功能性的指標(biāo)大盤(pán),指標(biāo)有 Downstream 的 QPS\RT\成功率\連接數(shù)等,也提供 Upstream 的連接數(shù)、RT P99、RT P90 等,而且還有 GZIP 壓縮、鑒權(quán)等指標(biāo)。
灰度對(duì)比看板
提供使用多服務(wù)方案做灰度發(fā)布時(shí)對(duì)比查看流量情況。
細(xì)粒度服務(wù)級(jí)的指標(biāo)
MSE 云原生網(wǎng)關(guān)也提供單個(gè)服務(wù)級(jí)的指標(biāo),例如常規(guī)的在單個(gè)服務(wù)中劃分多個(gè)版本進(jìn)行灰度,然后對(duì)各個(gè)版本做指標(biāo)觀測(cè)。
細(xì)粒度路由級(jí)的指標(biāo)
在網(wǎng)關(guān)中路由規(guī)則代表包含某些特征的一組流量,通常運(yùn)維時(shí)或者問(wèn)題定位時(shí)我們也需要能夠查看具體的某組路由流量情況,MSE 云原生網(wǎng)關(guān)也提供路由級(jí)的指標(biāo)。
MSE 云原生網(wǎng)關(guān)告警規(guī)則介紹
Metrics 指標(biāo)是用于觀測(cè)應(yīng)用運(yùn)行態(tài)的重要手段,在指標(biāo)異常時(shí)我們希望能主動(dòng)發(fā)現(xiàn),這就離不開(kāi)告警,MSE 云原生網(wǎng)關(guān)集成阿里云 ARMS 后也內(nèi)置了一些告警模板,內(nèi)置告警模板是我們根據(jù)日常網(wǎng)關(guān)運(yùn)維經(jīng)驗(yàn)提煉的一些核心告警規(guī)則,例如網(wǎng)關(guān)的核心指標(biāo):CPU 使用率、內(nèi)存使用率、請(qǐng)求成功率、請(qǐng)求 RT 等,方便用戶(hù)快速配置告警,同時(shí)用戶(hù)也可以根據(jù)自身需求自定義新的告警模板,這里就不再一一展開(kāi)。
使用同比/環(huán)比數(shù)據(jù)發(fā)現(xiàn)異常
網(wǎng)關(guān)作為流量入口,在單一服務(wù)的異常中,異常流量造成的絕對(duì)值變化可能并不明顯,此時(shí)配置同比/環(huán)比的告警是相當(dāng)重要的,比如配置服務(wù)流量同比下跌,錯(cuò)誤數(shù)同比上漲等告警,能夠有效發(fā)現(xiàn)絕對(duì)值變化不明顯,同一維度相對(duì)變化明顯的異常。
Metrics 指標(biāo)在網(wǎng)關(guān)問(wèn)題排查中的應(yīng)用
問(wèn)題 1:后端服務(wù)抖動(dòng)導(dǎo)致的成功率下降
網(wǎng)關(guān)作為流量入口,在后端服務(wù)出現(xiàn)rt抖動(dòng)時(shí),網(wǎng)關(guān)往往是客戶(hù)想到的首要排查對(duì)象,如何基于 Metrics 指標(biāo)在網(wǎng)關(guān)場(chǎng)景中快速定位問(wèn)題是非常重要的,如下圖是基于 MSE 云原生網(wǎng)關(guān)提供的指標(biāo)大盤(pán)來(lái)快速定位問(wèn)題的大致流程。
后端服務(wù)抖動(dòng)常見(jiàn)的原因有下面兩點(diǎn):
- 由于 Java gc 或者類(lèi)加載導(dǎo)致紀(jì)錄的耗時(shí)和實(shí)際有偏差。
- 后端應(yīng)用內(nèi)核參數(shù)配置不合理無(wú)法及時(shí) accept 連接,導(dǎo)致網(wǎng)關(guān)紀(jì)錄的服務(wù)耗時(shí)迅速增長(zhǎng)。
問(wèn)題 2:后端服務(wù)新增灰度版本后請(qǐng)求RT大幅增加
單服務(wù)使用不同版本進(jìn)行灰度測(cè)試的場(chǎng)景很常見(jiàn),例如下面有服務(wù) go-httpbin,當(dāng)前版本是 go-httpbin-v1,新增了 go-httpbin-v2 版本進(jìn)行新功能灰度測(cè)試。
go-httpbin-v2 版本上線(xiàn)后用戶(hù)反饋 go-httpbin 服務(wù)的請(qǐng)求處理時(shí)間變慢了,即請(qǐng)求 RT 變長(zhǎng)了,如何通過(guò)觀測(cè)指標(biāo)快速查看新版本的請(qǐng)求情況呢?可以通過(guò) MSE 云原生網(wǎng)關(guān)路由級(jí)的指標(biāo)查看,如下圖:
鏈接網(wǎng)關(guān)指標(biāo)觀測(cè)場(chǎng)景下,如何接入阿里云 Prometheus 監(jiān)控
Prometheus 監(jiān)控支持企業(yè)云監(jiān)控集成和云產(chǎn)品自監(jiān)控集成,您可以通過(guò) Prometheus 監(jiān)控提供的指標(biāo)、大盤(pán)以及告警來(lái)查看這些云產(chǎn)品的監(jiān)控?cái)?shù)據(jù)。目前,您可以在對(duì)應(yīng)的 MSE 云原生網(wǎng)關(guān)云產(chǎn)品控制臺(tái)開(kāi)啟 Prometheus 監(jiān)控,開(kāi)啟之后,該云產(chǎn)品會(huì)顯示在 Prometheus 服務(wù)的云產(chǎn)品自監(jiān)控集成頁(yè)面的已集成區(qū)域,則表示該云產(chǎn)品已成功接入。
- 登錄 Prometheus 控制臺(tái)。
- 在左側(cè)導(dǎo)航欄單擊實(shí)例列表,進(jìn)入 Prometheus 監(jiān)控的實(shí)例列表頁(yè)面。
- 在實(shí)例列表中單擊實(shí)例名稱(chēng)為云服務(wù)實(shí)例的 Prometheus 實(shí)例,進(jìn)入集成中心頁(yè)面。
4.您可以在對(duì)應(yīng)的 MSE 云原生網(wǎng)關(guān)云產(chǎn)品控制臺(tái)開(kāi)啟 Prometheus 監(jiān)控,開(kāi)啟之后,該云產(chǎn)品會(huì)顯示在 Prometheus 服務(wù)的云產(chǎn)品自監(jiān)控集成頁(yè)面的已集成區(qū)域,則表示該云產(chǎn)品已成功接入,即可在 Prometheus 看到相關(guān)大盤(pán)。
自建 Prometheus 與阿里云 Prometheus 監(jiān)控的優(yōu)劣對(duì)比
Prometheus 作為目前最主流的可觀測(cè)開(kāi)源項(xiàng)目之一,已經(jīng)被眾多企業(yè)所廣泛應(yīng)用。但在實(shí)際生產(chǎn)過(guò)程中,還是遇到各種各樣問(wèn)題,其中包括:
- 由于安全、組織管理等因素,用戶(hù)業(yè)務(wù)通常部署在多個(gè)相互隔離的 VPC,需要在多個(gè) VPC 內(nèi)都重復(fù)、獨(dú)立部署 Prometheus,導(dǎo)致部署和運(yùn)維成本高。
- 每套完整的自建觀測(cè)系統(tǒng)都需要安裝并配置 Prometheus、Grafana、AlertManager 等組件,部署過(guò)程復(fù)雜、實(shí)施周期長(zhǎng),并且每次升級(jí)都需要對(duì)每個(gè)組件進(jìn)行維護(hù)。
- 隨著監(jiān)控規(guī)模不斷擴(kuò)大,資源消耗呈非線(xiàn)性快速增加,系統(tǒng)可用性無(wú)法得到保障。
- 對(duì)于云原生網(wǎng)關(guān),自建 Prometheus 無(wú)法監(jiān)控到,導(dǎo)致無(wú)法實(shí)現(xiàn)一站式、全局視角的監(jiān)控建設(shè)。
- 開(kāi)源分享的網(wǎng)關(guān)大盤(pán)不夠?qū)I(yè),卻少開(kāi)箱即用的豐富指標(biāo),不能幫助用戶(hù)更迅速的的了解網(wǎng)關(guān)的整體運(yùn)行
針對(duì)以上問(wèn)題,阿里云 Proemtheus 監(jiān)控進(jìn)行了以下幾個(gè)方面的優(yōu)化:
一、性能強(qiáng)化&降低資源消耗,壓降 IT 運(yùn)維成本
為了進(jìn)一步進(jìn)行性能優(yōu)化,阿里云 Prometheus 監(jiān)控將 Agent 部署在用戶(hù)側(cè),保留原生采集能力同時(shí), 盡量使用最少資源;通過(guò)采集存儲(chǔ)分離架構(gòu),提高整體性能;采集組件優(yōu)化,提升單副本采集能力,降低資源消耗;通過(guò)多副本橫向擴(kuò)展均衡分解采集任務(wù),實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)縮,解決開(kāi)源水平擴(kuò)展問(wèn)題。采集/數(shù)據(jù)處理/存儲(chǔ)組件支持多副版本,保證核心數(shù)據(jù)鏈路高可用;基于集群規(guī)模可直接進(jìn)行彈性擴(kuò)容;支持?jǐn)?shù)據(jù)重傳,徹底解決丟棄邏輯弊病,確保數(shù)據(jù)完整性與準(zhǔn)確性。
同時(shí),為了應(yīng)對(duì)大規(guī)模數(shù)據(jù)、長(zhǎng)時(shí)間區(qū)間的查詢(xún)場(chǎng)景,通過(guò) DAG 執(zhí)行優(yōu)化、算子下推,提升大規(guī)模數(shù)據(jù)查詢(xún)性能并支持長(zhǎng)時(shí)間區(qū)間秒級(jí)查詢(xún);通過(guò) Global DataSource 和 Global View 實(shí)現(xiàn)對(duì)多集群統(tǒng)一監(jiān)控與跨集群聚合查詢(xún)。
在提供企業(yè)級(jí)能力強(qiáng)化同時(shí),全方位降低企業(yè)使用 Prometheus 的 IT 運(yùn)維成本。通過(guò)包年包月、按量付費(fèi)等多種計(jì)費(fèi)方式讓費(fèi)用支出與規(guī)劃更加清晰與靈活,相較于開(kāi)源版本節(jié)省 37% 以上。
二、與 MSE 云原生網(wǎng)關(guān)等云服務(wù)深度集成
云產(chǎn)品在各自控制臺(tái)都提供自身產(chǎn)品的可觀測(cè)性,但這些云產(chǎn)品的指標(biāo)及看板散落在各控制臺(tái),且無(wú)法進(jìn)行精細(xì)化的指標(biāo)數(shù)據(jù)應(yīng)用。Prometheus 服務(wù)提供云產(chǎn)品監(jiān)控功能,將這些數(shù)據(jù)進(jìn)行統(tǒng)一展現(xiàn)、查詢(xún)、告警,為運(yùn)維團(tuán)隊(duì)提供更加便捷的日常運(yùn)維監(jiān)控界面。
三、Grafana 看板增強(qiáng),讓云服務(wù)監(jiān)控更簡(jiǎn)單
想要更好、更快速的呈現(xiàn)相關(guān)指標(biāo)圖表,阿里云 Prometheus 監(jiān)控預(yù)置 Grafana 組件,預(yù)置常見(jiàn)云服務(wù)、應(yīng)用等看板模板,如應(yīng)用實(shí)時(shí)監(jiān)控服務(wù) ARMS、云監(jiān)控 CMS、日志服務(wù) SLS、阿里云 Elasticsearch 等云服務(wù),提供各種云服務(wù)的數(shù)據(jù)源配置及預(yù)置大盤(pán),實(shí)現(xiàn)各種可觀測(cè)數(shù)據(jù)的統(tǒng)一展示。如容器、消息隊(duì)列 Kafka 等,進(jìn)一步提供 GrafanaPro 大盤(pán),幫助運(yùn)維進(jìn)行更加精細(xì)化的指標(biāo)觀測(cè)。在預(yù)置看板之外,可以通過(guò) Grafana 官方自由增加新插件,添加新的可視化模板以及數(shù)據(jù)源,進(jìn)一步滿(mǎn)足個(gè)性化運(yùn)維監(jiān)控需求。
總結(jié) & 產(chǎn)品優(yōu)惠
MSE 云原生網(wǎng)關(guān)默認(rèn)提供了豐富的 Metrics 指標(biāo)大盤(pán),配合阿里云 Prometheus 監(jiān)控提供開(kāi)箱即用的完整可觀測(cè)性能力,能夠幫助用戶(hù)快捷、高效的搭建自身的微服務(wù)網(wǎng)關(guān)與對(duì)應(yīng)的可觀測(cè)體系。后續(xù)我們會(huì)持續(xù)在產(chǎn)品的性能、易用性、穩(wěn)定性和生態(tài)方面持續(xù)打磨,以便用戶(hù)無(wú)門(mén)檻的享受到云原生技術(shù)的紅利。目前,Prometheus 監(jiān)控及 MSE 提供多種優(yōu)惠活動(dòng):
- Prometheus 監(jiān)控 包年包月中小規(guī)格首月免費(fèi)
- MSE 云原生網(wǎng)關(guān)、注冊(cè)配置中心專(zhuān)業(yè)版首購(gòu)8折優(yōu)惠,首購(gòu)1年及以上7折優(yōu)惠
相關(guān)鏈接
[1] Higress
http://higress.io/zh-cn/
[2] MSE 云原生網(wǎng)關(guān)
https://www.aliyun.com/product/aliware/mse?spm=5176.19720258.J_3207526240.22.129876f4JeRX17&scm=20140722.S_function@@product@@218483._.ID_function@@product@@218483-RL_mse-LOC_bar-OR_ser-V_2-P0_0
作者:如葑
原文鏈接文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-697779.html
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-697779.html
到了這里,關(guān)于統(tǒng)一觀測(cè)丨使用 Prometheus 監(jiān)控云原生網(wǎng)關(guān),我們?cè)撽P(guān)注哪些指標(biāo)?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!