跳转至

RUM 配置

RUM 初始化配置

FTUnityBridge.InitRUMConfig(new RUMConfig()
{
    androidAppId = "androidAppId",
    iOSAppId = "iOSAppId",
    sampleRate = 0.8f,
});
字段 类型 必须 说明
androidAppId string 是 对应设置 RUM appid,才会开启 RUM 的采集功能,获取 appid 方法
iOSAppId string 是 对应设置 RUM appid,才会开启 RUM 的采集功能,获取 appid 方法
sampleRate float 否 采样率,取值范围 [0,1],0 表示不采集,1 表示全采集,默认值为 1。作用域为同一 session_id 下所有 View、Action、LongTask、Error 数据
sessionOnErrorSampleRate float 否 设置错误采集率,当会话未被 sampleRate 采样时,若会话期间发生错误,可以采集到错误前 1 分钟范围的数据,默认值为 0
enableNativeUserAction boolean 否 是否进行 Native Action 追踪,Button 点击事件,默认为 false,Android 云打包不支持
enableNativeUserResource boolean 否 是否进行 Native Resource 自动追踪,默认为 false,Android 云打包不支持。iOS 端开启后会将系统 API 发起的 resource 一并采集,此时请屏蔽 iOS 端手动采集,以防止数据重复采集
enableNativeUserView boolean 否 是否进行 Native View 自动追踪,默认为 false
errorMonitorType string/array 否 错误监控补充类型:all、battery、memory、cpu,默认不设置
deviceMonitorType string/array 否 页面监控补充类型:all、battery(仅 Android 支持)、memory、cpu、fps,默认不设置
detectFrequency string 否 页面监控频率:normal(默认)、frequent、rare
globalContext object 否 自定义全局参数,特殊 key:track_id(用于追踪功能)
enableResourceHostIP boolean 否 是否采集请求目标域名地址的 IP,只影响 enableNativeUserResource = true 的默认采集
enableTrackNativeCrash boolean 否 是否开启 Android Java Crash 和 OC/C/C++ 崩溃监测,默认为 false
enableTrackNativeAppANR boolean 否 是否开启 Native ANR 监测,默认为 false
enableTrackNativeFreeze boolean 否 是否进行 Native Freeze 自动追踪,默认为 false
nativeFreezeDurationMs number 否 设置采集 Native Freeze 卡顿的阈值,取值范围 [100,),单位毫秒。iOS 默认 250ms,Android 默认 1000ms
rumDiscardStrategy string 否 丢弃策略:discard 丢弃新数据(默认)、discardOldest 丢弃旧数据
rumCacheLimitCount number 否 本地缓存最大 RUM 条目数量限制 [10_000,),默认 100_000

RUM 手动埋点

Unity SDK 当前主要通过手动方法调用来实现自定义 RUM 数据采集。

Action

StartAction 与 AddAction 的使用区别
  • StartAction 内部会自动计算 Action 耗时,计算期间会尽量与附近发生的 Resource、LongTask、Error 数据进行关联,并设有 100 ms 频繁触发保护,建议用于用户操作类型的数据。
  • 如果需要频繁调用,请使用 AddAction。通过 AddAction 上报的 Action 不会与 StartAction 发生冲突,也不会与当前的 Resource、LongTask、Error 数据进行关联。

使用方法

/// <summary>
/// 添加 Action
/// </summary>
/// <param name="actionName">action 名称</param>
/// <param name="actionType">action 类型</param>
public static void StartAction(string actionName, string actionType)

/// <summary>
/// 添加 Action
/// </summary>
/// <param name="actionName">action 名称</param>
/// <param name="actionType">action 类型</param>
/// <param name="property">附加属性参数</param>
public static void StartAction(string actionName, string actionType, Dictionary<string, object> property)

/// <summary>
/// 添加 Action
/// </summary>
/// <param name="actionName">action 名称</param>
/// <param name="actionType">action 类型</param>
public static void AddAction(string actionName, string actionType)

/// <summary>
/// 添加 Action
/// </summary>
/// <param name="actionName">action 名称</param>
/// <param name="actionType">action 类型</param>
/// <param name="property">附加属性参数</param>
public static void AddAction(string actionName, string actionType, Dictionary<string, object> property)

代码示例

FTUnityBridge.StartAction("click", "test");

View

使用方法

/// <summary>
/// View 开始
/// </summary>
/// <param name="viewName">当前页面名称</param>
public static void StartView(string viewName)

/// <summary>
/// View 开始
/// </summary>
/// <param name="viewName">当前页面名称</param>
/// <param name="property">附加属性参数</param>
public static void StartView(string viewName, Dictionary<string, object> property)

/// <summary>
/// View 结束
/// </summary>
public static void StopView()

/// <summary>
/// View 结束
/// </summary>
/// <param name="property">附加属性参数</param>
public static void StopView(Dictionary<string, object> property)

代码示例

FTUnityBridge.StartView("TEST_VIEW_ONE");

FTUnityBridge.StopView();

Resource

使用方法

/// <summary>
/// resource 开始
/// </summary>
/// <param name="resourceId">资源 Id</param>
public static async Task StartResource(string resourceId)

/// <summary>
/// resource 开始
/// </summary>
/// <param name="resourceId">资源 Id</param>
/// <param name="property">附加属性参数</param>
public static async Task StartResource(string resourceId, Dictionary<string, object> property)

/// <summary>
/// resource 结束
/// </summary>
/// <param name="resourceId">资源 Id</param>
public static async Task StopResource(string resourceId)

/// <summary>
/// resource 结束
/// </summary>
/// <param name="resourceId">资源 Id</param>
/// <param name="property">附加属性参数</param>
public static async Task StopResource(string resourceId, Dictionary<string, object> property)

/// <summary>
/// 添加网络传输内容和指标
/// </summary>
/// <param name="resourceId">资源 Id</param>
/// <param name="resourceParams">数据传输内容</param>
public static async Task AddResource(string resourceId, ResourceParams resourceParams)

ResourceParams

方法名 类型 必须 说明
url string 是 url 地址
requestHeader string 否 请求头参数,没有格式限制
responseHeader string 否 响应头参数,没有格式限制
responseConnection string 否 响应 connection
responseContentType string 否 响应 ContentType
responseContentEncoding string 否 响应 ContentEncoding
resourceMethod string 否 请求方法 GET、POST 等
responseBody string 否 返回 body 内容

代码示例

FTUnityBridge.StartResource(resourceId);

FTUnityBridge.StopResource(resourceId);

ResourceParams resourceParams = new ResourceParams();
resourceParams.url = url;
resourceParams.requestHeader = client.DefaultRequestHeaders.ToDictionary(header => header.Key, header => string.Join(",", header.Value));
resourceParams.responseHeader = response.Headers.ToDictionary(header => header.Key, header => string.Join(",", header.Value));
resourceParams.resourceStatus = (int)response.StatusCode;
resourceParams.responseBody = responseData;
resourceParams.resourceMethod = "GET";

FTUnityBridge.AddResource(resourceId, resourceParams);

Error

使用方法

/// <summary>
/// 添加错误信息
/// </summary>
/// <param name="log">日志</param>
/// <param name="message">消息</param>
public static async Task AddError(string log, string message)

/// <summary>
/// 添加错误信息
/// </summary>
/// <param name="log">日志</param>
/// <param name="message">消息</param>
/// <param name="property">附加属性参数</param>
public static async Task AddError(string log, string message, Dictionary<string, object> property)

代码示例

void OnEnable()
{
    Application.logMessageReceived += LogCallBack;
}

void OnDisable()
{
    Application.logMessageReceived -= LogCallBack;
}

void LogCallBack(string condition, string stackTrace, LogType type)
{
    if (type == LogType.Exception)
    {
        FTUnityBridge.AddError(stackTrace, condition);
    }
}

LongTask

使用方法

/// <summary>
/// 添加长耗时任务
/// </summary>
/// <param name="log">日志内容</param>
/// <param name="duration">持续时间,纳秒</param>
public static async Task AddLongTask(string log, long duration)

/// <summary>
/// 添加长耗时任务
/// </summary>
/// <param name="log">日志内容</param>
/// <param name="duration">持续时间,纳秒</param>
/// <param name="property">附加属性参数</param>
public static async Task AddLongTask(string log, long duration, Dictionary<string, object> property)

代码示例

FTUnityBridge.AddLongTask("long task test", 100002);

相关专题

文档评价

文档内容是否对您有帮助?