Firebase Performance Monitoring についてのメモです。
Firebase Performanceとは
Firebase Performance Monitoringは、iOSおよびAndroidアプリのパフォーマンス特性を把握するのに役立つサービスです。
Performance Monitoring SDKを使用して、アプリケーションからパフォーマンスデータを収集し、そのデータをFirebaseコンソールでレビューおよび分析します。
パフォーマンスモニタリングを使用すると、アプリのパフォーマンスをいつどこで向上させることができるかを理解し、その情報を使用してパフォーマンスの問題を解決できるようになります。
パフォーマンスモニタリングは現在ベータ版です。
主な機能
アプリの起動時間、HTTP/Sリクエストなどを自動的に測定する
起動時、フォアグラウンドやバックグラウンドでのアクティビティなど、アプリのパフォーマンスで重要な部分を実装なしで計測できる。アプリのパフォーマンスを改善できる状況を把握できる
ユーザの期待に何が足りないのか分からないと、アプリのパフォーマンスを最適化するのは難しい。
そのため、パフォーマンスモニタリングでは、国、デバイス、アプリケーションのバージョン、OSレベルでパフォーマンスを分類できます。パフォーマンスモニタリングをカスタマイズできる
新しい画面を読み込むときなど、特定の状況でアプリのパフォーマンスをキャプチャするためのトレースを作成できます。また、トレース中に定義したイベント(キャッシュヒットなど)をカウントするためのカウンタを作成できます。
どのように機能するのか?
トレースは、アプリ内の2つの時点で取得されたパフォーマンスデータのレポートです。
Performance Monitoring SDKをインストールすると、ユーザーがアプリケーションを開いてからアプリケーションが応答するまでの時間を測定する開始トレースが自動的に提供されます。
また、フォアグラウンドトレースやバックグラウンドトレースでの待機時やアプリの動作を把握することができます。
カスタムトレースを構成することもできます。
カスタムトレースは、アプリ内の一部のコードに関連付けられたパフォーマンスデータのレポートです。
Performance Monitoring SDKが提供するAPIを使用して、カスタムトレースの開始と終了を定義します。
スコープ内で発生するパフォーマンス関連イベントのカウンタを記録するカスタムトレースをさらに構成できます。たとえば、キャッシュのヒット数とミス数、またはUIが顕著な時間応答しなくなった回数のカウンタを作成できます。
HTTP/Sネットワークリクエストは、アプリがサービスエンドポイントにリクエストを発行してからそのエンドポイントからの応答が完了するまでの時間を取得するレポートです。
アプリがリクエストする任意のエンドポイントについて、SDKはいくつかの指標を取得します。
レスポンスタイム
要求が行われてから応答が完全に受信されるまでの時間ペイロードサイズ(データ量)
アプリがダウンロードまたはアップロードしたネットワークペイロードのバイトサイズ成功率
総レスポンスと比較した成功したレスポンスの割合
(ネットワークまたはサーバーの障害を測定するため)
トレースとHTTP/Sネットワーク要求の両方について、次のように分類されたパフォーマンス監視データが表示されます。
Traces | HTTP/S network requests |
---|---|
- App version - Country - Device - OS - Radio - Carrier |
- App version - Country - Device - OS - Radio - Carrier - MIME type |
実装手順
- アプリケーションにPerformance Monitoring SDKを追加する
- (Optional)SDKを使用してアプリケーションのカスタムトレースとカウンタを定義する
- Firebaseコンソールでのパフォーマンスデータの監視
ユーザデータ
パフォーマンスモニタリングでは、個人を特定できる情報(名前、電子メールアドレス、電話番号など)は保存してはいけない。
HTTP/Sネットワーク要求を監視しながら、Performance MonitoringはURLパラメータ(URLパラメータを含まない)を使用して集約された匿名のURLパターンを作成します。
これは最終的にはFirebaseコンソールに保持され表示されます。