概述
阿里云 RUM Unity SDK 是一款用于 Unity 游戏的实时用户监控(Real User Monitoring)SDK。通过集成该 SDK,您可以实现:
异常监控:自动捕获 Unity 异常和崩溃。
结构化日志采集:按 LogType 粒度控制日志采集。
网络请求监控:对 UnityWebRequest 进行自动埋点。
分布式链路追踪:支持 W3C 与 SkyWalking 协议。
自定义事件上报:上报业务自定义事件。
环境要求
维度 | 要求 |
Unity 版本 | ≥ 2021.3 |
Android 最低版本 | API Level 21+ |
iOS 最低版本 | iOS 12.0 |
Android 构建方式 | Gradle |
iOS 依赖管理 | CocoaPods |
安装方式
通过 .unitypackage 安装(推荐)
下载 SDK 包
从发布页面下载最新的
[alibabacloud-rum-unity-sdk.unitypackage](https://rum-sdk.oss-cn-hangzhou.aliyuncs.com/unity3d/alibabacloud-rum-unity-sdk.unitypackage)文件。导入 Unity 项目
打开您的 Unity 项目。
在菜单栏选择
Assets->Import Package->Custom Package...。选择下载的
.unitypackage文件。在弹出的导入对话框中,点击
Import确认导入。
导入后的目录结构
Assets/ ├── Runtime/ # SDK 运行时核心代码 │ ├── Android/ # Android 平台适配 │ ├── iOS/ # iOS 平台适配 │ ├── Rum/ # RUM 核心实现 │ ├── Worker/ # 后台工作线程 │ └── ... └── Editor/ # SDK Editor 配置工具
配置步骤
1. 打开配置窗口
在 Unity 菜单栏选择 Tools -> Alibabacloud,打开 SDK 配置窗口。
2. 核心配置(Core Tab)
在 Core 页签中配置以下必填项:
配置项 | 说明 | 必填 |
Endpoint | RUM 上报服务的 URL,可在 ARMS 控制台获取 | 是 |
SERVICE ID | 服务 ID,用于标识您的应用 | 是 |
WORKSPACE | 工作空间 ID | 否 |
Enable Native SDK Debuggable | 是否开启原生 SDK 调试日志 | 否 |
自动场景追踪
配置项 | 说明 |
Automatic Scene Tracking | 开启后,场景切换会自动作为 RUM View 上报 |
调试配置
配置项 | 说明 |
Enable Debug Output | 是否输出 SDK 诊断日志 |
Verbosity Level | 日志级别(Debug/Info/Warning/Error) |
3. 日志配置(Logging Tab)
配置项 | 说明 | 默认值 |
Enable Structured Logging | 是否开启结构化日志采集 | false |
Structured Log On DebugLog | 是否采集 Debug.Log | false |
Structured Log On DebugLogWarning | 是否采集 Debug.LogWarning | true |
Structured Log On DebugLogAssertion | 是否采集 Debug.LogAssertion | true |
Structured Log On DebugLogError | 是否采集 Debug.LogError | true |
Structured Log On DebugLogException | 是否采集 Debug.LogException | true |
4. 网络配置(Network Tab)
配置项 | 说明 | 默认值 |
Enable Network Tracking | 是否开启网络请求追踪 | true |
Network Sample Rate | 采样率(0.0-1.0) | 1.0 |
Network Url Allowlist | URL 白名单(为空则允许所有) | 空 |
Network Url Blocklist | URL 黑名单 | 空 |
Capture Request Body Size | 是否采集请求体大小 | true |
Capture Response Body Size | 是否采集响应体大小 | true |
Capture Request Headers | 是否采集请求头 | false |
Capture Response Headers | 是否采集响应头 | false |
分布式链路追踪
SDK 支持分布式链路追踪,可在 HTTP 请求中注入追踪上下文头。
TraceContextStandard 枚举
定义于 Runtime/Network/TraceContextStandard.cs:
值 | 说明 |
W3C | W3C Trace Context 标准,使用 |
SkyWalking | Apache SkyWalking 标准,使用 |
TraceContextConfig 类
配置 URL 模式与追踪标准的映射。
[Serializable]
public class TraceContextConfig
{
public string UrlPattern { get; set; } // URL 匹配模式
public TraceContextStandard Standard { get; set; } // 追踪标准
}配置方式
在 Unity Editor 的 Network Tab 中配置:
勾选
Enable Trace Context。添加
Trace Context Configs条目。设置
Url Pattern(如api.example.com)。选择
Standard(W3C 或 SkyWalking)。
HTTP 方法过滤
可单独配置是否追踪以下 HTTP 方法:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS。
分布式链路追踪
配置项 | 说明 |
Enable Trace Context | 是否开启分布式链路追踪 |
Trace Context Configs | 按 URL 模式配置追踪标准(W3C/SkyWalking) |
平台特定配置
Android 平台
1. 安装 EDM4U
SDK 依赖 External Dependency Manager for Unity (EDM4U) 来管理原生依赖。如果尚未安装,请从 EDM4U 发布页面 下载并导入。
2. 解析依赖
导入 SDK 后,EDM4U 会自动解析 Editor/AlibabacloudDependencies.xml 中定义的原生依赖:
<androidPackage spec="com.aliyun.rum:alibabacloud-android-rum-sdk:*.*.*">
<repositories>
<repository>https://repo1.maven.org/maven2</repository>
</repositories>
</androidPackage>如果自动解析未触发,请执行:
Assets->External Dependency Manager->Android Resolver->Resolve。
3. ProGuard 配置
SDK 已包含 ProGuard 规则,无需额外配置。如需手动添加,规则位于 Runtime/Android/proguard-unity.txt。
iOS 平台
1. 安装 CocoaPods
确保系统已安装 CocoaPods:
sudo gem install cocoapods2. 解析依赖
EDM4U 会自动生成 Podfile 并添加依赖:
pod 'AlibabaCloudRUM', '*.*.*'执行解析:
Assets->External Dependency Manager->iOS Resolver->Settings-> 确认Cocoapods Integration已启用。
3. 构建后操作
构建 iOS 项目后,必须使用 .xcworkspace 文件打开 Xcode 工程,而非 .xcodeproj:
cd Your-Builds/iOS-Paths(或 Podfile 文件所在目录)
pod install
open Your-Unity-App.xcworkspace4. Xcode 配置
确保 AlibabaCloudRUMSDK.xcframework 已正确链接到 UnityFramework,并设置为 Embed & Sign。
配置文件说明
SDK 配置保存在 ScriptableObject 中,路径为:
Assets/Resources/Alibabacloud/AlibabacloudOptions.asset配置文件会在运行时通过 Resources.Load<AlibabacloudOptions>() 自动加载。
接入验证
运行后,控制台出现以下日志即表示 SDK 初始化成功:
Android
[AlibabaCloudRum] rum init successiOS
[AlibabaCloudRUM] [INFO ] [RUM] <start> AlibabaCloud RUM init success常见问题
Android 构建失败,提示找不到 RUM SDK 类
A: 确保 EDM4U 已正确解析依赖。检查 Assets/Plugins/Android 目录下是否生成了相关 Gradle 配置文件。
iOS 构建后崩溃
A: 确保使用 .xcworkspace 打开 Xcode 工程,并检查 AlibabaCloudRUMSDK.xcframework 是否正确链接。