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 |
いいえ |
レスポンスボディの内容 |
コード例
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);
関連トピック