モバイルアプリのボトルネックを発見するために - Mobile Distributed Tracing

所要時間:約 5分

サービスにおけるモバイルアプリの重要性はこの1、2年の間で高まり続けています。家にいながら手元で目的を達成したい、そしてそのためのサービスを利用、提供する皆様にとってネイティブアプリのレスポンスは非常に大切です。

皆さんがスマートフォンのアプリを起動する際は(大抵の場合)達成したい目的をもって起動しますし、その達成までの時間やステップは短ければ短いほどユーザー体験がよくなる事がほとんどです。

これはプライベートな利用に限った話ではなくビジネスアプリケーションについても同様です。App Annieの「State of Mobile 2021」によれば、2021年第4四半期にビジネスアプリに費やされた時間は、前年同期比で275%増加しました。

つまり、高い信頼性と高速なレスポンス性をもつモバイルアプリにすることは、「Nice to have」ではなく「Must」な要件になりつつあるということです。

殆どのデジタルサービスを提供するアプリには通信処理があります。この通信処理はアプリの全ての処理の中でも多くの時間を要するポイント、ボトルネックになりがちです。WiFi環境や4G/5Gからの高速な通信が大半を占める今、このボトルネックの根本原因はキャリアネットワークの帯域ではなくサーバーサイドの処理遅延である事が多くなっています。

New Relic Mobileに新たに導入されたMobile分散トレーシングによってボトルネックがデジタルシステムのどこにあるのか、より鮮明に観測する事が可能になりました。

分散トレーシングは、複雑なマイクロサービスを統合したシステムに対してリクエストを追跡し、トレースイベントを伝播、記録、可視化できます。New Relicにおける分散トレーシングについて詳しくはdocsや文末の関連記事を参照してください。

ここではモバイルアプリにおいて分散トレーシングを有効にする方法について順を追ってご紹介いたします。

  • ステップ1

最新のNew Relic Mobile Agentを導入、または既存のバージョンをアップデートしビルドする

  • ステップ2

動作に問題が無いかテストした上でアプリを提出・リリースする

これだけです。 ステップ3はありません。

XCFramework 7.3.0以降、Android Agent 6.0.0 以降のAgentが入っており、すでにMobile Requestsデータを見れていて通信先のサーバーにAPM Agentが導入されていればNew Relic MobileのUI上から分散トレーシングの結果を確認する事ができます。

実際にサンプルスクリーンショットから確認してみましょう。

・確認したいモバイルアプリのUIに移動し、サイドメニューから “Distributed Tracing” を選択します

・この画面で全てのトレースグループを確認することができます。”Trace groups” から興味のあるトレースを選択してみましょう。類似の通信処理はグループ化され、総数、平均的なマイクロサービス呼び出し数;Spansや関連するEntity(サーバーやサービスなど)数などが確認できます。

バックエンド処理に時間がかかっているトレースを探すにはView by を Back-end duration に変更してみましょう

・記録されたトレース群は指定した指標(View by)に応じてグラフ上にプロットされます。平均的な数値から逸脱している点をクリックしてみましょう。

・右側から詳細なトレース情報画面が出てきます。これによりMobileから発生した通信処理がどのサービスを通り、どこにボトルネックがあったかなど詳細な情報を確認できるようになります。

もし詳細なデータが取得できない場合はサーバー側の設定を変更する必要があるかもしれません。こちらのdocsを参考に有効にしてみてください。

一番上部のモバイルアプリから発生したspanを選択すると詳細な属性を確認できます。

これにより遅い処理が発生している端末の詳細な情報まで確認する事ができます。

さらにCustom Attributeなどでユーザーの特性(ユーザー名やユーザー属性など)を記録していれば特定の顧客に偏った現象なのか、などより詳細な調査に役立つでしょう。

新しく導入されたMobile Distributed Tracingを活用し、みなさまのデジタルサービスで更なる観測性を得てください。