快速开始¶
本文用于提供 macOS RUM SDK 的最短接入路径,帮助您以最少步骤完成一次可验证的数据上报。
前置准备¶
开始前,请先完成以下准备:
- 在用户访问监测中创建 macOS 应用,并获取
RUM App ID - 确认上报地址与认证方式
- 本地环境部署:准备
datakitUrl - 公网 DataWay:准备
datawayUrl和clientToken - 确认项目已经完成 SDK 安装,支持
CocoaPods或Swift Package Manager
接入步骤¶
- 在项目中安装
FTMacOSSDK - 在应用启动前初始化
FTSDKConfig - 初始化
FTRumConfig并开启 View、Action、Resource、崩溃和卡顿采集 - 保持调试日志开启,运行应用并触发一次窗口切换或网络请求
- 在控制台与观测云平台确认数据已成功上报
安装 SDK¶
安装方式请直接参考 应用接入。
如果您只想快速验证,推荐优先使用 CocoaPods 或 Swift Package Manager。
最小初始化示例¶
由于第一个显示的视图 NSViewController 的 viewDidLoad 方法、NSWindowController 的 windowDidLoad 方法调用要早于 AppDelegate applicationDidFinishLaunching,为避免第一个视图的生命周期采集异常,建议在 main.m 或 main.swift 中进行 SDK 初始化。
// main.m 文件
#import "FTMacOSSDK.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 本地环境部署使用 [[FTSDKConfig alloc] initWithDatakitUrl:datakitUrl]
FTSDKConfig *config = [[FTSDKConfig alloc] initWithDatawayUrl:datawayUrl clientToken:clientToken];
config.enableSDKDebugLog = YES;
[FTSDKAgent startWithConfigOptions:config];
FTRumConfig *rumConfig = [[FTRumConfig alloc] initWithAppid:appid];
rumConfig.enableTrackAppCrash = YES;
rumConfig.enableTrackAppANR = YES;
rumConfig.enableTrackAppFreeze = YES;
rumConfig.enableTraceUserAction = YES;
rumConfig.enableTraceUserView = YES;
rumConfig.enableTraceUserResource = YES;
rumConfig.errorMonitorType = FTErrorMonitorAll;
rumConfig.deviceMetricsMonitorType = FTDeviceMetricsMonitorAll;
[[FTSDKAgent sharedInstance] startRumWithConfigOptions:rumConfig];
}
return NSApplicationMain(argc, argv);
}
import Cocoa
import FTMacOSSDK
let delegate = AppDelegate()
NSApplication.shared.delegate = delegate
// 本地环境部署使用 FTSDKConfig(datakitUrl: datakitUrl)
let config = FTSDKConfig(datawayUrl: datawayUrl, clientToken: clientToken)
config.enableSDKDebugLog = true
FTSDKAgent.start(withConfigOptions: config)
let rumConfig = FTRumConfig(appid: appid)
rumConfig.enableTraceUserAction = true
rumConfig.enableTrackAppANR = true
rumConfig.enableTraceUserView = true
rumConfig.enableTraceUserResource = true
rumConfig.enableTrackAppCrash = true
rumConfig.enableTrackAppFreeze = true
rumConfig.errorMonitorType = .all
rumConfig.deviceMetricsMonitorType = .all
rumConfig.monitorFrequency = .rare
FTSDKAgent.sharedInstance().startRum(withConfigOptions: rumConfig)
_ = NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv)
使用 Swift 时,请先创建
main.swift文件,并删除AppDelegate.swift中的@main或@NSApplicationMain。
可选:初始化 Log 和 Trace¶
如果您还需要日志采集或链路追踪,可继续追加以下初始化:
FTLoggerConfig *loggerConfig = [[FTLoggerConfig alloc] init];
loggerConfig.enableCustomLog = YES;
loggerConfig.enableLinkRumData = YES;
[[FTSDKAgent sharedInstance] startLoggerWithConfigOptions:loggerConfig];
FTTraceConfig *traceConfig = [[FTTraceConfig alloc] init];
traceConfig.enableAutoTrace = YES;
traceConfig.enableLinkRumData = YES;
[[FTSDKAgent sharedInstance] startTraceWithConfigOptions:traceConfig];
let loggerConfig = FTLoggerConfig()
loggerConfig.enableCustomLog = true
loggerConfig.enableLinkRumData = true
FTSDKAgent.sharedInstance().startLogger(withConfigOptions: loggerConfig)
let traceConfig = FTTraceConfig()
traceConfig.enableAutoTrace = true
traceConfig.enableLinkRumData = true
FTSDKAgent.sharedInstance().startTrace(withConfigOptions: traceConfig)
验证接入是否成功¶
- 保持
enableSDKDebugLog = YES/true开启,运行应用 - 打开一个窗口,或发起一次
URLSession网络请求 - 在 Xcode 控制台中确认出现 SDK 初始化和数据同步相关日志
- 返回观测云控制台,确认应用中已出现对应的 RUM 数据
如果需要进一步排查,请查看 故障排查。