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