SDK 初期化¶
本ドキュメントでは、React Native SDK の初期化とランタイム機能に関する内容を扱います。
SDK のインポート¶
コード内で次のようにインポートできます。
import {
FTMobileReactNative,
FTReactNativeLog,
FTReactNativeTrace,
FTReactNativeRUM,
FTMobileConfig,
FTLogConfig,
FTTraceConfig,
FTRUMConfig,
ErrorMonitorType,
DeviceMetricsMonitorType,
DetectFrequency,
TraceType,
FTLogStatus,
EnvType,
} from '@cloudcare/react-native-mobile';
基本設定¶
// ローカル環境デプロイ、Datakit デプロイ
let config: FTMobileConfig = {
datakitUrl: datakitUrl,
};
// パブリック DataWay の使用
let config: FTMobileConfig = {
datawayUrl: datawayUrl,
clientToken: clientToken,
};
await FTMobileReactNative.sdkConfig(config);
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
| datakitUrl | string | はい | ローカル環境デプロイ(Datakit)のデータ送信 URL アドレス。例:http://10.0.0.1:9529。デフォルトポートは 9529。SDK をインストールするデバイスからこのアドレスにアクセスできる必要があります。注意:datakitUrl と datawayUrl の設定はどちらか一方のみを選択してください |
| datawayUrl | string | はい | パブリック Dataway のデータ送信 URL アドレス。[RUM] アプリケーションから取得します。例:https://open.dataway.url。SDK をインストールするデバイスからこのアドレスにアクセスできる必要があります。注意:datakitUrl と datawayUrl の設定はどちらか一方のみを選択してください |
| clientToken | string | はい | 認証トークン。datawayUrl と同時に使用する必要があります |
| debug | boolean | いいえ | ログ出力の有効/無効を設定します。デフォルトは false |
| env | string | いいえ | 環境設定。デフォルトは prod。任意の文字列。test などの単一の単語を推奨します |
| envType | enum EnvType | いいえ | 環境設定。デフォルトは EnvType.prod。注:env と envType はどちらか一方のみ設定してください |
| service | string | いいえ | 所属するビジネスまたはサービスの名称を設定します。Log および RUM の service フィールドデータに影響します。デフォルト:df_rum_ios、df_rum_android |
| autoSync | boolean | いいえ | データ収集後に自動でサーバーに同期するかどうか。デフォルトは true。false の場合は FTMobileReactNative.flushSyncData() を使用してデータ同期を管理します |
| syncPageSize | number | いいえ | 同期リクエストのエントリ数を設定します。範囲 [5,)。注意:リクエストエントリ数が大きいほど、データ同期により多くの計算リソースを消費します |
| syncSleepTime | number | いいえ | 同期の待機時間を設定します。範囲 [0,5000]。デフォルトでは設定なし |
| enableDataIntegerCompatible | boolean | いいえ | Web データと共存する場合、有効にすることを推奨します。この設定は、Web データ型のストレージ互換性問題を処理します。バージョン 0.3.12 以降、デフォルトで有効 |
| globalContext | object | いいえ | カスタムタグを追加します。追加ルールについてはこちらを参照してください |
| compressIntakeRequests | boolean | いいえ | アップロード同期データを deflate 圧縮します。デフォルトはオフ |
| enableLimitWithDbSize | boolean | いいえ | DB を使用してデータサイズを制限する機能を有効にします。デフォルトは 100MB、単位は Byte。データベースが大きいほどディスク負荷が高くなります。デフォルトは無効。注意: 有効にすると、Log 設定の logCacheLimitCount および RUM 設定の rumCacheLimitCount は無効になります。SDK 0.3.10 以降でこのパラメータをサポート |
| dbCacheLimit | number | いいえ | DB キャッシュ制限サイズ。範囲 [30MB,)。デフォルトは 100MB、単位は byte。SDK 0.3.10 以降でこのパラメータをサポート |
| dbDiscardStrategy | string | いいえ | データベース内のデータ破棄ルールを設定します。破棄戦略:FTDBCacheDiscard.discard 新しいデータを破棄(デフォルト)、FTDBCacheDiscard.discardOldest 古いデータを破棄。SDK 0.3.10 以降でこのパラメータをサポート |
| dataModifier | object | いいえ | 個々のフィールドを変更します。SDK 0.3.14 以降でサポート。使用例はデータ収集のマスキングを参照してください |
| lineDataModifier | object | いいえ | 個々のデータ行を変更します。SDK 0.3.14 以降でサポート。使用例はデータ収集のマスキングを参照してください |
| enableDataFilter | boolean | いいえ | SDK 側のデータフィルタリング(ローカルフィルタリングルールとリモートフィルタリングルールを含む)を有効にするかどうか。デフォルトは true。SDK 0.4.2 以降でサポート。使用例はブラックリストフィルタリングを参照してください |
| dataFilters | Record |
いいえ | App ローカルで管理するデータフィルタリングルール。サポートされる分類:logging、rum。SDK 0.4.2 以降でサポート。ルール構文についてはルール構文を参照してください |
| remoteConfiguration | boolean | いいえ | データ収集のリモート設定機能を有効にするかどうか。デフォルトは無効。有効にすると、SDK 初期化時またはアプリのホットスタート時にデータ更新がトリガーされます。SDK 0.3.16 以降でサポート。設定可能なパラメータ |
| remoteConfigMiniUpdateInterval | number | いいえ | リモート動的設定の最小更新間隔を設定します。単位は秒、デフォルトは 12 時間。SDK 0.3.16 以降でサポート |
| remoteConfigOverrideRules | Array |
いいえ | リモート設定の上書きルールを設定します。アプリケーションのリモート設定前にカスタム調整を行うために使用します。SDK 0.3.16 以降でサポート。使用例はこちらを参照してください |
ブラックリストフィルタリング¶
Data Filter は、SDK がローカルキャッシュに書き込む前に、ルールに従って RUM と Log データをフィルタリングするために使用されます。フィルタリングルールに一致したデータはローカルキャッシュに入らず、アップロードもされません。
- ローカルルール:
FTMobileConfig.dataFiltersで設定し、App が SDK 初期化時に適用します。 -
リモートルール:
FTMobileConfig.enableDataFilterを有効にすると、SDK は Studio 側で追加されたブラックリストルールを取得します。 -
ローカルルールとリモートルールは同時に有効になり、いずれかのルールに一致したデータは破棄されます。
- ブラックリストフィルタリングは
lineDataModifierの後、ローカルキャッシュ書き込みの前に実行されます。lineDataModifierとブラックリストフィルタリングが両方設定されている場合、フィルタリングルールは変更後のデータに基づいて判断されます。
Data Filter は SDK のデータ書き込みパスに作用します。ルールが多すぎたり、正規表現が複雑すぎると、データ書き込みパフォーマンスに影響を与える可能性があるため、必要なルールのみを設定することを推奨します。
let config: FTMobileConfig = {
datawayUrl: datawayUrl,
clientToken: clientToken,
enableDataFilter: true,
dataFilters: {
logging: [
"{ `source` in [ 'df_rum_ios_log' , 'df_rum_android_log' ] and `message` match [ 'timeout' ] }",
],
rum: [
"{ `resource_status` match [ '5..' ] }",
],
},
};
await FTMobileReactNative.sdkConfig(config);
ルール構文¶
Data Filter のルール構文は、ブラックリストフィルタリングルールと基本的に同じです。完全な構文の説明はブラックリストフィルタリングルールを参照してください。
dataFilters のキーはデータ分類を示します。現在 SDK がサポートする分類は以下の通りです。
| 分類 | 説明 |
|---|---|
logging |
Log データ |
rum |
RUM データ |
各ルールは { 条件 } で表され、いずれかのルールに一致すると、その分類のデータがフィルタリングされます。ルールではデータの tag、field フィールドを使用できます。
フィールド値の形式と演算子の意味については、ブラックリストフィルタリングルールのフィールド値形式の説明と演算子の説明を参照してください。
SDK のルール文字列内のすべてのフィールド値は配列形式を使用する必要があり、否定演算子は固定で notin、notmatch と記述します。
ユーザー情報のバインドとバインド解除¶
使用方法¶
/**
* ユーザーをバインドします。
* @param userId ユーザー ID。
* @param userName ユーザー名。
* @param userEmail ユーザーのメールアドレス。
* @param extra ユーザーの追加情報。
*/
bindRUMUserData(userId: string, userName?: string, userEmail?: string, extra?: object): Promise<void>;
/**
* ユーザーのバインドを解除します。
*/
unbindRUMUserData(): Promise<void>;
使用例¶
import { FTMobileReactNative } from '@cloudcare/react-native-mobile';
FTMobileReactNative.bindRUMUserData('react-native-user', 'user_name');
FTMobileReactNative.unbindRUMUserData();
ランタイム機能¶
SDK のシャットダウン¶
FTMobileReactNative を使用して SDK をシャットダウンします。
SDK キャッシュデータのクリア¶
FTMobileReactNative を使用して、未送信のキャッシュデータをクリアします。
データの手動同期¶
FTMobileConfig.autoSync を true に設定している場合、追加の操作は不要で、SDK が自動的に同期します。
FTMobileConfig.autoSync を false に設定している場合、手動でデータ同期をトリガーする必要があります。
/**
* データを手動で同期します。`FTMobileConfig.autoSync = false` に設定している場合に手動でトリガーする必要があります。
*/
flushSyncData(): Promise<void>;
初期化の順序について¶
SDK の他のメソッドを呼び出す前に SDK が完全に準備できていることを確認するために、最上位の index.js ファイルで App を登録する前に SDK の初期化を完了してください。
基本設定が完了した後、RUM、Log、Trace の設定を行います。
import App from './App';
async function sdkInit() {
await FTMobileReactNative.sdkConfig(config);
await FTReactNativeRUM.setConfig(rumConfig);
// ...
}
sdkInit();
AppRegistry.registerComponent('main', () => App);
動的設定¶
動的設定に関する機能は動的設定に分離されています。