パフォーマンスの問題に関するアラートを設定する

コードの変更やネットワーク リクエストによってアプリのパフォーマンスが低下した場合は、Performance Monitoring のアラートを使用してプロジェクト メンバーに通知を送信できます。

アプリに関するアラートを設定してカスタマイズすることで、イベントのパフォーマンスが設定されたしきい値を超えたときに通知を受け取ることができます。

アラートをトリガーする条件

アプリの指標が、Firebase コンソールで指定したパーセンタイル値(該当する場合)に対して定義したしきい値を超えると、アラートがトリガーされます。アラートがトリガーされるのは、リアルタイム対応の SDK バージョンをアプリで使用している場合に限られます。

アプリ起動時間

アプリ起動時間に関するアラートを構成すると、次の条件がすべて満たされた場合にアラートがトリガーされます。

  • Firebase が、_app_start トレースのサンプルを 100 件以上記録した(直近の 1 時間、アプリの最新バージョン)。
  • _app_start トレースの継続時間が、アプリの定義されたしきい値を超えた(直近の 1 時間、設定したパーセンタイル値)。
  • 最新バージョンのアプリで、同じしきい値に対して以前にアラートが発生していない。

カスタムコード トレース

カスタムコード トレースの指標に関するアラートを構成すると、次の条件がすべて満たされた場合にアラートがトリガーされます。

  • Firebase が、カスタムコード トレースのサンプルを 100 件以上記録した(直近の 1 時間、アプリの最新バージョン)。
  • トレースの継続時間が、アプリの定義されたしきい値を超えた(直近の 1 時間、設定したパーセンタイル値)。
  • (iOS+ と Android のみ)最新バージョンのアプリで、同じしきい値に対して以前にアラートが発生していない。
  • (ウェブのみ)同じしきい値に対して以前にアラートが発生していない(過去 3 日間)。

ネットワーク リクエスト

ネットワーク リクエストの指標に関するアラートを構成すると、次の条件がすべて満たされた場合にアラートがトリガーされます。

  • Firebase が、URL パターンに一致したサンプルを 100 件以上記録した(直近の 1 時間、アプリのすべてのバージョン)。
  • 指標の集計値が、定義されているしきい値を超えた(直近の 1 時間)。
    • 応答時間: 集計値が、設定されているしきい値を超えた(設定したパーセンタイル値)
    • 成功率:(iOS+ / Android のみ)集計値が、設定されているしきい値を下回った(すべてのユーザー)
  • 同じしきい値に対して以前にアラートが発生していない(過去 3 日間)。

画面レンダリング

画面レンダリングの指標にアラートに関するアラートを構成すると、次の条件がすべて満たされた場合にアラートがトリガーされます。

  • Firebase が、画面レンダリングのサンプルを 100 件以上記録した(直近の 1 時間、最新バージョンのアプリ)。
  • 指標の集計値が、定義されているしきい値を超えた(直近の 1 時間)。
    • フリーズしたフレーム: 集計値が、設定されているしきい値を超えた
    • 遅いフレーム: 集計値が、設定されているしきい値を超えた
  • 最新バージョンのアプリで、同じしきい値に対して以前にアラートが発生していない。

ページ読み込み

ページ読み込みの指標に関するアラートを構成すると、次の条件がすべて満たされた場合にアラートがトリガーされます。

  • Firebase が、ページ読み込みのサンプルを 100 件以上記録した(直近の 1 時間、使用しているアプリ)。
  • 指標の集計値が、定義されているしきい値を超えた(直近の 1 時間、設定したパーセンタイル値)。
    • 初回入力遅延: 集計値が、設定されているしきい値と指定パーセンタイル値を超えた
    • First Contentful Paint: 集計値が、設定されているしきい値と指定パーセンタイル値を超えた
    • First Paint: 集計値が、設定されているしきい値と指定パーセンタイル値を超えた
  • 同じしきい値に対して以前にアラートが発生していない(過去 3 日間)。

詳しくは、アラートの構成方法デフォルトのパーセンタイル、特定の種類のトレースと指標のアラート設定に関するベスト プラクティスをご覧ください。

他のパフォーマンス指標に関するアラート、組み込みの Firebase と SlackJiraPagerDuty との統合に関するアラートは、Performance Monitoring のアラートでは使用できません。

アラートを受信する

デフォルトのアラートを受信する

デフォルトでは、Firebase は Performance Monitoring のアラートをメールで送信できます。

このデフォルトのメカニズムを介して Performance Monitoring のアラートを受信するには、firebaseperformance.config.update 権限が必要です。この権限は次のロールにデフォルトで含まれています。

アラートとその設定はプロジェクト全体に適用されます。そのため、デフォルトでは、パフォーマンス アラートがトリガーされると、すべてのプロジェクト メンバー(メールグループではなく、アラートを受信するために必要な権限を持つメンバー)がメールを受け取ります。

自分のアカウントのアラートをオンまたはオフにする

自分のアカウントにおける Performance Monitoring のアラートのオンとオフの切り替えは、他のプロジェクト メンバーに影響を与えずに行うことができます。この切り替えにおいても、アラートを受信するための権限が必要になります。

Performance Monitoring のアラートをオンまたはオフにする手順は次のとおりです。

  1. Firebase コンソールの右上にある [Firebase アラート] を選択します。
  2. 次に [設定] を選択し、自分のアカウントでの Performance Monitoring のアラートに関する設定を行います。

サードパーティ サービスへの高度なアラートを設定する

Cloud Functions for Firebase を使用して、Performance Monitoring のアラートをチームの希望する通知チャネルに送信することもできます。たとえば、関数を作成して、アプリの起動が遅い場合のアラート イベントをキャプチャし、アラート情報を Discord、Slack、Jira などのサードパーティのサービスに送信するようなことができます。

Cloud Functions for Firebase を使用して高度なアラート機能を設定するには、次の手順を行います。

  1. Cloud Functions for Firebase を設定します。これには、次のタスクが含まれます。

    1. Node.js または Python の開発環境を設定する。
    2. Firebase CLI をインストールしてログインする。
    3. Firebase CLI を使用して Cloud Functions for Firebase を初期化します。
  2. Performance Monitoring からアラート イベントをキャプチャし、イベントのペイロードを処理(たとえば、Discord のメッセージにアラート情報を投稿)する関数を記述してデプロイします。

キャプチャできるすべてのパフォーマンス アラート イベントについては、Performance Monitoring アラートのリファレンス ドキュメントをご覧ください。

無効なアラートの自動削除

Performance Monitoring はアラートを検証して、データが有効であること、およびアラートがアクティブに使用されていることを確認します。以下のいずれかに該当する場合、アラートは有効であるとみなされます。

  • あるリソース ID に関して作成されたアラートについて、過去 90 日間に Performance Monitoring がそのデータを受信している。
  • 最近作成されたアラートであり、それがカスタム URL パターンに関するものである。カスタム URL パターンを作成してアラートを設定した場合、そのパターンのデータは 90 日間にわたって送信されます。90 日以内にデータが送信されない場合、Performance Monitoring はそのアラートを削除します。カスタム URL パターンの詳細については、カスタム URL パターンでデータを集計するをご覧ください。

これらの条件のいずれも満たされない場合、Performance Monitoring はアラートを削除します。

アラートを構成する

Performance Monitoring のアラートを構成するには firebaseperformance.config.update 権限が必要です。そのための権限はデフォルトで次のロールに含まれています。 Firebase Performance 管理者Firebase Quality 管理者Firebase 管理者、プロジェクトのオーナーまたは編集者

最新の Performance Monitoring SDK をアプリに追加します(まだ追加していない場合)。詳細については、ウェブAndroidAppleFlutter の各プラットフォームのスタートガイドをご覧ください。

登録済みの各アプリで、[トレース] テーブルまたはダッシュボード レポートカードを使用して、モニタリングする指標ごとにアラートを構成します。アプリごとに異なるアラート一式を構成し、アラートごとに異なるしきい値を設定できます(アラートを使用しないように設定することもできます)。

トレース テーブルでアラートを構成する

  1. Firebase コンソールで Performance Monitoring の [ダッシュボード] タブに移動し、アラートを構成するアプリを選択します。

  2. 画面の下部にある [トレース] テーブルまでスクロールします。

  3. アラートを設定するトレースの種類のタブを選択し、該当する行を探します。

  4. 行の右端にあるオーバーフロー メニュー()を開き、[アラート設定] を選択します。

  5. 画面の指示に沿って、アプリのアラートしきい値とパーセンタイル値(該当する場合)を設定するか、アラートのオンとオフを切り替えます。 デフォルトのパーセンタイルは、Android と iOS では 90 パーセンタイル、ウェブでは 75 パーセンタイルです。デフォルトのパーセンタイルの詳細については、ダッシュボードで主要な指標を追跡するをご覧ください。

ダッシュボード レポートカードでアラートを構成する

  1. Firebase コンソールで Performance Monitoring の [ダッシュボード] タブに移動し、アラートを構成するアプリを選択します。

  2. [レポートカード] タブで、アラートを構成する指標カードを探します。

  3. 目的の指標カードで、オーバーフロー メニュー()を開き、[アラート設定] を選択します。

  4. 画面の指示に沿って、アプリのアラートしきい値とパーセンタイル値(該当する場合)を設定するか、アラートのオンとオフを切り替えます。 デフォルトのパーセンタイルは、Android と iOS では 90 パーセンタイル、ウェブでは 75 パーセンタイルです。デフォルトのパーセンタイルの詳細については、ダッシュボードで主要な指標を追跡するをご覧ください。

パフォーマンス アラートの設定に関するベスト プラクティス

ネットワーク リクエスト

Firebase は、類似のネットワーク リクエストのデータを URL パターンに基づいて集計します。URL パターンは次のいずれかになります。

  • ユーザー定義のパターン。カスタム URL パターンといいます。

  • Firebase 生成パターン。自動 URL パターンといいます。
    これらのパターンは、アプリの最新の利用行動に基づいて、時間とともに変化する可能性があります。

カスタム URL パターンのアラートを設定する

構成したカスタム URL パターンにはアラートを設定することをおすすめします。Firebase はリクエストとカスタム URL パターンのマッチングを最初に試行するため、類似するリクエストは、一貫して同じ URL パターンにマッピングされます。その特定のリクエスト パターンがアプリにとって重要であることがすでに判明しているため、これにより、カスタム URL パターンのアラートはチームにとって重要かつ有効なものとなります。

自動 URL パターンのアラートを設定する

自動 URL パターンのアラートを設定するときには、自動 URL パターンが数日間安定していることを確認してください。自動 URL パターンは時間の経過とともに変化する可能性があり、アラート構成は新しい URL パターンに引き継がれないことに注意してください。これにより、目的のパターンに関するアラートが不正確になるか、または欠落する可能性があります。このパターンが安定するように、カスタム URL パターンを作成することもできます。

ウェブページの読み込み

ウェブ指標の測定に推奨されるしきい値については、ウェブに関する主な指標をご覧ください。

画面レンダリング

アプリのエクスペリエンスを最適化するためには、ユーザー セッションに遅いフレームやフリーズしたフレームが存在しないようにする必要があります。Performance Monitoring では、フリーズしたフレームが 1% を超えた場合と、遅いフレームが 5% を超えた場合にアラートで通知するように設定することをおすすめします。パフォーマンス アラートの構成時には、これらの値がデフォルト設定として存在することを確認できます。過度に遅いフレームや過度にフリーズしたフレーム、およびその他のアプリ パフォーマンスに関するベスト プラクティスの詳細については、Google Play のガイダンスをご覧ください。