コンテンツにスキップ

RUM 設定

RUM 初期化設定

FTSdk.initRUMWithConfig(
        new FTRUMConfig()
            .setRumAppId(RUM_APP_ID)
            .setEnableTraceUserView(true)
            .setDeviceMetricsMonitorType(DeviceMetricsMonitorType.ALL.getValue())
            .setEnableTraceUserAction(true)
            .setEnableTraceUserResource(true)
            .setEnableTrackAppUIBlock(true)
            .setEnableTrackAppCrash(true)
            .setEnableTrackAppANR(true)
            .setExtraMonitorTypeWithError(ErrorMonitorType.ALL.getValue())
);
FTSdk.initRUMWithConfig(
    FTRUMConfig()
        .setRumAppId(RUM_APP_ID)
        .setEnableTraceUserView(true)
        .setDeviceMetricsMonitorType(DeviceMetricsMonitorType.ALL.getValue())
        .setEnableTraceUserAction(true)
        .setEnableTraceUserResource(true)
        .setEnableTrackAppUIBlock(true)
        .setEnableTrackAppCrash(true)
        .setEnableTrackAppANR(true)
        .setExtraMonitorTypeWithError(ErrorMonitorType.ALL.getValue())
)
メソッド名 必須 説明
setRumAppId String はい RUM AppId を設定します。RUM の appid を設定することで、RUM の収集機能が有効になります。appid の取得方法
setSamplingRate Float いいえ サンプリングレートを設定します。範囲は [0,1] で、0 は収集しない、1 は全収集を意味します。デフォルト値は 1 です。同一の session_id 下のすべての ViewActionLongTaskError データに適用されます。
setSessionErrorSampleRate Float いいえ エラーサンプリングレートを設定します。セッションが setSamplingRate によってサンプリングされなかった場合、セッション中にエラーが発生すると、エラー発生前 1 分間のデータを収集できます。範囲は [0,1] で、0 は収集しない、1 は全収集を意味します。デフォルト値は 0 です。同一の session_id 下のすべての ViewActionLongTaskError データに適用されます。ft-sdk 1.6.11 以降でサポートされています。
setEnableTrackAppCrash Boolean いいえ アプリのクラッシュログを報告するかどうかを設定します。デフォルトは false です。有効にすると、エラー分析にエラースタックデータが表示されます。クラッシュログの難読化コンテンツの変換については、シンボルファイルのアップロード を参照してください。ft-sdk 1.5.1 以降では、extraLogCatWithJavaCrashextraLogCatWithNativeCrash を使用して、Java Crash と Native Crash で logcat を表示するかどうかを設定できます。
setIssueDataProvider FTIssueDataProvider いいえ 自動収集された Java/Native Crash および watchdog/native ANR Error に、検証済みのカスタムフィールドを追加します。履歴復旧データを含みます。デフォルトでは設定されません。ft-sdk 1.7.5 以降でサポートされています。詳細は Crash/ANR カスタムフィールド を参照してください。
setExtraMonitorTypeWithError Array いいえ 補助監視情報を設定します。RUM クラッシュデータに追加の監視データを追加します。ErrorMonitorType.BATTERY はバッテリー残量、ErrorMonitorType.MEMORY はメモリ使用量、ErrorMonitorType.CPU は CPU 使用率です。デフォルトでは設定されません。
setDeviceMetricsMonitorType Array いいえ View 監視情報を設定します。View のライフサイクル中に監視データを追加します。DeviceMetricsMonitorType.BATTERY は現在のページの最大電流出力を監視、DeviceMetricsMonitorType.MEMORY は現在のアプリのメモリ使用量を監視、DeviceMetricsMonitorType.CPU は CPU の動作回数を監視、DeviceMetricsMonitorType.FPS は画面のフレームレートを監視します。監視周期は DetectFrequency.DEFAULT(500 ミリ秒)、DetectFrequency.FREQUENT(100 ミリ秒)、DetectFrequency.RARE(1 秒)から選択できます。デフォルトでは設定されません。
setEnableTrackAppANR Boolean いいえ ANR 収集を有効にするかどうかを設定します。デフォルトは false です。ft-sdk 1.7.5 以降、Android 11(API 30)以上では、プロセスの次回起動時に ApplicationExitInfo を通じて致命的な ANR を復旧します。非致命的なリアルタイム ANR は収集しません。Android 10(API 29)以下では、引き続きリアルタイムの watchdog/native ANR 収集を使用します。extraLogCatWithANR は API 29 以下のリアルタイム収集パスでのみ使用されます。
setEnableTrackAppUIBlock Boolean, long いいえ UI のカクつき検出を有効にするかどうかを設定します。デフォルトは false です。ft-sdk 1.6.4 以降では、blockDurationMs で検出時間範囲 [100,) をミリ秒単位で制御できます。デフォルトは 1 秒です。
setEnableTraceUserAction Boolean いいえ ユーザー操作を自動追跡するかどうかを設定します。現在はユーザーの起動とクリック操作のみをサポートしています。この設定は ft-plugin に依存します。デフォルトは false です。
setEnableTraceUserView Boolean いいえ ユーザーページ操作を自動追跡するかどうかを設定します。この設定は ft-plugin に依存します。デフォルトは false です。
setEnableTraceUserViewInFragment Boolean いいえ Fragment タイプのページデータを自動追跡するかどうかを設定します。この設定は ft-plugin に依存します。デフォルトは false です。ft-sdk 1.6.11 以降でサポートされています。
setEnableTraceUserResource Boolean いいえ ユーザーのネットワークリクエストを追跡するかどうかを設定します。OkHttp のみをサポートします。デフォルトは false です。通常の HTTP リクエストの自動収集は ft-plugin に依存します。ft-sdk >= 1.7.5 かつ ft-plugin >= 1.3.8 の場合、newWebSocket() のハンドシェイク Resource も自動収集します。FTWebSocket を使用して明示的に統合することもできます。
setEnableResourceHostIP Boolean いいえ リクエストのターゲットドメイン名の IP アドレスを収集するかどうかを設定します。適用範囲:EnableTraceUserResource が true の場合のデフォルト収集のみに影響します。カスタム Resource 収集には、FTResourceEventListener.FTFactory(true) を使用してこの機能を有効にする必要があります。また、単一の OkHttp は同じドメイン名に対して IP キャッシュメカニズムを持ち、同じ OkHttpClient でサーバー側の IP が変更されない限り、IP は一度だけ生成されます。
setResourceUrlHandler Callback いいえ フィルタリングする Resource の条件を設定します。デフォルトではフィルタリングしません。
setOkHttpEventListenerHandler Callback いいえ ASM がグローバルな OkHttp EventListener を設定します。デフォルトでは設定されません。
setOkHttpResourceContentHandler Callback いいえ ASM がグローバルな FTResourceInterceptor.ContentHandlerHelper を設定します。デフォルトでは設定されません。ft-sdk 1.6.7 以降でサポートされています。カスタム Resource
addGlobalContext Dictionary いいえ カスタムタグを追加します。ユーザー監視データソースの識別に使用します。トレース機能を使用する場合、パラメータ keytrack_idvalue は任意の数値です。追加ルールの注意事項はこちらを参照してください。
setRumCacheLimitCount int いいえ ローカルキャッシュの RUM 制限数 [10_000,) を設定します。デフォルトは 100,000 です。ft-sdk 1.6.6 以降でサポートされています。
setEnableTraceWebView Boolean いいえ Android SDK を介した WebView データの収集を有効にするかどうかを設定します。デフォルトは true です。ft-sdk 1.6.12 以降でサポートされています。
setAllowWebViewHost Array いいえ データ追跡を許可する WebView のホストアドレスを設定します。null の場合はすべて収集します。デフォルトは null です。ft-sdk 1.6.12 以降でサポートされています。このメソッドは非推奨です。ft-sdk 1.7.5 以降は、FTSDKConfig.setAllowWebViewHost を使用して WebView RUM と Log を統一的に設定してください。
setViewActivityTrackingHandler FTViewActivityTrackingHandler いいえ Activity ビューの追跡方法をカスタマイズするために使用します。Activity のライフサイクルイベントが発生すると、このハンドラーが呼び出されて、その Activity をどのように追跡するかを決定します。デフォルトでは何も処理しません。ft-sdk 1.6.13 以降でサポートされています。
setViewFragmentTrackingHandler FTViewFragmentTrackingHandler いいえ Fragment ビューの追跡方法をカスタマイズするために使用します。Fragment のライフサイクルイベントが発生すると、このハンドラーが呼び出されて、その Fragment をどのように追跡するかを決定します。デフォルトでは何も処理しません。ft-sdk 1.6.13 以降でサポートされています。
setActionTrackingHandler FTActionTrackingHandler いいえ ユーザー操作の追跡方法をカスタマイズするために使用します。ユーザーが操作を実行すると、このハンドラーが呼び出されて、その操作をどのように追跡するかを決定します。デフォルトでは何も処理しません。ft-sdk 1.6.13 以降でサポートされています。

WebSocket ハンドシェイク Resource

ft-sdk >= 1.7.5 かつ ft-plugin >= 1.3.8 の場合、FTRUMConfig.setEnableTraceUserResource(true) を有効にすると、OkHttp の newWebSocket() リクエストに対して、ハンドシェイク Resource が自動的に 1 回収集されます。

ft-sdk のみを 1.7.5 にアップグレードし、引き続き ft-plugin 1.3.7 を使用する場合でも、ビルドと実行は互換性がありますが、1.3.7 では WebSocket ハンドシェイクは自動的にインターセプトされません。この場合は、FTWebSocket.newWebSocket() または FTWebSocket.wrap() を使用して明示的に統合できます。呼び出しポイントを変更できない、または WebSocket.Factory を注入できないサードパーティライブラリの場合は、引き続き ft-plugin >= 1.3.8 にアップグレードする必要があります。

この Resource は、ハンドシェイクが成功した場合、サーバー側で拒否された場合、または失敗した場合に終了します。WebSocket 接続の存続時間は統計されず、メッセージ内容も収集されません。既存の Resource URL フィルタリングと RUM サンプリングルールは引き続き有効です。データには以下のフィールドが含まれます。

  • resource_type=websocket
  • resource_websocket_collection_level=handshake
  • resource_websocket_handshake_state:値は successrejectedfailed のいずれか

Crash/ANR カスタムフィールド

ft-sdk >= 1.7.5 では、FTRUMConfig.setIssueDataProvider(FTIssueDataProvider) を使用して、自動収集された Crash および ANR RUM Error にカスタムフィールドを追加できます。

FTRUMConfig config = new FTRUMConfig()
    .setEnableTrackAppCrash(true)
    .setEnableTrackAppANR(true)
    .setIssueDataProvider(issue -> {
        Map<String, Object> fields = new HashMap<>();
        fields.put("business_scene", sceneStore.current());
        fields.put("historical_issue", issue.isHistorical());
        return fields;
    });
val config = FTRUMConfig()
    .setEnableTrackAppCrash(true)
    .setEnableTrackAppANR(true)
    .setIssueDataProvider { issue ->
        mapOf(
            "business_scene" to sceneStore.current(),
            "historical_issue" to issue.isHistorical
        )
    }

FTIssueDataProvider.provideAdditionalFields(FTIssueInfo) は、Error 構築時に同期的に呼び出され、並行して実行される可能性があります。実装はスレッドセーフを保証し、I/O を避け、10 ミリ秒以内に返す必要があります。Provider を設定しても Crash または ANR 収集は自動的に有効になりません。対応する収集項目を有効にする必要があります。

  • 自動収集された Java/Native Crash、および watchdog、native、ApplicationExitInfo ANR のみが Provider をトリガーします。手動 Error、Network Error、WebView Error はトリガーしません。
  • Native dump または ApplicationExitInfo から復元されたデータでは、FTIssueInfo.isHistorical()true を返します。
  • 戻り値は文字列、ブール値、および限定的な数値をサポートし、最大 50 エントリまでチェックされます。Key は最大 100 UTF-8 バイト、文字列値は最大 4096 UTF-8 バイト、すべてのフィールドの合計は 25 KiB を超えてはなりません。
  • 無効なフィールド、制限を超えたフィールド、SDK 予約フィールド、および error. または error_ で始まる Key は無視されます。ビジネス側は、フィールドの内容がプライバシーとコンプライアンスの要件を満たしていることを保証する必要があります。

RUM 手動計装

FTRUMConfigenableTraceUserActionenableTraceUserViewenableTraceUserResourcesetEnableTrackAppUIBlocksetEnableTrackAppCrashsetEnableTrackAppANR を設定することで、ActionViewResourceLongTaskError の自動収集が可能になります。カスタム収集が必要な場合は、FTRUMGlobalManager を使用して手動で報告できます。

Action

使用方法

/**
 * Action を追加
 *
 * @param actionName action 名
 * @param actionType action タイプ
 * @param property   追加プロパティ(オプション)
 */
public void startAction(String actionName, String actionType, HashMap<String, Object> property)

/**
 * Action を追加。このデータは Error、Resource、LongTask データと関連付けることはできません。
 *
 * @param actionName action 名
 * @param actionType action タイプ
 * @param duration   ナノ秒、持続時間(オプション)
 * @param property   拡張プロパティ(オプション)
 */
public void addAction(String actionName, String actionType, long duration, HashMap<String, Object> property)
/**
 * action を追加
 *
 * @param actionName action 名
 * @param actionType action タイプ
 * @param property   追加プロパティ(オプション)
 */
fun startAction(actionName: String, actionType: String, property: HashMap<String, Any>)

/**
 * Action を追加
 *
 * @param actionName action 名
 * @param actionType action タイプ
 * @param duration   ナノ秒、持続時間(オプション)
 * @param property   拡張プロパティ(オプション)
 */
fun addAction(actionName: String, actionType: String, duration: Long, property: HashMap<String, Any>)

startAction は内部で処理時間を計算するアルゴリズムを持ち、計算中に近くで発生した ResourceLongTaskError データとデータの関連付けを試みます。100 ミリ秒の頻繁なトリガー保護が設定されており、ユーザー操作タイプのデータに推奨されます。頻繁に呼び出す必要がある場合は addAction を使用してください。このデータは startAction と競合せず、また現在の ResourceLongTaskError とのデータ関連付けは行われません。

コード例

// シナリオ 1
FTRUMGlobalManager.get().startAction("login", "action_type");

// シナリオ 2: 動的パラメータ
HashMap<String, Object> map = new HashMap<>();
map.put("ft_key", "ft_value");
FTRUMGlobalManager.get().startAction("login", "action_type", map);

// シナリオ 1
FTRUMGlobalManager.get().addAction("login", "action_type");

// シナリオ 2: 動的パラメータ
HashMap<String, Object> map = new HashMap<>();
map.put("ft_key", "ft_value");
FTRUMGlobalManager.get().addAction("login", "action_type", map);
// シナリオ 1
FTRUMGlobalManager.get().startAction("login", "action_type")

// シナリオ 2: 動的パラメータ
val map = HashMap<String, Any>()
map["ft_key"] = "ft_value"
FTRUMGlobalManager.get().startAction("login", "action_type", map)

// シナリオ 1
FTRUMGlobalManager.get().addAction("login", "action_type")

// シナリオ 2: 動的パラメータ
val map = HashMap<String, Any>()
map["ft_key"] = "ft_value"
FTRUMGlobalManager.get().addAction("login", "action_type", map)

View

使用方法

/**
 * view 開始
 *
 * @param viewName 現在のページ名
 * @param property 追加プロパティ(オプション)
 */
public void startView(String viewName, HashMap<String, Object> property)

/**
 * view 終了
 *
 * @param property 追加プロパティ(オプション)
 */
public void stopView(HashMap<String, Object> property)

/**
 * 現在の view の loading_time 指標を更新します。単位はナノ秒です。
 *
 * @param duration duration
 */
public void updateLoadTime(long duration)
/**
 * view 開始
 *
 * @param viewName 現在のページ名
 * @param property 追加プロパティ(オプション)
 */
fun startView(viewName: String, property: HashMap<String, Any>)

/**
 * view 終了
 *
 * @param property 追加プロパティ(オプション)
 */
fun stopView(property: HashMap<String, Any>)

/**
 * 現在の view の loading_time 指標を更新します。単位はナノ秒です。
 *
 * @param duration duration
 */
fun updateLoadTime(duration: Long)

コード例

@Override
protected void onResume() {
    super.onResume();

    // シナリオ 1
    FTRUMGlobalManager.get().startView("Current Page Name");

    // シナリオ 2: 動的パラメータ
    HashMap<String, Object> map = new HashMap<>();
    map.put("ft_key", "ft_value");
    map.put("ft_key_will_change", "ft_value");
    FTRUMGlobalManager.get().startView("Current Page Name", map)
}

@Override
protected void onPause() {
    super.onPause();

    // シナリオ 1
    FTRUMGlobalManager.get().stopView();

    // シナリオ 2 : 動的パラメータ
    HashMap<String, Object> map = new HashMap<>();
    map.put("ft_key_will_change", "ft_value_change"); // ft_key_will_change の値は stopView 時に ft_value_change に更新されます
    FTRUMGlobalManager.get().stopView(map);

}
override fun onResume() {
    super.onResume()

    // シナリオ 1
    FTRUMGlobalManager.get().startView("Current Page Name")

    // シナリオ 2: 動的パラメータ
    val map = HashMap<String, Any>()
    map["ft_key"] = "ft_value"
    map["ft_key_will_change"] = "ft_value"
    FTRUMGlobalManager.get().startView("Current Page Name", map)
}

override fun onPause() {
    super.onPause()

    // シナリオ 1
    FTRUMGlobalManager.get().stopView()

    // シナリオ 2 : 動的パラメータ
    val map = HashMap<String, Any>()
    map["ft_key_will_change"] = "ft_value_change" // ft_key_will_change の値は、stopView 時に ft_value_change に変更されます
    FTRUMGlobalManager.get().stopView(map)
}

Error

使用方法

/**
 * エラー情報を追加
 *
 * @param log       ログ
 * @param message   メッセージ
 * @param errorType エラータイプ, ErrorType
 * @param state     プログラム実行状態
 * @param dateline  発生時間、ナノ秒(オプション)
 * @param property  追加プロパティ(オプション)
 */
public void addError(String log, String message, long dateline, ErrorType errorType,
                     AppState state, HashMap<String, Object> property)

/**
 * エラー情報を追加
 *
 * @param log       ログ
 * @param message   メッセージ
 * @param errorType エラータイプ, String
 * @param state     プログラム実行状態
 * @param dateline  発生時間、ナノ秒(オプション)
 * @param property  追加プロパティ(オプション)
 */
public void addError(String log, String message, long dateline, String errorType,
                     AppState state, HashMap<String, Object> property)
/**
 * エラー情報を追加
 *
 * @param log       ログ
 * @param message   メッセージ
 * @param errorType エラータイプ, ErrorType
 * @param state     プログラム実行状態
 * @param dateline  発生時間、ナノ秒(オプション)
 * @param property  追加プロパティ(オプション)
 */
fun addError(log: String, message: String, dateline: Long, errorType: ErrorType, state: AppState, property: HashMap<String, Any>)

/**
 * エラー情報を追加
 *
 * @param log       ログ
 * @param message   メッセージ
 * @param errorType エラータイプ, String
 * @param state     プログラム実行状態
 * @param dateline  発生時間、ナノ秒(オプション)
 * @param property  追加プロパティ(オプション)
 */
fun addError(log: String, message: String, dateline: Long, errorType: String, state: AppState, property: HashMap<String, Any>)

コード例

// シナリオ 1:
FTRUMGlobalManager.get().addError("error log", "error msg", ErrorType.JAVA, AppState.RUN);

// シナリオ 2: 発生したエラーを遅延記録する場合、ここでの時間は通常、エラーが発生した時間です
FTRUMGlobalManager.get().addError("error log", "error msg", 16789000000000000000L, ErrorType.JAVA, AppState.RUN);

// シナリオ 3:動的パラメータ
HashMap<String, Object> map = new HashMap<>();
map.put("ft_key", "ft_value");
FTRUMGlobalManager.get().addError("error log", "error msg", ErrorType.JAVA, AppState.RUN, map);
// シナリオ 1:
FTRUMGlobalManager.get().addError("error log", "error msg", ErrorType.JAVA, AppState.RUN)

// シナリオ 2: 発生したエラーを遅延記録する場合、ここでの時間は通常、エラーが発生した時間です
FTRUMGlobalManager.get().addError("error log", "error msg", 16789000000000000000, ErrorType.JAVA, AppState.RUN)

// シナリオ 3:動的パラメータ
val map = HashMap<String, Any>()
map["ft_key"] = "ft_value"
FTRUMGlobalManager.get().addError("error log", "error msg", ErrorType.JAVA, AppState.RUN, map)

LongTask

使用方法

/**
 * 長時間タスクを追加
 *
 * @param log      ログ内容
 * @param duration 持続時間、ナノ秒
 * @param property 追加プロパティ(オプション)
 */
public void addLongTask(String log, long duration, HashMap<String, Object> property)
/**
 * 長時間タスクを追加
 *
 * @param log      ログ内容
 * @param duration 持続時間、ナノ秒
 * @param property 追加プロパティ(オプション)
 */
fun addLongTask(log: String, duration: Long, property: HashMap<String, Any>)

コード例

// シナリオ 1
FTRUMGlobalManager.get().addLongTask("error log", 1000000L);

// シナリオ 2: 動的パラメータ
HashMap<String, Object> map = new HashMap<>();
map.put("ft_key", "ft_value");
FTRUMGlobalManager.get().addLongTask("", 1000000L, map);
// シナリオ 1
FTRUMGlobalManager.get().addLongTask("error log", 1000000L)

// シナリオ 2: 動的パラメータ
val map = HashMap<String, Any>()
map["ft_key"] = "ft_value"
FTRUMGlobalManager.get().addLongTask("", 1000000L, map)

Resource

使用方法

/**
 * resource 開始
 *
 * @param resourceId リソース ID
 * @param property   追加プロパティ(オプション)
 */
public void startResource(String resourceId, HashMap<String, Object> property)

/**
 * resource 終了
 *
 * @param resourceId リソース ID
 * @param property   追加プロパティ(オプション)
 */
public void stopResource(final String resourceId, HashMap<String, Object> property)

/**
 * ネットワーク転送内容を設定
 *
 * @param resourceId resourceId
 * @param params params
 * @param netStatusBean netStatusBean
 */
public void addResource(String resourceId, ResourceParams params, NetStatusBean netStatusBean)
/**
 * resource 開始
 *
 * @param resourceId リソース ID(オプション)
 */
fun startResource(resourceId: String, property: HashMap<String, Any>)

/**
 * resource 終了
 *
 * @param resourceId リソース ID
 * @param property   追加プロパティ(オプション)
 */
fun stopResource(resourceId: String, property: HashMap<String, Any>)

/**
 * ネットワーク転送内容を設定
 *
 * @param resourceId resourceId
 * @param params params
 * @param netStatusBean netStatusBean
 */
fun addResource(resourceId: String, params: ResourceParams, netStatusBean: NetStatusBean)

コード例

// シナリオ 1
// リクエスト開始
FTRUMGlobalManager.get().startResource("resourceId");

// ...

// リクエスト終了
FTRUMGlobalManager.get().stopResource("resourceId");

// 最後に、リクエスト終了後、リクエスト関連のデータ指標を送信
ResourceParams params = new ResourceParams();
params.setUrl("https://guance.com");
params.setResponseContentType(response.header("Content-Type"));
params.setResponseConnection(response.header("Connection"));
params.setResponseContentEncoding(response.header("Content-Encoding"));
params.setResponseHeader(response.headers().toString());
params.setRequestHeader(request.headers().toString());
params.setResourceStatus(response.code());
params.setResourceMethod(request.method());

NetStatusBean bean = new NetStatusBean();
bean.setTcpStartTime(60000000);
// ...

FTRUMGlobalManager.get().addResource("resourceId", params, bean);

// シナリオ 2 :動的パラメータの使用
HashMap<String, Object> map = new HashMap<>();
map.put("ft_key", "ft_value");
map.put("ft_key_will_change", "ft_value");

FTRUMGlobalManager.get().startResource("resourceId", map);

// ...
HashMap<String, Object> map = new HashMap<>();
map.put("ft_key_will_change", "ft_value_change"); // ft_key_will_change の値は、stopResource 時に ft_value_change に変更されます
FTRUMGlobalManager.get().stopResource(uuid, map);
// シナリオ 1
// リクエスト開始
FTRUMGlobalManager.get().startResource("resourceId")

// リクエスト終了
FTRUMGlobalManager.get().stopResource("resourceId")

// 最後に、リクエスト終了後、リクエスト関連のデータ指標を送信
val params = ResourceParams()
params.url = "https://guance.com"
params.responseContentType = response.header("Content-Type")
params.responseConnection = response.header("Connection")
params.responseContentEncoding = response.header("Content-Encoding")
params.responseHeader = response.headers.toString()
params.requestHeader = request.headers.toString()
params.resourceStatus = response.code
params.resourceMethod = request.method

val bean = NetStatusBean()
bean.tcpStartTime = 60000000
// ...
FTRUMGlobalManager.get().addResource("resourceId", params, bean)

// シナリオ 2 :動的パラメータの使用
val map = hashMapOf<String, Any>(
    "ft_key" to "ft_value",
    "ft_key_will_change" to "ft_value"
)
FTRUMGlobalManager.get().startResource("resourceId", map)

// ...
val map = hashMapOf<String, Any>(
    "ft_key_will_change" to "ft_value_change"
)
// ft_key_will_change の値は、stopResource 時に ft_value_change に変更されます

FTRUMGlobalManager.get().stopResource(uuid, map)
メソッド名 必須 説明 備考
NetStatusBean.fetchStartTime いいえ リクエスト開始時間
NetStatusBean.tcpStartTime いいえ TCP 接続時間
NetStatusBean.tcpEndTime いいえ TCP 終了時間
NetStatusBean.dnsStartTime いいえ DNS 開始時間
NetStatusBean.dnsEndTime いいえ DNS 終了時間
NetStatusBean.responseStartTime いいえ 応答開始時間
NetStatusBean.responseEndTime いいえ 応答終了時間
NetStatusBean.sslStartTime いいえ SSL 開始時間
NetStatusBean.sslEndTime いいえ SSL 終了時間
NetStatusBean.property いいえ 追加プロパティ
ResourceParams.url はい URL アドレス
ResourceParams.requestHeader いいえ リクエストヘッダーパラメータ
ResourceParams.responseHeader いいえ 応答ヘッダーパラメータ
ResourceParams.responseConnection いいえ 応答 connection
ResourceParams.responseContentType いいえ 応答 ContentType
ResourceParams.responseContentEncoding いいえ 応答 ContentEncoding
ResourceParams.resourceMethod いいえ リクエストメソッド GET, POST など
ResourceParams.responseBody いいえ 応答 body 内容
ResourceParams.property いいえ 追加プロパティ

ユーザー情報のバインドとアンバインド

FTSdk を使用してユーザーのバインドとアンバインドを行います。

使用方法

/**
 * ユーザー情報をバインド
 *
 * @param id ユーザー ID
 */
public static void bindRumUserData(@NonNull String id)

/**
 * ユーザー情報をバインド
 */
public static void bindRumUserData(@NonNull UserData data)

/**
 * ユーザー情報をアンバインド
 */
public static void unbindRumUserData()
/**
 * ユーザー情報をバインド
 *
 * @param id ユーザー ID
 */
fun bindRumUserData(id: String)

/**
 * ユーザー情報をバインド
 *
 * @param data ユーザー情報
 */
fun bindRumUserData(data: UserData)

/**
 * ユーザー情報をアンバインド
 */
fun unbindRumUserData()

UserData

メソッド名 説明 必須 注意
setId ユーザー ID を設定 いいえ
setName ユーザー名を設定 いいえ
setEmail メールアドレスを設定 いいえ
setExts ユーザー拡張を設定 いいえ 追加ルールはアプリケーションアクセスを参照してください

コード例

// ユーザーログイン成功後にこのメソッドを呼び出してユーザー情報をバインドできます
FTSdk.bindRumUserData("001");

UserData userData = new UserData();
userData.setName("test.user");
userData.setId("test.id");
userData.setEmail("test@mail.com");
Map<String, String> extMap = new HashMap<>();
extMap.put("ft_key", "ft_value");
userData.setExts(extMap);
FTSdk.bindRumUserData(userData);

// ユーザーログアウト後にこのメソッドを呼び出してユーザー情報をアンバインドできます
FTSdk.unbindRumUserData();
// ユーザーログイン成功後にこのメソッドを呼び出してユーザー情報をバインドできます
FTSdk.bindRumUserData("001")

// ユーザーの詳細データをバインド
val userData = UserData()
userData.name = "test.user"
userData.id = "test.id"
userData.email = "test@mail.com"
val extMap = HashMap<String, String>()
extMap["ft_key"] = "ft_value"
userData.setExts(extMap)
FTSdk.bindRumUserData(userData)

// ユーザーログアウト後にこのメソッドを呼び出してユーザー情報をアンバインドできます
FTSdk.unbindRumUserData()

フィードバック

このページは役に立ちましたか?