概要

クラッシュレポートとエラー追跡を有効にすると、リアルユーザーモニタリングで包括的なクラッシュレポートとエラートレンドを取得できます。

クラッシュレポートは Error Tracking に表示されます。

セットアップ

Datadog Flutter SDK for RUM をまだセットアップしていない場合は、アプリ内セットアップ手順に従うか、Flutter セットアップドキュメントを参照してください。

ネイティブクラッシュレポートの追加

初期化スニペットを更新し、nativeCrashReportEnabledtrue に設定することで 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_KEYDATADOG_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-nameversionflavor の組み合わせで難読化のための正しいシンボルを探すので、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 で検索できるように、自動的に +- に置き換えます。

その他の参考資料