- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
ログ管理またはリアルユーザーモニタリング (RUM) をセットアップするには、Datadog Flutter プラグインを使用します。セットアップ手順は、ログ、RUM、またはその両方を使用する決定に基づいて異なる場合がありますが、セットアップ手順の大部分は一貫しています。
まず、各プラットフォームに対応した環境を適切に構築します。
iOS の Podfile は ios/Podfile
にあり、use_frameworks!
を true に設定し (Flutter のデフォルト)、ターゲット iOS のバージョンを >= 11.0 に設定する必要があります。
この制約は、通常 Podfile の先頭行にコメントアウトされ、次のように記述されます。
platform :ios, '11.0'
11.0
は、対応させたい iOS の最小バージョンが 11.0 以上であれば、自由に置き換えることができます。
Android の場合、minSdkVersion
のバージョンは >= 19 でなければならず、Kotlin を使用している場合は、バージョン >= 1.6.21 である必要があります。これらの制約は通常、android/app/build.gradle
ファイルに保持されています。
Web の場合、index.html
の head
タグの下に以下を追加します。
<script type="text/javascript" src="https://www.datadoghq-browser-agent.com/datadog-logs-v4.js"></script>
<script type="text/javascript" src="https://www.datadoghq-browser-agent.com/datadog-rum-slim-v4.js"></script>
これは、Logs と RUM の CDN 配信された Datadog Browser SDK をロードします。Browser SDK の同期 CDN 配信バージョンは、Datadog Flutter プラグインでサポートされている唯一のバージョンです。
以下を pubspec.yaml
ファイルに追加します。
dependencies:
datadog_flutter_plugin: ^1.3.0
以下のスニペットで、Datadog の各機能 (Logs や RUM など) のコンフィグレーションオブジェクトを作成します。ある機能に対してコンフィギュレーションを渡さない場合、その機能は無効化されます。
// Determine the user's consent to be tracked
final trackingConsent = ...
final configuration = DdSdkConfiguration(
clientToken: '<CLIENT_TOKEN>',
env: '<ENV_NAME>',
site: DatadogSite.us1,
trackingConsent: trackingConsent,
nativeCrashReportEnabled: true,
loggingConfiguration: LoggingConfiguration(
sendNetworkInfo: true,
printLogsToConsole: true,
),
rumConfiguration: RumConfiguration(
applicationId: '<RUM_APPLICATION_ID>',
)
);
利用可能な構成オプションの詳細については、DdSdkConfiguration オブジェクトのドキュメントを参照してください。
データの安全性を確保するために、クライアントトークンを使用する必要があります。Datadog API キーは、Datadog Flutter プラグインを構成するために使用することはできません。
クライアントトークンのセットアップについて、詳しくはクライアントトークンに関するドキュメントを参照してください。
RUM の初期化は、main.dart
ファイル内の 2 つのメソッドのうちの 1 つを使用して行うことができます。
エラー追跡を自動的に設定する DatadogSdk.runApp
を使用します。
await DatadogSdk.runApp(configuration, () async {
runApp(const MyApp());
})
または、手動でエラー追跡とリソース追跡を設定します。DatadogSdk.runApp
は WidgetsFlutterBinding.ensureInitialized
を呼び出すので、DatadogSdk.runApp
を使用しない場合は、DatadogSdk.instance.initialize
を呼び出す前にこのメソッドを呼び出す必要があります。
runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
final originalOnError = FlutterError.onError;
FlutterError.onError = (details) {
FlutterError.presentError(details);
DatadogSdk.instance.rum?.handleFlutterError(details);
originalOnError?.call(details);
};
await DatadogSdk.instance.initialize(configuration);
runApp(const MyApp());
}, (e, s) {
DatadogSdk.instance.rum?.addErrorInfo(
e.toString(),
RumErrorSource.source,
stackTrace: s,
);
});
アプリケーションが Datadog RUM に送信するデータを制御するには、Flutter RUM SDK を初期化し、RUM セッションのサンプリングレートを 0~100 の間に指定します。デフォルトでは、sessionSamplingRate
は 100 に設定されています (すべてのセッションを保持)。
たとえば、セッションの使用の 50% のみを維持するには、
final config = DdSdkConfiguration(
// 他の構成...
rumConfiguration: RumConfiguration(
applicationId: '<YOUR_APPLICATION_ID>',
sessionSamplingRate: 50.0,
),
);
GDPR 規制を遵守するため、Datadog Flutter SDK は初期化時に trackingConsent
の値を求めます。
trackingConsent
に以下のいずれかの値を設定します。
TrackingConsent.pending
: Datadog Flutter SDK はデータの収集とバッチ処理を開始しますが、Datadog には送信しません。新しい追跡に関する同意の値を待って、バッチされたデータをどうするかを決定します。TrackingConsent.granted
: Datadog Flutter SDK はデータの収集を開始し、Datadog へ送信します。TrackingConsent.notGranted
: Datadog Flutter SDK はデータを収集しないため、ログ、トレース、RUM イベントなどが Datadog に送信されることはありません。SDK の初期化後に追跡同意値を変更するには、DatadogSdk.setTrackingConsent
API 呼び出しを使用します。
SDK は新しい値に応じて動作を変更します。例えば、現在の追跡に関する同意が TrackingConsent.pending
であった場合:
TrackingConsent.granted
に変更すると、SDK は現在と未来のすべてのデータを Datadog に送信します。TrackingConsent.notGranted
に変更すると、SDK は現在のデータをすべて消去し、今後のデータ収集は行いません。