コンテンツにスキップ

SDK 初期化

このドキュメントでは、Android SDK の初期化に関する内容を記載します。

Application 設定

SDK の初期化に最適な場所は ApplicationonCreate メソッド内です。アプリケーションでまだ Application を作成していない場合は、作成して AndroidManifest.xml で宣言する必要があります。サンプルはこちらを参照してください。

<application
       android:name="YourApplication">
</application>

基本設定

public class DemoApplication extends Application {

    @Override
    public void onCreate() {
        // ローカル環境デプロイ、Datakit デプロイ
        FTSDKConfig config = FTSDKConfig.builder(datakitUrl);
        // パブリックネットワーク DataWay を使用
        FTSDKConfig config = FTSDKConfig.builder(datawayUrl, clientToken);
        // ...
        // config.setDebug(true);              // デバッグモード
        FTSdk.install(config);
    }
}
class DemoApplication : Application() {
    override fun onCreate() {
        // ローカル環境デプロイ、Datakit デプロイ
        val config = FTSDKConfig.builder(datakitUrl)
        // パブリックネットワーク DataWay を使用
        val config = FTSDKConfig.builder(datawayUrl, clientToken)
        // ...
        // config.setDebug(true)              // デバッグモード
        FTSdk.install(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 と同時に設定する必要があります
setDebug Boolean いいえ デバッグモードを有効にするかどうか。デフォルトは false で、有効にすると SDK の実行ログが出力されます
setEnv EnvType いいえ 収集環境を設定します。デフォルトは EnvType.PROD です
setEnv String いいえ 収集環境を設定します。デフォルトは prod です。注意:String 型または EnvType 型のどちらか一方のみを設定してください
setOnlySupportMainProcess Boolean いいえ メインプロセスでのみ実行するかどうか。デフォルトは true で、他のプロセスで実行する必要がある場合は false に設定します
setAllowWebViewHost Array いいえ WebView RUM と Log が Bridge を使用することを許可する host の範囲を一括設定します。null はすべての host を許可、空の配列は Bridge を自動的に使用しないことを意味します。設定された host はそのサブドメインにも一致します。デフォルトは null で、ft-sdk 1.7.5 以降でサポートされています。詳細は WebView モニタリング を参照してください
setEnableAccessAndroidID Boolean いいえ Android ID の取得を有効にするかどうか。デフォルトは true で、false に設定すると device_uuid フィールドデータは収集されません。市場プライバシー審査に関してはこちらを参照してください
addGlobalContext Dictionary いいえ SDK のグローバル属性を追加します。追加ルールはこちらを参照してください
setServiceName String いいえ サービス名を設定します。Log と RUM の service フィールドデータに影響します。デフォルトは df_rum_android です
setAutoSync Boolean いいえ データ収集後に自動的にサーバーに同期するかどうか。デフォルトは true です。false の場合は FTSdk.flushSyncData() を使用してデータ同期を管理します
setSyncPageSize Int いいえ 同期リクエストのエントリ数を設定します。SyncPageSize.MINI は 5 エントリ、SyncPageSize.MEDIUM は 10 エントリ、SyncPageSize.LARGE は 50 エントリ、デフォルトは SyncPageSize.MEDIUM です
setCustomSyncPageSize Enum いいえ 同期リクエストのエントリ数を設定します。範囲は [5,)、エントリ数が大きいほどデータ同期により多くの計算リソースを消費することに注意してください。デフォルトは 10 です。注意:setSyncPageSizesetCustomSyncPageSize はどちらか一方のみを設定してください
setSyncSleepTime Int いいえ 同期の間隔時間を設定します。範囲は [0,5000]、単位は ms、デフォルトは 0 です
enableDataIntegerCompatible Void いいえ Web データと共存する場合、有効にすることをお勧めします。この設定は Web データ型のストレージ互換性を処理するためのものです。ft-sdk 1.6.9 以降ではデフォルトで有効です
setNeedTransformOldCache Boolean いいえ ft-sdk 1.6.0 未満のバージョンの古いキャッシュデータを互換性のために同期する必要があるかどうか。デフォルトは false です
enableFileDataStore Void いいえ ファイルキャッシュを有効にします。同期キャッシュと RUM 集約データに使用されます。デフォルトでは引き続き SQLite キャッシュが使用されます。ft-sdk 1.7.2 以降でサポートされています
setUseFileDataStore Boolean いいえ ファイルキャッシュを使用するかどうかを設定します。true を渡すとファイルキャッシュが使用され、false を渡すとデフォルトの SQLite キャッシュが使用されます。ft-sdk 1.7.2 以降でサポートされています
setFileDataStoreShadow Boolean いいえ ファイルキャッシュのシャドウ書き込みを有効にします。有効にすると、読み取りは引き続き SQLite を使用し、書き込みはファイルキャッシュにミラーリングされます。移行前の検証に使用します。ft-sdk 1.7.2 以降でサポートされています
setCompressIntakeRequests Boolean いいえ アップロード同期データを deflate 圧縮します。デフォルトで有効です。false に設定すると無効になります。ft-sdk 1.6.3 以降でこのメソッドをサポートしています
enableLimitWithCacheSize Void, Long いいえ 総キャッシュサイズ制限を有効にします。デフォルトは 100MB、単位は Byte です。cacheSize を渡す場合の範囲は [30MB,) です。有効にすると FTLoggerConfig.setLogCacheLimitCount および FTRUMConfig.setRumCacheLimitCount は無効になります。ft-sdk 1.7.2 以降でサポートされています
setCacheDiscard CacheDiscard いいえ キャッシュがサイズ上限に達した後の破棄ポリシーを設定します。デフォルトは CacheDiscard.DISCARD です。DISCARD は追加データを破棄し、DISCARD_OLDEST は最も古いキャッシュデータを削除します。ft-sdk 1.7.2 以降でサポートされています
enableLimitWithDbSize Void いいえ 非推奨です。旧バージョンとの互換性のために保持されています。enableLimitWithCacheSize の使用を推奨します
setEnableOkhttpRequestTag Boolean いいえ OkHttp Request に一意の ResourceID を自動的に追加します。同じリクエストの高並列シナリオで使用します。ft-sdk 1.6.10 以降、ft-plugin 1.3.5 以降でサポートされています
setProxy java.net.Proxy いいえ データネットワーク同期リクエストに Proxy プロキシ設定を行います。okhttp3 のみをサポートします。ft-sdk 1.6.10 以降でサポートされています
setProxyAuthenticator okhttp3.Authenticator いいえ データ同期ネットワークリクエストに Proxy プロキシ認証を設定します。okhttp3 のみをサポートします。ft-sdk 1.6.10 以降でサポートされています
setDns okhttp3.Dns いいえ データ同期ネットワークリクエストでカスタム DNS によるドメイン名解決をサポートします。okhttp3 のみをサポートします。ft-sdk 1.6.10 以降でサポートされています
setDataModifier DataModifier いいえ 単一フィールドを変更します。ft-sdk 1.6.11 以降でサポートされています。使用例はこちらを参照してください
setLineDataModifier LineDataModifier いいえ 単一データを変更します。ft-sdk 1.6.11 以降でサポートされています。使用例はこちらを参照してください
setEnableDataFilter Boolean いいえ DataKit と互換性のあるブラックリストフィルタリング機能を有効にするかどうか。デフォルトは true です。Logging と RUM データのフィルタリングをサポートします。ft-sdk 1.7.2 以降でサポートされています
setDataFilters HashMap<String, String[]> いいえ ローカルブラックリストフィルタリングルールを設定します。サポートされるカテゴリは loggingrum です。一致するルールのデータは破棄されます。ft-sdk 1.7.2 以降でサポートされています
setRemoteConfiguration Boolean いいえ データ収集のリモート設定機能を有効にするかどうか。デフォルトは false です。有効にすると、SDK 初期化またはアプリケーションのホットスタート時にデータ更新がトリガーされます。ft-sdk 1.6.12 以降でサポートされています。DataKit バージョンは >= 1.60 であるか、パブリックネットワーク Dataway を使用する必要があります
setRemoteConfigMiniUpdateInterval Int いいえ データ更新の最小間隔を設定します。単位は秒、デフォルトは 12 時間です。ft-sdk 1.6.12 以降でサポートされています
setRemoteConfigurationCallBack FTRemoteConfigManager.FetchResult いいえ リモート設定の結果を返します。コード例ft-sdk 1.6.16 以降でサポートされています

ファイルキャッシュ

ft-sdk 1.7.2 以降では、同期キャッシュと RUM 集約データをファイルキャッシュに書き込むことがサポートされています。旧バージョンからのスムーズなアップグレードを保証するため、SDK はデフォルトで引き続き SQLite キャッシュを使用します。ファイルキャッシュを有効にする場合は、FTSDKConfig で明示的に有効にしてください。

FTSDKConfig config = FTSDKConfig.builder(datawayUrl, clientToken)
        .enableFileDataStore();

FTSdk.install(config);
val config = FTSDKConfig.builder(datawayUrl, clientToken)
    .enableFileDataStore()

FTSdk.install(config)

ファイルキャッシュの書き込みを事前に検証する必要がある場合は、シャドウ書き込みを有効にできます。有効にすると、SDK は引き続き SQLite からデータを読み取り、書き込みをファイルキャッシュにミラーリングします。検証が完了したら、enableFileDataStore に切り替えてください。

FTSDKConfig config = FTSDKConfig.builder(datawayUrl, clientToken)
        .setFileDataStoreShadow(true);
val config = FTSDKConfig.builder(datawayUrl, clientToken)
    .setFileDataStoreShadow(true)

キャッシュサイズ制限

ft-sdk 1.7.2 以降では、enableLimitWithCacheSize を使用して SDK の総キャッシュサイズ制限を設定することを推奨します。有効にすると、個別のログエントリ数上限 FTLoggerConfig.setLogCacheLimitCount および RUM エントリ数上限 FTRUMConfig.setRumCacheLimitCount は無効になります。

FTSDKConfig config = FTSDKConfig.builder(datawayUrl, clientToken)
        // 总キャッシュサイズ制限を有効にする、例は 100MB
        .enableLimitWithCacheSize(100 * 1024 * 1024L)
        // キャッシュが上限に達したら最も古いキャッシュデータを削除
        .setCacheDiscard(CacheDiscard.DISCARD_OLDEST);

FTSdk.install(config);
val config = FTSDKConfig.builder(datawayUrl, clientToken)
    // 总キャッシュサイズ制限を有効にする、例は 100MB
    .enableLimitWithCacheSize(100 * 1024 * 1024L)
    // キャッシュが上限に達したら最も古いキャッシュデータを削除
    .setCacheDiscard(CacheDiscard.DISCARD_OLDEST)

FTSdk.install(config)

ブラックリストフィルタリング

ft-sdk 1.7.2 以降では、DataKit と互換性のあるブラックリストフィルタリングがサポートされています。これは、データをローカルキャッシュに書き込む前に Logging、RUM データをフィルタリングするために使用されます。この機能はデフォルトで有効になっており、setEnableDataFilter(false) で無効にできます。

ブラックリストルールは、ローカルルールとリモートルールに分けられます。

  • ローカルルールは setDataFilters で設定され、loggingrum の 2 種類のルールをサポートします。
  • リモートルールは、SDK が /v1/datakit/pull?filters=true 経由で DataKit または Dataway からプルします。
  • ローカルルールとリモートルールは同時に有効になり、いずれかのルールに一致したデータは破棄されます。
  • ブラックリストフィルタリングは、LineDataModifier の後、ローカルキャッシュ書き込みの前に実行されます。setLineDataModifier とブラックリストフィルタリングの両方が設定されている場合、フィルタリングルールは変更後のデータに基づいて判断されます。

ルール式は {} で記述する必要があり、innot inmatchnot match 演算子をサポートします。複数の条件は and / or で組み合わせることができます。フィールドソースにはデータタグとフィールドが含まれ、sourcemeasurementclass などのデータタイプ識別フィールドもサポートされます。

HashMap<String, String[]> filters = new HashMap<>();
filters.put("logging", new String[]{
        "{ source in ['custom_log'] and message match ['password'] }"
});
filters.put("rum", new String[]{
        "{ source in ['resource'] and status in [404, 503] }"
});

FTSDKConfig config = FTSDKConfig.builder(datawayUrl, clientToken)
        .setEnableDataFilter(true)
        .setDataFilters(filters);

FTSdk.install(config);
val filters = hashMapOf(
    "logging" to arrayOf(
        "{ source in ['custom_log'] and message match ['password'] }"
    ),
    "rum" to arrayOf(
        "{ source in ['resource'] and status in [404, 503] }"
    )
)

val config = FTSDKConfig.builder(datawayUrl, clientToken)
    .setEnableDataFilter(true)
    .setDataFilters(filters)

FTSdk.install(config)

ローカルとリモートのデータフィルタリングを無効にする必要がある場合は、明示的に設定できます。

FTSDKConfig.builder(datawayUrl, clientToken)
        .setEnableDataFilter(false);

リモートブラックリストのプル間隔は、サーバーから返される pull_interval に基づきます。サーバーが有効な値を返さない場合、SDK はフォールバック間隔として 10 秒を使用します。pull_interval は秒数または単位付きの文字列(例:1030s2m1h)をサポートします。

ランタイム機能

SDK のシャットダウン

SDK の設定を動的に変更する場合は、誤ったデータの生成を防ぐために、まずシャットダウンする必要があります。

FTSdk.shutDown();
FTSdk.shutDown()

SDK キャッシュデータのクリア

FTSdk を使用して、未送信のキャッシュデータをクリアします。

FTSdk.clearAllData();
FTSdk.clearAllData()

自動データ同期の設定

ft-sdk 1.7.3 以降では、SDK 初期化後にキャッシュデータの自動同期を動的に有効/無効にすることができます。無効にすると、SDK は収集データをローカルキャッシュに書き込み続けますが、収集後に自動的に同期をトリガーしなくなります。FTSdk.flushSyncData() と組み合わせてデータ同期を管理できます。

// 自動同期を無効にする
FTSdk.setAutoSync(false);

// 自動同期を有効にする
FTSdk.setAutoSync(true);
// 自動同期を無効にする
FTSdk.setAutoSync(false)

// 自動同期を有効にする
FTSdk.setAutoSync(true)

データの手動同期

FTSdk を使用してデータを手動で同期します。

FTSdk.setAutoSync(false) の場合のみ、手動でデータを同期する必要があります。

FTSdk.flushSyncData();
FTSdk.flushSyncData()

フィードバック

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