????????上一篇文章講解了EMAS平臺(tái)“移動(dòng)測(cè)試”中的兼容性測(cè)試、功能測(cè)試饺律、性能測(cè)試窃页、遠(yuǎn)程真機(jī)和用例管理等內(nèi)容,幫助讀者了解到移動(dòng)測(cè)試的重要性复濒。這篇文章我們將介紹如何使用阿里云的ARMS平臺(tái)脖卖,來(lái)對(duì)業(yè)務(wù)進(jìn)行實(shí)時(shí)監(jiān)控,本篇文章也是整個(gè)系列的的最后一篇巧颈。
????????應(yīng)用實(shí)時(shí)監(jiān)控也是運(yùn)維工作的重要環(huán)節(jié)畦木,之前老系統(tǒng)都是運(yùn)維自行搭建的,新系統(tǒng)我們決定使用阿里云的應(yīng)用實(shí)時(shí)監(jiān)控服務(wù) ARMS 來(lái)協(xié)助運(yùn)維人員砸泛,對(duì)軟件項(xiàng)目進(jìn)行實(shí)時(shí)監(jiān)控十籍,能有效的幫助企業(yè)實(shí)現(xiàn)全棧式的性能監(jiān)控和端到端的全鏈路追蹤診斷蛆封,簡(jiǎn)化運(yùn)維人員工作量,及時(shí)定位到問(wèn)題所在妓雾,方便高效娶吞。
? ? ? ? 下面從幾個(gè)方面來(lái)進(jìn)行講解:
? ? ? ? 一、什么是應(yīng)用實(shí)時(shí)監(jiān)控服務(wù)ARMS械姻?
????????應(yīng)用實(shí)時(shí)監(jiān)控服務(wù) (Application Real-Time Monitoring Service) 作為一款云原生可觀測(cè)產(chǎn)品平臺(tái)妒蛇,包含應(yīng)用監(jiān)控、前端監(jiān)控楷拳、Prometheus監(jiān)控绣夺、云撥測(cè)、Grafana服務(wù)欢揖、告警管理等一系列子產(chǎn)品陶耍。其覆蓋瀏覽器、小程序她混、APP烈钞、分布式應(yīng)用、容器等不同可觀測(cè)環(huán)境與場(chǎng)景坤按,幫助企業(yè)實(shí)現(xiàn)全棧性能監(jiān)控與端到端追蹤診斷毯欣。提高監(jiān)控效率,減少運(yùn)維工作量臭脓。
? ? ? ? 二酗钞、如何把應(yīng)用接入ARMS?
? ? ? ? 之前我們?cè)贓DAS里面来累,把微服務(wù)部署上去后砚作,在每個(gè)服務(wù)的“應(yīng)用監(jiān)控”菜單中,找到“高級(jí)監(jiān)控”嘹锁,點(diǎn)擊后葫录,可以看到ARMS的入口,點(diǎn)擊“跳轉(zhuǎn)到ARMS應(yīng)用監(jiān)控”领猾,就打開(kāi)了ARMS控制臺(tái)压昼。
? ? ? ? 1、接入應(yīng)用
? ? ? ? 點(diǎn)擊“接入應(yīng)用”瘤运,在跳出對(duì)話框中,選擇合適的應(yīng)用程序匠题,這里我選擇Java應(yīng)用拯坟,然后會(huì)提示如何接入ARMS的詳細(xì)步驟。
? ? ? ? 2韭山、下載Agent
? ? ? ? 有兩種方法郁季,我通過(guò)阿里云的workbench方式登錄到ECS上冷溃,通過(guò)wget方式下載Agent,注意要使用Agent必須要打開(kāi)多個(gè)端口梦裂,確保使用的云服務(wù)器ECS實(shí)例的安全組已開(kāi)放8442似枕、8443、8883年柠、9092或9093端口的TCP出方向權(quán)限凿歼。這些在安全組中設(shè)置。
? ? ? ? 3冗恨、解壓Agent
? ??????進(jìn)入Agent壓縮包所在目錄并將其解壓至任意工作目錄下答憔。
????????unzip ArmsAgent.zip -d /myworkspace/
? ? ? ? 4、獲取AppName以及LicenseKey參數(shù)
? ? ? ? 5掀抹、配置參數(shù)虐拓,并重新啟動(dòng)微服務(wù)。
? ? ? ? 根據(jù)阿里云提示保存好這兩個(gè)參數(shù)傲武,然后打開(kāi)ECS命令行蓉驹,直接再重新啟動(dòng)服務(wù)即可。
? ? ? ? java?-javaagent:./test/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=ebd73vz7p2@a7a -Darms.appName=test-server -jar demo.jar
? ? ? ? 6揪利、啟動(dòng)成功后态兴,稍等片刻,再ARMS應(yīng)用列表中土童,如果能看到有應(yīng)用列表就代表成功了诗茎,應(yīng)用進(jìn)入了ARMS監(jiān)控范圍。
? ? ? ? 三献汗、如何在ARMS中進(jìn)行業(yè)務(wù)實(shí)時(shí)監(jiān)控
? ? ? ? 通過(guò)上面兩步后敢订,運(yùn)維工程師可以閑下來(lái)買(mǎi)杯咖啡了,其他就交給ARMS助手了罢吃,后面只要邊喝咖啡楚午,邊看監(jiān)控界面即可以了解到應(yīng)用程序的所有情況,真是太nice了尿招。
????????ARMS應(yīng)用監(jiān)控能夠自動(dòng)發(fā)現(xiàn)和監(jiān)控應(yīng)用代碼中常見(jiàn)的Web框架和RPC框架矾柜,并自動(dòng)統(tǒng)計(jì)Web接口和RPC接口的調(diào)用量、響應(yīng)時(shí)間就谜、錯(cuò)誤數(shù)等指標(biāo)怪蔑。
? ? ? ? 在界面中,可以看到異常信息丧荐,及時(shí)定位到問(wèn)題缆瓣,其實(shí)最有用的,我感覺(jué)還是慢SQL虹统,很多應(yīng)用程序慢弓坞,是因?yàn)镾QL語(yǔ)句執(zhí)行的慢隧甚,在監(jiān)控中都會(huì)顯示出來(lái)是哪個(gè)SQL執(zhí)行慢了,花了多少時(shí)間渡冻,這樣可以針對(duì)這些地方進(jìn)行調(diào)優(yōu)戚扳。
? ? ? ? 還有實(shí)時(shí)診斷功能,當(dāng)開(kāi)啟實(shí)時(shí)診斷后族吻,ARMS應(yīng)用監(jiān)控會(huì)持續(xù)監(jiān)控應(yīng)用5分鐘帽借,并在這5分鐘內(nèi)全量上報(bào)調(diào)用鏈數(shù)據(jù)。接下來(lái)呼奢,您就能以出現(xiàn)性能問(wèn)題的調(diào)用鏈路為起點(diǎn)宜雀,通過(guò)方法棧瀑布圖和線程剖析等功能定位問(wèn)題原因。
? ? ? ? 所以ARMS平臺(tái)是一款優(yōu)秀的監(jiān)控平臺(tái)握础,我記得之前開(kāi)發(fā)辐董,這些平臺(tái)都是自己搭建的,現(xiàn)在都有現(xiàn)成的阿里云平臺(tái)可以使用了禀综,應(yīng)該來(lái)說(shuō)简烘,技術(shù)越來(lái)越先進(jìn),給我們程序員也騰出不少時(shí)間定枷,可以好好的做其他更有意義的事情孤澎。如果您對(duì)本文感興趣,可以在評(píng)論中留言欠窒,謝謝覆旭!
????????本系列文章也告一個(gè)段落了,最近都放開(kāi)了岖妄,祝大家早日康復(fù)型将,我們明年再見(jiàn)。