启动分析 API

更新时间:
复制为 MD 格式

本文档介绍移动监控 iOS SDK 提供的启动分析 API,包括应用启动采集开关、自定义冷启动结束时间开关自定义冷启动阶段、结束冷启动

1. 设置应用启动采集开关

开启或关闭启动数据采集,默认开启

接口定义

+ (void)setDataCollectionEnabled:(BOOL)dataCollectionEnabled;
+ (BOOL)dataCollectionEnabled;
class var dataCollectionEnabled: Bool { get set }

代码示例

#import "AlicloudApmPerformance/AlicloudApmPerformance.h"

// 开启应用启动采集
[EAPMLaunchConfiguration setDataCollectionEnabled:YES];

// 获取应用启动采集开关
BOOL enabled = [EAPMLaunchConfiguration dataCollectionEnabled];
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"

// 开启应用启动采集
LaunchConfiguration.dataCollectionEnabled = true

// 获取应用启动采集开关
let enabled = LaunchConfiguration.dataCollectionEnabled

2. 设置自定义冷启动结束时间开关

设置冷启动结束时间是否由业务侧手动指定。

接口定义

+ (void)setCustomColdLaunchEndTime:(BOOL)customColdLaunchEndTime;
+ (BOOL)customColdLaunchEndTime;
class var customColdLaunchEndTime: Bool { get set }

代码示例

#import "AlicloudApmPerformance/AlicloudApmPerformance.h"

// 设置使用自定义冷启动结束时间
[EAPMLaunchConfiguration setCustomColdLaunchEndTime:YES];

// 获取自定义冷启动结束时间开关
BOOL enabled = [EAPMLaunchConfiguration customColdLaunchEndTime];
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"

// 设置使用自定义冷启动结束时间
LaunchConfiguration.customColdLaunchEndTime = true

// 获取自定义冷启动结束时间开关
let enabled = LaunchConfiguration.customColdLaunchEndTime

3. 开始冷启动阶段

为当前冷启动链路开启一个自定义阶段,并自动结束上一个自定义阶段。

接口定义

+ (void)startStageNamed:(NSString *)stageName;
+ (void)startStageNamed:(NSString *)stageName startTime:(NSDate *)startTime;
class func startStage(name stageName: String)
class func startStage(name stageName: String, startTime: Date)

参数说明

参数

类型

是否必填

长度范围

说明

stageName

NSString

1~128

阶段名称

startTime

NSDate

阶段开始时间

代码示例

#import "AlicloudApmPerformance/AlicloudApmPerformance.h"

// 以业务传入时间作为自定义阶段开始时间
[EAPMLaunchMonitor startStageNamed:@"stage1" startTime:[NSDate date]];

// 为当前冷启动链路开启自定义阶段
[EAPMLaunchMonitor startStageNamed:@"Stage2"];
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"

// 以业务传入时间作为自定义阶段开始时间
LaunchMonitor.startStage(name: "stage1", startTime: Date())

// 为当前冷启动链路开启自定义阶段
LaunchMonitor.startStage(name: "stage2")

4. 补录冷启动阶段

补录一个已有开始和结束时间的冷启动阶段.

接口定义

+ (void)addStageNamed:(NSString *)stageName
            startTime:(NSDate *)startTime
              endTime:(NSDate *)endTime;
class func addStage(name stageName: String, startTime: Date, endTime: Date)

参数说明

参数

类型

是否必填

长度范围

说明

stageName

NSString

1~128

阶段名称

startTime

NSDate

阶段开始时间

endTime

NSDate

阶段结束时间

代码示例

#import "AlicloudApmPerformance/AlicloudApmPerformance.h"

NSDate *start = [NSDate dateWithTimeIntervalSinceNow:-0.2];
NSDate *end = [NSDate date];
[EAPMLaunchMonitor addStageNamed:@"read_cache" startTime:start endTime:end];
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"

let start = Date(timeIntervalSinceNow: -0.2)
let end = Date()
LaunchMonitor.addStage(name: "read_cache", startTime: start, endTime: end)

5. 结束冷启动

以当前时间或者业务传入时间结束冷启动事件

接口定义

+ (void)endColdLaunch;
+ (void)endColdLaunchWithTime:(NSDate *)endTime;
class func endColdLaunch()
class func endColdLaunch(endTime: Date)

参数说明

参数

类型

是否必填

说明

endTime

NSDate

结束时间

代码示例

#import "AlicloudApmPerformance/AlicloudApmPerformance.h"

// 以当前时间结束冷启动采集
[EAPMLaunchMonitor endColdLaunch];

// 以业务传入时间结束冷启动采集
[EAPMLaunchMonitor endColdLaunchWithTime:[NSDate date]];
#import "AlicloudApmPerformance/AlicloudApmPerformance.h"

// 以当前时间结束冷启动采集
LaunchMonitor.endColdLaunch()

// 以业务传入时间结束冷启动采集
LaunchMonitor.endColdLaunch(endTime: Date())