天天看點

五個問題,三大政策,手把手教你定制App性能監控方案

作者:友盟+U-APM團隊

Why? 為什麼要做應用性能監控?

首先,我們要知道應用性能監控具體指什麼?以及目的:

監控是一套完整的“監視+報警”的系統。對于像我們這樣的App開發者來說,應用性能監控是衡量App的第一道關卡,如果應用的品質不好,會給使用者帶來最直接的體驗傷害。App上線後,開發者是無法7*24實時擷取到使用者使用及體驗情況的,這時就需要一套優質的監控工具。

那麼,我們到底需要監控哪些名額?

安卓和iOS的用戶端監控名額就有很多不同,比如說安卓需要的是Java、Native、ANR錯誤等等,iOS需要的是Objective-C、Swift、C++層的錯誤等等。

在定義錯誤名額上,最基礎的是不同類型的錯誤數,如果考慮到錯誤數與整體應用使用量的對比,可以考慮用比值的方式,比如可以定義錯誤率:

五個問題,三大政策,手把手教你定制App性能監控方案

總結下來,我們可以統計不同類型錯誤在某一個時間範圍内的錯誤數、錯誤率、影響使用者數、影響使用者占比等名額。在名額的細化分類上,我們還可以用不同的次元定義監控,比如版本号。

如果要關注錯誤的發生次數,及錯誤的影響使用者數,則可以在錯誤數的基礎上,根據使用者排重計算得來影響使用者數。

如何定義獨立使用者呢?我們可以考慮用裝置ID辨識,比如imei、idfa、AndroidID等等,如果這些資訊很難擷取,也可以使用業務上的使用者ID,比如登入賬号,會員名等。除此之外,使用第三方SDK提供的裝置識别定義ID也是個不錯的選擇。在使用這類ID排重後,就可以得到錯誤的影響使用者數。

如果我們已知錯誤的影響使用者數,但無法确定它的影響範圍占比,則可以看以下這個名額:

五個問題,三大政策,手把手教你定制App性能監控方案

How? 如何靈活地制定屬于你的告警計劃?

我們先請您做個小測驗來判斷下您的監控告警類型(一共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:對時間和觸達通道都有要求

What?那麼如何設定告警計劃呢?

以上的分加總,請先判定下您的測驗總分(A選項記5分,B選項記10分,C選項記15分,D選項記20分),來看您的App在下面哪個監控告警需求等級範圍内:(資料在哪個範圍?還是監控告警在哪個層級?)

熱血青銅(25~50分):您屬于監控告警的初級階段使用者,您在日常工作中無需非常精細地檢視各種錯誤的發生狀态。可能是由于您的應用還在初始階段,或者您位高權重,無需親自修複告警資訊,隻需要整體監控就好。請檢視下文中的方案1

英勇黃金(50~75分):您屬于監控告警的中級階段使用者,您或者您的團隊已經有了監控告警的意識,并且在日常工作中會關注到實時的應用品質情況。您已經可以用一定精細化的規則設定告警了,請跳轉至方案2

榮耀王者(75~100分):您已經屬于監控告警的高能玩家了,隻需要一點點引導,就可以成為監控告警界的“超級王牌”了

根據上述測驗的分值高低,您可以判别您所需要的告警設定的難易,整體分為下面幾個方案,實作程度由易到難。如果您想學習最全面的告警設定功能,請直接跳轉到方案3哦

方案1:簡易型--整體應用品質監控

作為最初級的告警設定,您隻需要考慮兩個問題:

a. 我應該在什麼情況下收到告警?

b.我如何能收到應用告警消息呢?

解決第一個問題,您可以考慮最簡單的狀态,隻要有錯誤我就要收到預警,那麼隻要設定錯誤數>0的條件就可以解決。如果您覺得這樣被打擾的非常多,可以根據自身的應用情況,設定錯誤數>xx個這類的告警規則

五個問題,三大政策,手把手教你定制App性能監控方案

解決第二個問題,您需要有一個可以接收消息的媒介,最簡單的就是郵箱:

五個問題,三大政策,手把手教你定制App性能監控方案

一個簡單的監控告警計劃就這樣設定好了

方案2:進階型--精細化應用品質監控

您已經可以對單一應用設定不同的告警消息了,可以按照監控的名額類型或者版本進行區分。比如說,我們對新上線的版本要求是,影響使用者數>10則觸發告警,對老版本的要求是整體錯誤率相比于上周增幅不超過5%就可以,那麼我們就可以按照如下的方式設定:

a.新版本的告警規則:

五個問題,三大政策,手把手教你定制App性能監控方案

b.老版本的告警規則:

五個問題,三大政策,手把手教你定制App性能監控方案

在這個方案中,我們分别應用了門檻值型和對比型的告警觸發條件,這兩種規則的定義如下;

門檻值型規則

您可以選擇一種名額(錯誤數、錯誤率、影響使用者數、影響使用者占比),并且選擇「大于」某值或者某百分比

對比型規則

您可以選擇一種名額(錯誤數、錯誤率、影響使用者數、影響使用者占比),并且選擇「比」曆史的時間段,增加多少比例,計算方式為:(過去1小時數值-曆史1小時數值)/ 曆史1小時數值,大于或等于所選值即發送告警

方案3: 王者型--組合式名額監控

您已經可以非常熟練的設定監控告警了,那麼通過下面的hints,相信您可以根據您的日常工作需求,靈活制定屬于您的告警計劃

a. 靈活設定告警生效時間:

五個問題,三大政策,手把手教你定制App性能監控方案

您可以添加告警生效的時間段,比如每周一至周五的9點至19點,周末的一12點至20點,靈活設定您的工作時間,不被無效資訊幹擾

b.重點錯誤類型/單條錯誤告警

您可以選擇需要您重點關注的錯誤類型

五個問題,三大政策,手把手教你定制App性能監控方案

或者直接針對某一條修複中的錯誤進行持續關注告警

五個問題,三大政策,手把手教你定制App性能監控方案

c. 組合形式的告警觸發條件

五個問題,三大政策,手把手教你定制App性能監控方案

您可以通過多種名額以及門檻值型或者對比型的規則,以交集/并集的組合方式,靈活設定您想要的告警觸發條件

d.多種告警觸達管道

五個問題,三大政策,手把手教你定制App性能監控方案

如果您還對監控告警的觸達管道有所要求,可以考慮使用公司的辦公軟體進行群觸達,與您同組的其他同僚一起關注并修複應用問題。

在此方案中提到的所有監控告警設定功能,可以通過U-APM體驗,2分鐘制定告警計劃。