日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

接入 iOS

移動性能監(jiān)控(APM)依賴移動分析客戶端 SDK 來進行埋點,收集 App 性能相關數(shù)據(jù)生成日志并上報到服務端。根據(jù) mPaaS 客戶端與服務端協(xié)定的埋點數(shù)據(jù)格式,服務端從客戶端上傳的埋點日志中提取有效數(shù)據(jù),從而實現(xiàn)對客戶端各項指標的監(jiān)控分析。

本文介紹如何在客戶端配置性能監(jiān)控埋點,包括網(wǎng)絡監(jiān)控、H5 性能監(jiān)控、頁面加載監(jiān)控、啟動速度監(jiān)控、小程序監(jiān)控。

前提條件

  • 確保 mPaaS 基線版本 ≥ 10.1.68.44。如當前使用的基線版本低于 10.1.68.44,可參考 mPaaS 10.1.68 升級指南進行基線版本升級。

  • 確保已接入移動分析組件。具體操作請參見 接入移動分析服務

  • 確保已接入移動網(wǎng)關組件。具體操作請參見 移動網(wǎng)關服務

  • 如需使用 H5 性能監(jiān)控功能,需接入 H5 容器。具體操作參見 接入 H5 容器

  • 如需使用小程序性能監(jiān)控功能,需接入小程序。具體操作參見 接入小程序

網(wǎng)絡監(jiān)控

開啟網(wǎng)絡監(jiān)控開關

APM 網(wǎng)絡性能監(jiān)控埋點需要通過項目代碼手動開啟。在 App 啟動過程中,調(diào)用如下代碼以開啟網(wǎng)絡性能監(jiān)控。

#import <MPMasAdapter/MPAnalysisHelper.h>

[MPAnalysisHelper startAPMNetMonitor];

mPaaS RPC 網(wǎng)絡監(jiān)控埋點

開啟 APM 網(wǎng)絡監(jiān)控后,mPaaS RPC 的網(wǎng)絡監(jiān)控由 mPaaS 內(nèi)置的網(wǎng)絡框架自動進行,無需您在代碼中手動進行埋點。

業(yè)務自定義網(wǎng)絡監(jiān)控埋點

如果您使用了非 mPaaS RPC 網(wǎng)絡通訊,并想要對這部分的網(wǎng)絡質(zhì)量進行監(jiān)控,則需要在 App 啟動過程中開啟 APM 網(wǎng)絡監(jiān)控,同時還需要對自己的網(wǎng)絡調(diào)用進行手動埋點。

調(diào)用以下代碼進行埋點:

#import <MPMasAdapter/MPRemoteLoggingInterface.h>

NSDictionary *param = @{
                @"totalRequestTimeInterval": @(totalRequestTime),
                @"dnsTimeInterval": @(dnsTime),
                @"tcpTimeInterval": @(tcpTime),
                @"sslTimeInterval": @(sslTime),
                @"firstPackageTimeInterval": @(firstPackageTime),
                @"transportTimeInterval": @(transportTime),
                @"downloadAverageSpeed": @(downloadAverageSpeed),
                @"httpStatusCode": @(httpStatusCode),
                @"rpcStatusCode": rpcStatusCode,
                @"operationType": operationType,
                @"clientIP": clientIP,
                @"gwIP": gwIP,
                @"traceId": traceId
            };
[MPRemoteLoggingInterface writeAPMNetLog:param];

傳入的參數(shù)包括:

參數(shù)

說明

totalRequestTimeInterval

總請求用時,單位為 ms。

dnsTimeInterval

DNS 解析耗時,單位為 ms。

tcpTimeInterval

TCP 建連耗時,單位為 ms。

SSLTimeInterval

SSL 建連耗時,單位為 ms。

firstPackageTimeInterval

首包用時,從發(fā)起請求到收到服務器第一個數(shù)據(jù)包所用的時間,單位為 ms。

transportTimeInterval

傳輸用時,從收到第一個數(shù)據(jù)包到最后一個數(shù)據(jù)包所用的時間,單位為 ms。

downloadAverageSpeed

下載資源文件的平均速度。

httpStatusCode

HTTP 調(diào)用狀態(tài)碼,200 表示正常。

rpcStatusCode

RPC 調(diào)用狀態(tài)碼,200 表示正常。

operationType

接口標識符,用于標識網(wǎng)關操作。

clientIP

客戶端 IP。

gwIP

網(wǎng)關 IP。

traceId

客戶端請求的鏈路 ID。

H5 性能監(jiān)控

H5 性能監(jiān)控的埋點由 mPaaS H5 容器自動完成,您接入 H5 容器即可,無需手動進行埋點。

頁面加載監(jiān)控

原生頁面的加載時長埋點由 mPaaS 原生頁面自動化埋點 SDK 完成,您接入移動分析組件后,無需手動進行埋點。

啟動速度監(jiān)控

基于 mPaaS 框架

如果您的項目接入了 mPaaS 框架,那么啟動速度由 mPaaS 框架進行記錄,您只需在 App 啟動完成(比如在首頁出現(xiàn)時)后記錄啟動時間,并發(fā)出啟動完成的通知即可。

// globalMonitorStartUpTime 是已定義的變量,導入 <mPaas/MPaaS+MonitorStartUpTime.h> 頭文件后即可使用
double time = CFAbsoluteTimeGetCurrent() - globalMonitorStartUpTime;
[ [NSNotificationCenter defaultCenter] postNotificationName:@"APMonitor_Startup_Cost_Time" object:nil userInfo:@{@"CostTimeOnUserFeel": [NSString stringWithFormat:@"%f", time]}];

基于原生框架

如果您的項目未接入 mPaaS 框架,那么您需要在 App 啟動完成時手動調(diào)用上報啟動埋點。

#import <MPMasAdapter/MPAnalysisHelper.h>

//record the time interval used for the app startup
NSTimeInterval time = CFAbsoluteTimeGetCurrent() - __start_timestamp;
[[MPAnalysisHelper sharedInstance] writeLogForStartupWithTime:time];

閃退監(jiān)控

添加閃退埋點,以統(tǒng)計閃退相關數(shù)據(jù)。

基于 mPaaS 框架

在接入了框架(工程中有 APMobileFramework 庫)的情況下,閃退上報模塊會自動捕獲閃退日志并上傳到服務端,您只需在集成 SDK 后確認閃退監(jiān)控的開關為打開即可。為保證閃退日志能及時上報,推薦您在 main 函數(shù)中調(diào)用此接口。

基于原生框架

在未接入 mPaaS 框架(工程中無 APMobileFramework 庫)的情況下,需要您在啟動時打開閃退監(jiān)控開關,并且在啟動后上報閃退日志。

容災開關

默認情況下,當連續(xù)發(fā)生四次閃退時會觸發(fā)容災處理,將會清理 Documents 目錄下的文件,以避免因臟數(shù)據(jù)導致的閃退問題。在 10.1.60 及以上版本,您可以手動調(diào)用以下接口開啟或關閉容災處理。

#import <MPMasAdapter/MPAnalysisHelper.h>
/**
 * 開啟/關閉閃退容災處理,默認開啟
 */
+ (void)enableDisasterRecovery:(BOOL)enable;
重要
  • 只有真機運行程序的閃退日志才會被捕獲并上傳到日志服務器。如您需要調(diào)試閃退監(jiān)控,請斷開 Xcode,且請勿使用模擬器。

  • 為保證閃退日志中的 version 與 product version 一致,務必在項目的 info.plist 中將 bundle version 與 product version 設置為相同的版本號。

卡頓/卡死監(jiān)控

添加性能埋點,以統(tǒng)計卡頓、卡死相關數(shù)據(jù)。

基于 mPaaS 框架

  1. 卡頓/卡死監(jiān)控默認對 10% 的設備開啟,可通過下面這個接口設置卡頓開啟率。

     [MPAnalysisHelper setLagMonitorPercent: 100]; // 100% 監(jiān)控,需要在 startPerformanceMonitor 調(diào)用之前設置
    說明

    卡頓/卡死監(jiān)控只有在真機上并且非 Xcode 調(diào)試狀態(tài)下是打開的。

  2. 在啟動時調(diào)用 [MPAnalysisHelper startPerformanceMonitor],推薦在 -(void)application:(UIApplication *)application beforeDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中調(diào)用。

基于原生框架

SDK 封裝了性能監(jiān)控接口,推薦您在 AppDelegate 的 - (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions 方法中調(diào)用 [PerformanceHelper performanceMonitor]

說明

卡頓/卡死監(jiān)控只有在真機上并且非 Xcode 調(diào)試狀態(tài)下是打開的。

    #import "PerformanceHelper.h"
    #import <MPAnalysis/MPAnalysisHelper.h>

    static NSTimeInterval __start_timestamp = 0;

    @implementation PerformanceHelper

    + (void)load
    {
        __start_timestamp = CFAbsoluteTimeGetCurrent();
    }

    + (void)performanceMonitor
    {
        //start performance monitor

       [MPAnalysisHelper setLagMonitorPercent: 100]; // 100% 監(jiān)控,需要在 startPerformanceMonitor 調(diào)用之前設置
        [MPAnalysisHelper startPerformanceMonitor];

        //record the time interval used for the app startup
        NSTimeInterval time = CFAbsoluteTimeGetCurrent() - __start_timestamp;
        [[MPAnalysisHelper sharedInstance] writeLogForStartupWithTime:time];
    }

    @end

開啟小程序監(jiān)控

接入小程序后,小程序會自動上報性能監(jiān)控數(shù)據(jù),無需您手動埋點。