近日,友盟+將原有移動統計的錯誤分析模塊升級為U-APM應用性能監控平臺,助力App開發者深入了解應用的性能和穩定性,高效提升應用質量。
一、為什么要做應用性能監控?
首先,我們要知道應用性能監控具體指什么?以及目的:
監控是一套完整的“監視+報警”的系統。對于像我們這樣的App開發者來說,應用性能監控是衡量App的第一道關卡,如果應用的質量不好,會給用戶帶來最直接的體驗傷害。App上線后,開發者是無法7*24實時獲取到用戶使用及體驗情況的,這時就需要一套優質的監控工具。
那么,我們到底需要監控哪些指標?
安卓和iOS的客戶端監控指標就有很多不同,比如說安卓需要的是Java、Native、ANR錯誤等等,iOS需要的是Objective-C、Swift、C++層的錯誤等等。
在定義錯誤指標上,最基礎的是不同類型的錯誤數,如果考慮到錯誤數與整體應用使用量的對比,可以考慮用比值的方式,比如可以定義錯誤率:
如果要關注錯誤的發生次數,及錯誤的影響用戶數,則可以在錯誤數的基礎上,根據用戶排重計算得來影響用戶數。
如何定義獨立用戶呢?我們可以考慮用設備ID辨別,比如imei、idfa、AndroidID等等,如果這些信息很難獲取,也可以使用業務上的用戶ID,比如登錄賬號,會員名等。除此之外,使用第三方SDK提供的設備識別定義ID也是個不錯的選擇。在使用這類ID排重后,就可以得到錯誤的影響用戶數。
如果我們已知錯誤的影響用戶數,但無法確定它的影響范圍占比,則可以看以下這個指標:
總結下來,我們可以統計不同類型錯誤在某一個時間范圍內的錯誤數、錯誤率、影響用戶數、影響用戶占比等指標。在指標的細化分類上,我們還可以用不同的維度定義監控,比如版本號。
二、如何靈活地制定屬于你的告警計劃?
我們先請您做個小測驗來判斷下您的監控告警類型(一共5道題,僅需1.5分鐘)
規則如下:A選項記5分,B選項記10分,C選項記15分,D選項記20分
Q1: 請問您的產品目前處于什么階段?
A: 已經上線,處于比較穩定的狀態,對監控告警的需求較低
B: 還在開發階段,需要捕捉一些測試中的錯誤,對監控告警的需求一般
C: 剛剛上線,整體來說比較穩定,對監控告警的需求較高
D: 剛剛上線,效果未知,非常需要7*24小時實時關注,對監控告警的需求非常高
Q2: 請問您在您的公司/部門的職務是什么?
A:領導者,關注應用的質量做得如何
B:運維人員,負責監控整體應用性能的線上問題監督官
C:測試人員,負責應用發版前的質量把控
D:安卓/iOS端的客戶端開發人員
Q3: 請問您所屬團隊有多少人在關注應用性能質量,并參與其中呢?
A: 1,光桿司令干活靠自己
B:2~5人,小型開發團隊
C:6~25人,相互打配合,一起優化應用質量
D:25+,超大型的開發團隊,不謙虛的說算是行業龍頭
Q4: 您日常關注哪些應用性能監控指標:
A: 最基本的錯誤數就可以
B:考慮到客戶端影響的用戶使用范圍,在上述的基礎上需要監控影響的用戶數以及占比
C:在上述的錯誤數以及影響用戶的基礎上,還要考慮各個版本的分布
D:需要制定組合型的告警規則:比如:錯誤數>100且錯誤率>1%或者影響用戶數比1天前多1%時觸發告警,也要考慮版本分布
Q5: 請問您對告警的通知方式有精細化設置的要求么?
A:沒什么要求,只要能收到就行
B:在時間上有一些要求,半夜不想被打擾
C:在通道上有一些要求,需要郵件或者特定的辦公聊天軟件
D:對時間和觸達通道都有要求
三、如何設置告警計劃呢?
以上的分加總,請先判定下您的測驗總分(A選項記5分,B選項記10分,C選項記15分,D選項記20分),來看您的App在下面哪個監控告警需求等級范圍內:(數據在哪個范圍?還是監控告警在哪個層級?)
熱血青銅(25~50分):您屬于監控告警的初級階段使用者,您在日常工作中無需非常精細地查看各種錯誤的發生狀態。可能是由于您的應用還在初始階段,或者您位高權重,無需親自修復告警信息,只需要整體監控就好。請查看下文中的方案1
英勇黃金(50~75分):您屬于監控告警的中級階段使用者,您或者您的團隊已經有了監控告警的意識,并且在日常工作中會關注到實時的應用質量情況。您已經可以用一定精細化的規則設置告警了,請跳轉至方案2
榮耀王者(75~100分):您已經屬于監控告警的高能玩家了,只需要一點點引導,就可以成為監控告警界的“超級王牌”了
根據上述測驗的分值高低,您可以判別您所需要的告警設置的難易,整體分為下面幾個方案,實現程度由易到難。如果您想學習最全面的告警設置功能,請直接跳轉到方案3哦
方案1:簡易型--整體應用質量監控
作為最初級的告警設置,您只需要考慮兩個問題:
a. 我應該在什么情況下收到告警?
b.我如何能收到應用告警消息呢?
解決第一個問題,您可以考慮最簡單的狀態,只要有錯誤我就要收到預警,那么只要設置錯誤數>0的條件就可以解決。如果您覺得這樣被打擾的非常多,可以根據自身的應用情況,設置錯誤數>xx個這類的告警規則
解決第二個問題,您需要有一個可以接收消息的媒介,最簡單的就是郵箱:
一個簡單的監控告警計劃就這樣設置好了
方案2:進階型--精細化應用質量監控
您已經可以對單一應用設置不同的告警消息了,可以按照監控的指標類型或者版本進行區分。比如說,我們對新上線的版本要求是,影響用戶數>10則觸發告警,對老版本的要求是整體錯誤率相比于上周增幅不超過5%就可以,那么我們就可以按照如下的方式設置:
a.新版本的告警規則:
b.老版本的告警規則:
在這個方案中,我們分別應用了閾值型和對比型的告警觸發條件,這兩種規則的定義如下;
閾值型規則
您可以選擇一種指標(錯誤數、錯誤率、影響用戶數、影響用戶占比),并且選擇「大于」某值或者某百分比
對比型規則
您可以選擇一種指標(錯誤數、錯誤率、影響用戶數、影響用戶占比),并且選擇「比」歷史的時間段,增加多少比例,計算方式為:(過去1小時數值-歷史1小時數值)/ 歷史1小時數值,大于或等于所選值即發送告警
方案3: 王者型--組合式指標監控
您已經可以非常熟練的設置監控告警了,那么通過下面的hints,相信您可以根據您的日常工作需求,靈活制定屬于您的告警計劃
a. 靈活設置告警生效時間:
您可以添加告警生效的時間段,比如每周一至周五的9點至19點,周末的一12點至20點,靈活設置您的工作時間,不被無效信息干擾
b.重點錯誤類型/單條錯誤告警
您可以選擇需要您重點關注的錯誤類型
或者直接針對某一條修復中的錯誤進行持續關注告警
c. 組合形式的告警觸發條件
您可以通過多種指標以及閾值型或者對比型的規則,以交集/并集的組合方式,靈活設置您想要的告警觸發條件
d.多種告警觸達渠道
如果您還對監控告警的觸達渠道有所要求,可以考慮使用公司的辦公軟件進行群觸達,與您同組的其他同事一起關注并修復應用問題。