iOS 向け Performance Monitoring を使ってみる

始める前に

まだ Firebase を iOS プロジェクトに追加していない場合は追加します。

ステップ 1: Performance Monitoring をアプリに追加する

  1. プロジェクト用に作成した podfile を開き(または pod init を実行して作成し)、ターゲット セクション内に次の行を追加します。

    pod 'Firebase/Performance'
  2. podfile のディレクトリで、次のコマンドを実行して Performance Monitoring SDK をインストールします。

    pod install
  3. Xcode を使用して .xcworkspace ファイルを開きます。

  4. Firebase モジュールを UIApplicationDelegate にインポートします。

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  5. FirebaseApp 共有インスタンスを構成します。通常はアプリの application:didFinishLaunchingWithOptions: メソッドで行います。

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  6. アプリを再コンパイルします。

これで、Firebase が自動所要時間トレース自動 HTTP/S ネットワーク リクエストをモニタリングするようになります。

ステップ 2: 初期データ表示用のパフォーマンス イベントを生成する

Firebase はアプリからイベント情報(アプリの操作など)を受け取るときに、アプリに SDK が正常に追加されたことを検出できます。ローカルで開発している場合は、アプリを操作して、SDK 検出と初期データの収集と処理のイベントを生成します。

  1. シミュレータまたはテストデバイスを使用してアプリの開発を続けます。

  2. アプリをバックグラウンドとフォアグラウンドの間で数回切り替えたり、画面間を移動してアプリを操作したり、ネットワーク リクエストをトリガーしたりして、イベントを生成します。

  3. Firebase コンソールの [Performance] セクションに移動して、Firebase が SDK を検出したかどうかを確認します。

    「SDK を検出しました」というメッセージが表示されない場合は、トラブルシューティングのヒントをご覧ください。

  4. Performance Monitoring がパフォーマンス イベントデータを処理した後に、パフォーマンス ダッシュボードにそのデータが表示されます。SDK 検出メッセージが表示されてから 24 時間以内に初期データが表示されます。

    初期データが表示されない場合は、トラブルシューティングのヒントをご覧ください。

ステップ 3:(省略可)パフォーマンス イベントのログメッセージを表示する

  1. 次のようにデバッグ ロギングを有効にします。

    1. Xcode(v10.3 以上)で、[Product] > [Scheme] > [Edit scheme] の順に選択します。
    2. 左側のメニューから [Run] を選択し、[Arguments] タブを選択します。
    3. [Arguments Passed on Launch] セクションで -FIRDebugEnabled を追加します。
  2. ログメッセージにエラー メッセージがないか確認します。

  3. Performance Monitoring は、ログメッセージをフィルタできるように、ログメッセージに Firebase/Performance のタグを付けます。

  4. Performance Monitoring がパフォーマンス イベントをログに記録していることを示す次の種類のログを確認します。

    • Recording trace: trace-name
    • Recording network trace: url

アプリがパフォーマンス イベントをログに記録していない場合は、トラブルシューティングのヒントをご覧ください。

ステップ 4:(省略可)特定のコードのカスタム モニタリングを追加する

カスタム トレースを作成して、アプリ内の特定のコードに関連付けられたパフォーマンス データをモニタリングできます。

カスタム トレースを使用すると、アプリが特定のタスクまたは一連のタスクを完了するのにかかる時間を測定できます。たとえば、一連の画像の読み込みやデータベースのクエリなどです。カスタム トレースのデフォルトの指標は期間ですが、キャッシュ ヒットやメモリ警告などのカスタム指標を追加することもできます。

コードでは、Performance Monitoring SDK に用意された API を使用して、カスタム トレースの開始と終了を定義(および必要なカスタム指標を追加)します。

これらの機能の詳細とアプリに追加する方法については、特定のアプリのコードにカスタム モニタリングを追加するをご覧ください。

ステップ 5: アプリをデプロイして結果を確認する

Xcode シミュレータと 1 つまたは複数のテストデバイスを使用して Performance Monitoring を検証したら、アプリのアップデート バージョンをユーザーにデプロイします。

Firebase コンソールのパフォーマンス ダッシュボードでパフォーマンス データをモニタリングできます。

既知の問題

  • Performance Monitoring には、GTMSQLite との互換性に関する既知の問題があります。GTMSQLite を使用するアプリでは、Performance Monitoring を使用しないことをおすすめします。
  • FirebaseApp.configure() を呼び出した後のメソッドの実装入れ替えは、Performance Monitoring SDK に影響する可能性があります。
  • iOS 8.0~8.2 シミュレータの既知の問題により、Performance Monitoring でパフォーマンス イベントがキャプチャされなくなります。これらの問題は、iOS シミュレータ 8.3 以降のバージョンで修正されています。
  • NSURLSession の backgroundSessionConfiguration を使用して接続を確立する場合、接続時間が予想よりも長くかかります。この場合の接続はプロセスの外部で実行され、そのタイミングはプロセス内のコールバック イベントを反映したものになります。

次のステップ