溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

支付寶客戶端架構分析:自動化日志收集及分析

發布時間:2020-08-10 03:58:58 來源:ITPUB博客 閱讀:646 作者:螞蟻金服科技 欄目:軟件技術

小螞蟻說:


《支付寶客戶端架構解析》系列將從支付寶客戶端的架構設計方案入手,細分拆解客戶端在“ 容器化框架設計 ”、“ 網絡優化 ”、“ 性能啟動優化 ”、“ 自動化日志收集 ”、“ RPC 組件設計 ”、“ 移動應用監控、診斷、定位 ”等具體實現,帶領大家進一步了解支付寶在客戶端架構上的迭代與優化歷程。


本節將結合禾兮在 OSChina 珠海站現場的分享《移動端分析方案在螞蟻金服 mPaaS 中的實踐》,介紹支付寶客戶端自動化日志收集與分析的具體思路。內容將分成三個部分展開:

  • 支付寶客戶端分析方案的探索;

  • MAS 移動分析框架淺析;

  • mPaaS 技術架構與助力。

支付寶客戶端分析方案的探索

正如我們在《 開篇 | 模塊化與解耦式開發在螞蟻金服 mPaaS 深度實踐探討 》已經對支付寶的架構演變與開發團隊規模發展做過介紹:

截止目前,在研發上面,支付寶僅  Android、iOS 客戶端開發人員近千人,客戶端代碼行數超過了數百萬行,按業務劃分的工程數也已近千個,每個工程都有獨立的開發 owner  負責某一個具體的模塊。雖然工程師團隊及工程量越發龐大,支付寶依舊能夠做到日發布的頻率以確保業務快速迭代,同時在業務功能日益復雜的環境,保證  App 閃退率僅 0.01%。

支付寶客戶端架構分析:自動化日志收集及分析 那么,在如此大體量的用戶規模和研發團隊下,支付寶又是如何確保用戶使用過程中的用戶體驗呢?我們主要從以下兩個維度衡量客戶端用戶體驗:

  • 靜態: 指應用開發過程中,關注 App 本身的安裝包大小、存儲、涉及到的用戶隱私權限、安全策略等,決定用戶是否愿意安裝并使用你的應用。

  • 動態: 指應用發布上線后,用戶在使用過程中,App 的啟動速度,閃退、卡死卡頓等穩定性數據,網絡請求,內存以及電量流量等用戶實際的使用感受。


支付寶客戶端架構分析:自動化日志收集及分析


啟動應用是用戶使用任何一款應用最必不可少的操作,從點擊 App 圖標到首頁展示,整個啟動過程的性能,嚴重影響著用戶的體驗。支付寶客戶端作為一個超級 App,啟動速度當然是我們關注的重要指標之一。支付寶對于應用啟動過程中的優化,主要分為以下四個方面:

  • 框架治理:

    • 梳理啟動流程并重構,遵守啟動過程中按需加載原則。

    • 引用 Pipeline 機制,根據業務優先級規定業務初始化時機。

    • 制定統一的開發規范,盡量降低業務方流程對啟動性能的影響。

  • 業務治理:

    • 按需加載,延時執行。

    • 線程治理:統一管理已有線程,并調整線程優先級。

    • I/O 治理:關注主線程 I/O,優化合并頻繁讀寫的 I/O 操作,盡量使用統一存儲。

  • 技術突破:

    • 防止啟動過程中的 UI 重刷操作。

    • 虛擬機優化,包括 JIT 關閉,降低 GC 次數。

    • 基礎模塊調優,分析主線程耗時操作并優化。

另外,用戶使用過程中 App 的內存、存儲、電量及流量等消耗,也是重要的衡量指標。具體的優化點如下:

  • 內存:

    • 內存分析:memtrace hprof 線下內存分析,遍歷對象,根據生命周期標記內存泄露,同時根據 object 創建引用確定業務歸屬。

    • Native 內存:圖像庫切換到 native 層,4.x bitmap 像素數據放到 ashme 共享內存,降低 GC。

    • 內存優化:對象池復用,減小 bitmap 對內存占用,使用更小的圖,尤其注意三方 H5 頁面。

  • 存儲:

    • 存儲分析:查看應用存儲大小。

    • 存儲優化:使用共享庫,業務定向優化,壓縮存儲等。

  • 流量:

    • 耗流量原因:分析各種網絡請求。

    • 流量異常捕獲:hook 所有網絡請求,根據host聚合流量,超過閾值確定異常。

    • 流量優化:PC 底層協議優化,資源增量按需下載,同時通過切面信息調用方。

  • 電量:

    • 耗電原因:監控 CPU 使用率,各種 sensor、gps、weaklock、網絡連接等耗電操作。

    • 耗電異常捕獲:遍歷線程,獲取所有線程運行時間,與主線程比較確定異常。

    • 耗電優化:高性能 dump 線程棧優化,通過線程映射調用方,評估調用邏輯進行優化。


支付寶客戶端架構分析:自動化日志收集及分析

針對以上每個優化點,支付寶都投入了大量精力進行研究和實踐,有關啟動性能優化的詳細內容可以查閱文檔《支付寶客戶端架構解析:iOS  客戶端啟動性能優化初探》和《支付寶客戶端架構解析:Android  客戶端啟動速度優化之「垃圾回收」》,其他優化點請持續關注“客戶端架構解析”系列文章。

基于這些對用戶體驗優化的內容,支付寶構建了一套完整的超級  App 線上運維體系,實時監控線上 App  發生的異常問題,針對這些問題,以最快的時間定位問題原因并找到對應的解決方案,最后通過動態熱修復的技術及時修復線上問題,最終形成一個線上質量保障的閉環,保障應用運行的穩定性。


支付寶客戶端架構分析:自動化日志收集及分析


MAS移動分析框架淺析

接下來,詳細介紹超級 App 運維體系中的移動監控框架具體是如何實現的。

移動分析  MAS(Mobile Analysis  Service)通過對移動客戶端、H5、小程序、PC等多端埋點數據的采集與分析,實現產品核心指標監控,提供頁面、設備、留存、性能等基礎分析,并支持自定義事件分析、漏斗分析等高階分析,幫助企業更好地完成業務監控、用戶洞察與行為分析,指導產品迭代,精細化產品運營,輔助營銷決策,加速業務商業化。主要分為以下四個階段:


支付寶客戶端架構分析:自動化日志收集及分析


整個移動分析的完整鏈路從左往右看,就是客戶端通過調用埋點  SDK 的接口進行數據埋點,埋點 SDK  對日志進行格式化后,先寫入客戶端本地文件,滿足日志上報觸發條件后,將本地日志上報到日志服務器并清理本地日志文件以減少存儲大??;日志服務器接收到客戶端上報的日志后同步到計算平臺,經過離線計算和實時計算后,將結果進行展示,用來監控、分析、搜索、推薦等。


接下來我們將從移動分析框架的四個階段,詳細介紹數據分析的整個鏈路邏輯。


數據采集

根據采集數據時機、應用場景,最終用途的不同,我們把客戶端采集的數據分為了以下幾類。其中結合  mPaaS 模塊化開發框架,報活埋點、押后臺埋點、頁面自動化埋點、性能埋點及 H5 埋點,由客戶端 SDK  自動采集,無需開發者手動調用接口實現,開發者只需要關注自己的業務邏輯,在需要監控的邏輯除埋點統計。


支付寶客戶端架構分析:自動化日志收集及分析


為了降低頻繁上報日志對應用性能的影響,客戶端采集到數據后,會預先保存在應用本地,通過以下三種方式同步到日志服務器:

  • 自動上報: 滿足一定條件后客戶端埋點 SDK 自動上報,包括

    • 程序每次冷啟動都會觸發檢查日志上報的邏輯。

    • 程序進入后臺會立即觸發上報。

    • 寫日志時,某種類型的日志默認到達 40 條就觸發上報。

  • 實時監控: 對于比較重要的客戶端日志,如異常、應用閃退日志等,可實時上報,產生一條上報一條,便于后臺實時監控。

  • 動態控制: 在自動上報的基礎上,通過服務端下發的開關值,修改客戶端日志寫入和日志上報觸發的條件。如在大流量并發的情況下,為減少日志服務器的壓力,控制客戶端只寫入并上報異?;蜷W退日志,忽略行為日志的統計。

數據計算

上報到日志服務器的日志,會同步到計算平臺進行計算,后臺主要包含以下幾個系統:

  • mdap: 日志采集網關,負責收集客戶端埋點日志,收到日志后,直接傳輸至 JStorm 集群進行計算。

  • JStorm: 實時計算引擎,根據處理規則對日志進行實時解析并將需要的數據存儲入庫。

  • SSDB: kv 數據存儲層,底層使用 leveldb,支持單表十億級記錄。

  • ZooKeeper: 集群管理、組件間服務發現。

支付寶客戶端架構分析:自動化日志收集及分析

數據應用

計算平臺計算出來的結果,可以為用戶提供用戶分析、事件分析、行為、性能等數據分析服務。

  • 基礎分析: 關注于 App 的通用分析,包括每日登錄用戶、新增用戶、使用時長、用戶留存、頁面分析、訪問路徑等基礎分析。

  • 高階分析: 用于 App 專注業務的特定分析需求,提供一種靈活的多維分析能力;提供熱修復報告,幫助您了解 RPC、修復、回滾相關信息等。

  • 性能分析: 提供閃退、卡死、卡頓的統計功能。當客戶端發生性能問題后,移動分析服務提供實時查看性能分析的統計數據。

  • 日志管理: 支持按關鍵字實時搜索查詢日志,或通過服務端開關實時控制客戶端日志上報邏輯。


支付寶客戶端架構分析:自動化日志收集及分析


數據決策

在上一步數據應用的基礎上,可以與大數據、營銷平臺及推送平臺結合,根據移動分析得到的埋點數據,通過大數據平臺進行打標、圈人、用戶畫像及建模后,可以在營銷平臺上發起一次營銷活動,指定活動的類型,活動算法,參與人群及活動獎品,通過消息推送、數據同步,動態發布等形式,觸達到客戶端,實現客戶端拉新促活、活動推廣及操作引導的目的。同時結合運營活動的場景需求,形成了一套完整的數字化運營體系,監控一次運營活動的參與人數、活動發放率、核銷率等,觀察活動的有效性。


支付寶客戶端架構分析:自動化日志收集及分析


mPaaS 技術架構與助力


上面介紹的支付寶內移動端分析方案的技術積累和架構實踐,已經通過  mPaaS 移動開發平臺作為螞蟻金服金融科技的一部分對外開放。mPaaS(Mobile Platform As A  Service),源于支付寶 App  的移動開發平臺,為移動開發、測試、運營及運維提供云到端的一站式解決方案,能有效降低技術門檻、減少研發成本、提升開發效率,協助企業快速搭建穩定高質量的移動  App。


支付寶客戶端架構分析:自動化日志收集及分析


在  mPaaS  移動開放平臺上,我們將移動分析框架中的本地日志、埋點、自動化埋點、性能監控、Crash報告、診斷日志等模塊,作為一個個獨立的組件來進行輸出。任何一個  App 都可以通過 mPaaS  插件,添加對應的組件,在當前應用中集成這些功能,只需要這樣簡單的操作,就可以讓你的應用具有和支付寶一樣強大的移動端分析監控能力。


支付寶客戶端架構分析:自動化日志收集及分析


客戶端集成了這些移動分析相關的組件后,用戶在使用APP過程中會產生相應的日志,經過數據采集、數據上報、數據計算等處理后,計算的結果會同步到  mPaaS 移動分析的大盤上展示,包括應用的基礎應用概況、性能穩定數據、流量走向等等,方便開發者實時監控 APP  的概況大盤和穩定性等,實時發現線上問題并修復。


支付寶客戶端架構分析:自動化日志收集及分析

支付寶客戶端架構分析:自動化日志收集及分析


目前,mPaaS   移動開發平臺已經服務了眾多企業,包括螞蟻金服內部的香港支付寶、網商銀行、口碑商家等,同時還有大量的外部螞蟻生態合作伙伴,包括12306、上海地鐵、廣州地鐵、廣發銀行等。秉承著「給世界帶來小而美的變化」的理念,我們通過  mPaaS 幫助 12306 這樣的國民級 App 重構了客戶端,使得大家可以用上一個好的體驗的 App 進行出行購票,用 mPaaS  這樣成熟的底層框架搭建一個 12306 僅需要 2-3 個月的時間。


除了 12306 還有 支付寶香港版 , 廣發銀行手機銀行 發現精彩 多個客戶端,同樣在短短幾個月的時間內便完成了業務重構。


螞金服ATEC城市峰會·上海


2019年1月4日, 一場金融科技的前沿探索之旅——螞蟻金服ATEC科技大會即將起航 ,你準備好了嗎?小螞蟻為大家準備了滿滿了攻略福利,等你來拿!了解螞蟻金服ATEC科技大會更多信息,記得持續關注小螞蟻( 官微: 蟻金服科技 )~~

螞蟻金服金融科技官網:

https://tech.antfin.com/articles/activity/atecshanghai


ATEC科技大會:

螞蟻金服ATEC(Ant Technology Exploration Conference)科技大會是螞蟻金服在中國舉辦的最大的技術盛會,旨在向遍布全球的合作伙伴與技術專業人群 分享新技術的發展趨勢與落地實踐, 通過對先進的前沿技術探索與討論,為世界帶來平等的機會。ATEC大會一直在路上。過去一年,螞蟻金服ATEC科技大會走過杭州、硅谷、新加坡、倫敦 等全球金融科技中心城市,之后 將會造訪國內各個金融科技中心城市, 與當地受眾分享螞蟻金服對金融科技最前沿的洞察。


支付寶客戶端架構分析:自動化日志收集及分析


ATEC科技大會報名方式 & 福利:

本次大會門票采用審核制。嘉賓填寫個人信息進行報名,報名后3天之內收到 報名審核成功 的短信,即為報名成功。大會報名截止日期為 2018年12月31日24時 ,額滿即止。


前50位報名嘉賓 將會優先審核通過,先到先得哦~

小螞蟻還為大家準備了本賬號讀者的專屬福利邀請碼:   SF2B3A  

還等什么,趕緊 點擊下方 報名鏈接 閱讀原文 掃描二維碼 ,小螞蟻期待你的到來~~


ATEC報名鏈接:

https://alipaytech.mikecrm.com/l6YPW6V

ATEC報名二維碼:

支付寶客戶端架構分析:自動化日志收集及分析



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女