概要
クラッシュレポートとエラー追跡を有効にすると、リアルユーザーモニタリングで包括的なクラッシュレポートとエラートレンドを取得できます。
クラッシュレポートは Error Tracking に表示されます。
セットアップ
Datadog Flutter SDK for RUM をまだセットアップしていない場合は、アプリ内セットアップ手順に従うか、Flutter セットアップドキュメントを参照してください。
ネイティブクラッシュレポートの追加
初期化スニペットを更新し、nativeCrashReportEnabled
を true
に設定することで iOS と Android のネイティブクラッシュレポートを有効化します。
例:
final configuration = DdSdkConfiguration(
clientToken: 'DD_CLIENT_TOKEN'
env: 'DD_ENV'
site: DatadogSite.us1,
trackingConsent: TrackingConsent.granted,
nativeCrashReportEnabled: true, // このフラグを設定します
loggingConfiguration: LoggingConfiguration(),
rumConfiguration: 'DD_APP_ID',
);
DatadogSdk.instance.initialize(configuration);
アプリケーションが致命的なクラッシュに見舞われた場合、アプリケーションが再起動すると、Datadog Flutter SDK は Datadog にクラッシュレポートをアップロードします。致命的でないエラーの場合、Datadog Flutter SDK はこれらのエラーを他の RUM データと共にアップロードします。
Datadog へのシンボルファイルのアップロード
ネイティブ iOS クラッシュレポートは生のフォーマットで収集され、そのほとんどがメモリアドレスを含んでいます。これらのアドレスを読みやすいシンボル情報にマッピングするために、Datadog は .dSYM ファイルのアップロードを必要とし、これはアプリケーションのビルドプロセスで生成されます。
--split-debug-info
オプションセットと --obfuscate
オプションセットでビルドされたすべてのクラッシュレポートについて、その Android Proguard マッピングファイルと Flutter ビルドプロセスによって生成された Dart シンボルファイルをアップロードする必要があります。
コマンドラインツール @datadog/datadog-ci は、必要なファイル (dSYMs、Android Proguard Mapping、Dart Symbol Files) を 1 つのコマンドでアップロードすることに対応しています。
まず、上記の手順で datadog-ci
ツールをインストールし、プロジェクトのルートに datadog-ci.json
ファイルを作成し、API キーと (オプションで) Datadog サイトを記述します。
{
"apiKey": "<YOUR_DATADOG_API_KEY>",
"datadogSite": "datadoghq.eu" // datadoghq.com を使用している場合はオプション
}
このファイルには API キーが含まれているため、バージョン管理にはチェックインしないでください。
代わりに、環境変数 DATADOG_API_KEY
と DATADOG_SITE
を設定することも可能です。
次に、以下のコマンドを使用して、クラッシュレポートのシンボル化および難読化解除に必要なすべてのファイルをアップロードすることができます。
datadog-ci flutter-symbols upload --service-name <YOUR_SERVICE_NAME> --dart-symbols-location <LOCATION_OF_DART_SYMBOLS> --android-mapping --ios-dsyms
オプションの完全なリストは、datadog-ci
Flutter Symbols のドキュメントを参照してください。
高度な設定: フレーバーとビルド番号
Datadog は、service-name
、version
、flavor
の組み合わせで難読化のための正しいシンボルを探すので、datadog-ci
コマンドに送るパラメーターと DdSdkConfiguration で設定するパラメーター
Flutter でアプリのフレーバーを使用している場合、フレーバーを自動検出できないため、DdSdkConfiguration.flavor でフレーバーの名前を設定する必要があります。そして、これを datadog-ci
コマンドの --flavor
パラメーターに渡すことができます。
datadog-ci flutter-symbols upload --service-name <YOUR_SERVICE_NAME> --dart-symbols-location <LOCATION_OF_DART_SYMBOLS> --android-mapping --ios-dsyms --flavor my_flavor
Datadog SDK は、 pubspec.yaml
に指定されたアプリケーションのバージョン番号を、ビルド番号を含まない範囲まで自動的に検出します。アプリケーションでバージョンにビルド番号を含めており、ビルドごとにシンボルをアップロードする必要がある場合は、 DdSdkConfiguration.version にそのバージョンを追加してください。その後、datadog-ci
コマンドの --version
パラメーターにこれを渡します:
datadog-ci flutter-symbols upload --service-name <YOUR_SERVICE_NAME> --dart-symbols-location <LOCATION_OF_DART_SYMBOLS> --android-mapping --ios-dsyms --version 1.2.3+22
Datadog は +
を許さないバージョンのタグを使用することに注意してください。すべてのツールは、バージョンタグが Datadog で検索できるように、自動的に +
を -
に置き換えます。
参考資料