天天看點

從前端程式員的視角看小程式的穩定性保障

當我們談業務穩定性的時候,通常是指後端工程師從架構的角度來看的,例如限流和降級、流量排程、業務開關、容量壓測等,但監控也是整個業務穩定性建設中不可或缺的一環,例如對業務和前端的監控,以保證出現問題的時候,可以第一時間找到根因所在。今天,我們就結合小程式的場景,來看看如何做好小程式的監控。

小程式與 H5 的不同

小程式和 H5 都屬于移動端場景下的技術選擇方案,那麼這裡介紹一下小程式與 H5 的不同。

1、運作環境的不同

  • 傳統的 H5 的運作環境是浏覽器,包括 webview,其中浏覽器提供 window、document 等 BOM 對象;
  • 小程式的邏輯層和渲染層是分開的,邏輯層運作在 JSCore 中,并沒有一個完整的浏覽器對象,是以缺少相關的 DOM API 和 BOM API。

2、開發成本的不同

  • H5 的開發,涉及到開發工具、前端架構、子產品管理工具、任務管理工具、UI 庫的選擇、接口調用工具及浏覽器相容性等;
  • 小程式的開發,指定環境的小程式會提供開發者工具、API 及規範的開發标準。由于小程式是跑在指定的環境下的,同時 API 是指定環境下提供的,是以不用考慮浏覽器的相容性。

在 H5 開發中,前端常用的 HTML/CSS 在不同的小程式中都有指定的檔案标準。例如:

  • 在微信小程式中使用 WXML/WXSS;
  • 在支付寶小程式、釘釘 E 應用中使用 AXML/ACSS;
  • 在百度智能小程式中使用 SWAN/CSS;

    ......

開發規範在指定的官方文檔中都會有明确的使用介紹,使用方法與原來 H5 的開發大同小異,是以上手開發相對容易。

3、使用體驗的不同

  • H5 頁面需要在浏覽器中渲染,在複雜的業務邏輯或者豐富的頁面互動時會有卡頓情況;
  • 小程式除首次使用略慢,頁面切換及跳轉等非常順滑,接近 Native。

通過以上幾點小程式和 H5 的不同的介紹,我們可以發現原來針對 H5 頁面的監控無法直接監控小程式;同時由于小程式封閉性較強,不同的小程式在标準上也略有不同,如微信小程式、支付寶小程式及釘釘 E 應用等等小程式在使用标準及開放的 API 方面也會有一些差異,是以針對小程式的監控與針對 Web 應用的監控會有所不同。

小程式監控的現狀

現在針對小程式監控的大概分為以下幾類:

1、小程式的資料統計分析,助力小程式營運

  • 相關産品: 微信小程式助手、阿拉丁小程式統計平台等;
  • 特點:大部分是針對微信小程式提供相應的資料統計分析能力,從多元度分析小程式相關使用者資料,适用于小程式營運,但缺乏對于使用者體驗,小程式性能的監控。

2、小程式錯誤監控

  • 相關産品: FunDebug 等;
  • 特點:監控小程式使使用者出現的錯誤,幫助開發者發現并解決小程式錯誤,但缺乏對于小程式全局性能的監控,對于緩慢請求,緩慢頁面沒法監測。

3、小程式性能監控

  • 相關産品: FrontJS、聽雲小程式監控等;
  • 特點:主要提供性能相關資料,包括 JS 錯誤、網絡請求響應情況等。但是隻支援微信小程式,而且沒有辦法把小程式的性能與背景應用的性能關聯起來,沒法形成端到端的監控。

通過上面對現有的小程式監控産品分析,存在以下問題:

  • 無法支援所有的小程式監控,主要支援微信小程式;
  • 支援多類小程式監控的産品,提供的小程式相關資料較少,主要集中在錯誤監控;
  • 沒有背景應用服務的性能監控,無法從小程式上的性能問題追溯到背景應用代碼和資料庫,無法形成端到端的監控。

基于以上情況,阿裡雲 ARMS 前端監控重磅推出小程式監控,旨在幫助端到端的快速定位小程式問題,提升小程式的使用者體驗。

小程式監控提供的能力

阿裡雲 ARMS

前端監控此次重點推出的小程式監控有以下特點:

1、覆寫各類符合标準規範的小程式

首先解釋一下這裡所說的"标準規範的小程式",即包含 App 和 Page 兩層:

  • App 用來描述整體程式,包含: onError 事件;
  • Page 用來描述各個頁面,包含: onShow、onHide、onUnload 事件。

小程式的運作環境依賴于對應的用戶端,各類小程式的 DSL 設計看起來很像,但細節上的差别還是比較多,并且已有了分化的趨勢。在這種情況下,阿裡雲 ARMS 前端監控為了更好的支援小程式的監控訴求,提供以下小程式監控的場景:

  • 微信小程式
  • 支付寶小程式
  • 釘釘 E 應用
  • 其他類别小程式

由于小程式發展迅速,現在無法針對各類小程式都提供對應的監控 SDK,是以不屬于微信小程式、支付寶小程式和釘釘 E 應用的小程式可選擇其他類别小程式的場景接入進行監控,但要滿足上面說的"标準規範的小程式"前提,同時支援 npm 包。

2、完善的性能監控名額

基礎業務名額,幫助了解小程式應用的使用情況:

  • 應用總 PV/UV
  • 頁面次元的 PV/UV

小程式各次元名額:

  • 手機型号
  • 作業系統版本
  • 微信 / 支付寶等相應的 APP 版本
  • 網絡等

JS 錯誤分析:

  • JS 錯誤率、錯誤聚類、JS 錯誤堆棧及錯誤定位等

API 請求追蹤:

  • API 請求成功率、API 請求耗時及 API 請求的鍊路追蹤
  • 自定義事件統計
  • 支援業務上自定義事件 sum/avg 統計

3、可通過配置選擇上報方式

由于業務方使用監控的訴求不同,我們不僅支援優雅的靜默資料上報,也支援使用開放的統計能力進行自定義上報。具體可檢視官網的前端監控接入概述中的小程式場景相關文檔:

https://help.aliyun.com/document_detail/106086.html

總結

小程式作為各大網際網路公司重磅加持的方向,未來小程式的應用數量會越來越多,那麼對于使用者體驗方面的關注與提升訴求也會不斷增加,

前端監控提供的小程式監控可幫助客戶實時監控發現品質問題,為企業的小程式的穩定運作提供堅實的保障。

附錄:

繼續閱讀