摘要
記錄一下近期添加的網(wǎng)絡(luò)監(jiān)控艺沼。
背景
近期册舞,從產(chǎn)品體驗(yàn)上看,有些業(yè)務(wù)場(chǎng)景的等待時(shí)間有點(diǎn)長(zhǎng)障般,應(yīng)該可以繼續(xù)優(yōu)化调鲸;于是開始分析整體耗時(shí),包括處理邏輯與網(wǎng)絡(luò)耗時(shí)挽荡,業(yè)務(wù)邏輯分析略過藐石,與今天主題沒關(guān)系,這個(gè)網(wǎng)絡(luò)耗時(shí)就復(fù)雜一點(diǎn)定拟,因?yàn)檎麄€(gè)網(wǎng)絡(luò)層是好幾層封裝在一起的于微,需要了解各個(gè)層的耗時(shí)情況,我總不能一個(gè)個(gè)地方去打信息,再查看信息的時(shí)間差株依,不否認(rèn)驱证,這是一個(gè)方法,但它不是“省油的燈”恋腕,原因各位自己YY抹锄,這時(shí)我得想一個(gè)方法,用來監(jiān)控網(wǎng)絡(luò)層荠藤。
思路
為了滿足自己的好奇心伙单,我重新回顧了一下封裝的網(wǎng)絡(luò)層的架構(gòu):
1)對(duì)外一個(gè)代理層
2)中間有控制層(一個(gè)或多個(gè))
3)最內(nèi)部是網(wǎng)絡(luò)協(xié)議層
對(duì)于應(yīng)用層來說,關(guān)心的是請(qǐng)求到回調(diào)的時(shí)長(zhǎng), 而網(wǎng)絡(luò)模塊內(nèi)部的時(shí)間除了核心的網(wǎng)絡(luò)通訊時(shí)間外哈肖,還有多個(gè)控制層的耗時(shí)吻育。
我的思路:對(duì)于同一個(gè)請(qǐng)求,模塊內(nèi)的請(qǐng)求包可以貫穿整個(gè)流程淤井,可以在各個(gè)節(jié)點(diǎn)上打上時(shí)間戳扫沼,最終在代碼層回調(diào)前可得到各個(gè)環(huán)節(jié)的時(shí)間點(diǎn),也就可以得到每層的耗時(shí)時(shí)長(zhǎng)(見下圖)庄吼。
應(yīng)用層關(guān)心的時(shí)長(zhǎng)為 du = T6 - T1
延伸
用這種方式可以監(jiān)測(cè)網(wǎng)絡(luò)層的健康程度缎除,統(tǒng)計(jì)網(wǎng)絡(luò)通訊耗時(shí)等
這個(gè)想法本來只是個(gè)人需求,上線后总寻,數(shù)據(jù)一出來器罐,不僅給客戶端提供了幫助,服務(wù)器也需要利用這些數(shù)據(jù)做相應(yīng)監(jiān)控渐行;
之后又在這一想法的基礎(chǔ)之后增加了一些細(xì)分的監(jiān)控轰坊。
小結(jié)
以上是我的一個(gè)小小經(jīng)歷,也許方法不是最好的祟印,但是對(duì)我是適用的肴沫。