交易黃金鏈路阿波羅移動(dòng)端異常監(jiān)控系統(tǒng)
?概述
01業(yè)務(wù)背景及目的
一般的異常數(shù)據(jù)上報(bào)只支持簡(jiǎn)單的接口狀態(tài)碼是否異常等基礎(chǔ)上報(bào),對(duì)于某些核心字段,下發(fā)值缺失導(dǎo)致崩潰異常不能更精細(xì)的定位。為此,阿波羅移動(dòng)端設(shè)計(jì)了此業(yè)務(wù)異常監(jiān)控sdk,使前后端快速配合定位問題,及時(shí)監(jiān)控捕捉異常。通過制定一套完整的流程對(duì)接口異常的情況進(jìn)行智能化的處理和上報(bào),以達(dá)到:
- 有接口異常就可以輕松的被捕獲和上報(bào)到后臺(tái),期間無需開發(fā),只需要做一些基礎(chǔ)配置
- 同時(shí)異常接口的信息參數(shù)(請(qǐng)求參數(shù)、用戶手機(jī)環(huán)境、返回參數(shù)等)完整被捕獲,可以在后臺(tái)中看到,幫助開發(fā)人員進(jìn)行問題復(fù)現(xiàn)和問題解決。
- 定向?qū)δ承C(jī)型、用戶、時(shí)間段進(jìn)行下發(fā)數(shù)據(jù)監(jiān)控
02可提供的能力
sdk工作流程及配置規(guī)范
01工作流程
通過在配置平臺(tái)上的配置組合實(shí)現(xiàn)異常捕捉功能:第一個(gè)配置是接口開關(guān)規(guī)范,開關(guān)規(guī)范是使這套流程變得更加靈活,可以按照接口來開啟是否要異常上報(bào)功能;第二個(gè)配置是定向監(jiān)控規(guī)范,通過配置想要監(jiān)控的參數(shù)定向獲取符合條件的下發(fā)全量數(shù)據(jù);第三個(gè)配置是接口規(guī)則配置規(guī)范,因?yàn)槊恳粋€(gè)接口的數(shù)據(jù)是完全不同的,按照這套接口配置規(guī)范,研發(fā)人員可以按照接口來配置需要校驗(yàn)的關(guān)鍵節(jié)點(diǎn)及數(shù)據(jù)類型等信息。開發(fā)人員按照規(guī)范配置完成后,將接口數(shù)據(jù)相關(guān)信息(入?yún)⒑统鰠ⅲ﹤鹘o本系統(tǒng)提供的接口中。本系統(tǒng)將通過規(guī)范的解析和接口數(shù)據(jù)進(jìn)行雙重校驗(yàn),校驗(yàn)后如果發(fā)現(xiàn)異常進(jìn)行異常上報(bào),上報(bào)時(shí)會(huì)捕獲當(dāng)前的用戶環(huán)境,如機(jī)型、系統(tǒng)型號(hào)等一同上報(bào)。最后開發(fā)人員可在上報(bào)后臺(tái)看到異常信息,并且根據(jù)全面的信息參數(shù)進(jìn)行問題排查和解決。
02流程圖
校驗(yàn)異常主要流程如下:
03配置規(guī)范
1、開關(guān)的配置規(guī)范:
- 總開關(guān)配置:一鍵關(guān)閉所有的接口。
- 接口開關(guān)配置:每一個(gè)接口單獨(dú)配置開啟或關(guān)閉。
2、異常校驗(yàn)配置規(guī)范:
- 配置整體為一個(gè)json格式,方便解析和傳輸。
- 如需校驗(yàn)數(shù)據(jù)類型,使用type關(guān)鍵字。
- 如需校驗(yàn)數(shù)據(jù)的值,使用value關(guān)鍵字,如有value則強(qiáng)校驗(yàn)值。
- 如有層級(jí)校驗(yàn)關(guān)系,使用subItems關(guān)鍵字,來展示數(shù)據(jù)結(jié)構(gòu)的層級(jí)關(guān)系。
規(guī)則中的關(guān)鍵字具體說明如下:
當(dāng)接口開關(guān)和接口規(guī)則配置都已經(jīng)在配置后臺(tái)配置完成后,開發(fā)人員需要在調(diào)用接口完成的代碼中調(diào)用本方案提供的api,并且傳入接口入?yún)⒑徒涌诔鰠ⅰ?/p>
3、在上述功能基礎(chǔ)上可以按需求增加<定向監(jiān)控>判斷能力
移動(dòng)配置中配置定向過濾規(guī)范
{
"osVersion":"14.4/Android11",//系統(tǒng)版本
"pin":"xxxxxx",//用戶標(biāo)識(shí)
"functionId":"ccart",//接口名
"startTime":"2022-03-01 17:51:54",//開始時(shí)間
"endTime":"2022-03-01 18:51:54"http://結(jié)束時(shí)間
…………
}
定向監(jiān)控邏輯:
- 命中以上配置,不進(jìn)行異常驗(yàn)證,進(jìn)行全量數(shù)據(jù)上報(bào)
- 沒有命中以上配置,則正常進(jìn)行上述異常上報(bào)邏輯
04異常監(jiān)控系統(tǒng)—校驗(yàn)?zāi)芰κ纠?/h4>
05異常監(jiān)控系統(tǒng)—邏輯能力示例
性能驗(yàn)證
測(cè)試數(shù)據(jù):接口數(shù)據(jù)量312kb,包含購物車接口中100+商品(單品、套裝)校驗(yàn)配置包含條件校驗(yàn)、值校驗(yàn)、多值校驗(yàn)、類型校驗(yàn)、空校驗(yàn)等基本全覆蓋校驗(yàn)。
結(jié)論:業(yè)務(wù)異常監(jiān)控在正常使用中,對(duì)用戶感知較小,對(duì)設(shè)備性能影響小。
接入業(yè)務(wù)方案例分享
時(shí)間:2021年11.11大促期間
案例一 主動(dòng)發(fā)現(xiàn)問題:
在大促期間業(yè)務(wù)異常日志同時(shí)作為有效的監(jiān)控手段,通過監(jiān)控日志發(fā)現(xiàn),購物車中的刪除商品的接口一天內(nèi)會(huì)出現(xiàn)4-5次的空車情況,屬于個(gè)別異常原因,主動(dòng)聯(lián)系產(chǎn)品和服務(wù)端,推動(dòng)排查問題原因,有效避免后期客訴問題。
案例二 快速定位問題:
在大促期間安卓個(gè)別機(jī)型中發(fā)現(xiàn)在訂單詳情點(diǎn)擊去支付無法跳轉(zhuǎn)到收銀臺(tái)頁面,呈現(xiàn)出用戶點(diǎn)擊無反應(yīng)的狀態(tài),因在大促期間線上服務(wù)端日志已關(guān)閉,前端通過業(yè)務(wù)異常日志進(jìn)行查看,快速定位到問題的原因。