モバイル リアル ユーザ モニタリング(モバイル RUM)を使用すると、エンドユーザが実際に使用するネイティブの iOS、Android、Xamarin、Cordova ベース、または React Native のモバイルアプリケーションを把握できます。
これにより、アプリケーション自体の動作、アプリケーションとアプリケーションが使用するネットワークとの通信、およびアプリケーションとサーバ側アプリケーションとの通信を可視化できます。このページでは、モバイル RUM の概要について説明します。
モバイル RUM の利点
モバイル RUM を使用すると、次のことが可能になります。
- モバイルアプリケーションのパフォーマンスを把握し、改善する
- クラッシュを削減する
- エラーを削減
- ユーザについての詳細を確認する
- モバイル RUM が返すデータをカスタマイズする
動作
モバイル RUM を使用するには、モバイルアプリケーションのソースに、非常に高性能な短いコード(モバイルエージェント)を追加します。このプロセスは、 インストゥルメント化と呼ばれていて、「iOSアプリケーションのインストゥルメント化」、「Androidアプリケーションのインストゥルメント化」、「Xamarin アプリケーションのインストゥルメンテーション」、「Cordova アプリケーションのインストゥルメント化」、および「React Native アプリケーションのインストゥルメント化」で説明します。
エンドユーザがアプリケーションを操作するときに、エージェントはアプリケーションのパフォーマンスに関するメトリックとエラー情報を収集し、EUM サーバに送信します。ここで、処理が行われます。EUM サーバによりこのデータが AppDynamics コントローラ UI で使用できるようになり、データは一連のダッシュボードとチャートに表示されます
アプリケーションがクラッシュすると、エージェントはクラッシュした関数、クラッシュした関数を含むソースファイル、行番号(取得可能な場合)、クラッシュ時のアプリケーションのスタックトレース、その他のさまざまな識別データなど、何が起こったかを分析する場合に役立つ情報を記録したクラッシュスナップショットも作成します。また、モバイルアプリケーションが通信するサーバー側アプリケーションもインストゥルメント化されている場合は、ラウンドトリップ リクエスト ライフ サイクル全体について、関連するメトリック情報を取得できます。
データ収集
アプリケーションでモニタ対象の何かが発生したことをエージェントが検出すると、そのイベントを記述したデータを収集し、それをローカルバッファに格納します。通常、このデータはイベントごとに約 200 ~ 400 バイトで構成されます。エージェントは、ビーコンと呼ばれるリクエストで、バッファ内のイベントを EUM サーバーに送信することにより、このローカルバッファを定期的にフラッシュします。電力消費を最小限に抑えるために、エージェントは、(可能であれば)アプリケーションがネットワークを使用しているときに、これらのフラッシュをスケジュール設定します。
EUM サーバへのネットワーク接続が使用できない場合、エージェントは古いイベントから削除して、バッファ内の無制限の拡張を防止します。バッファの最大サイズは 200 イベントです。
EUM サーバが長時間にわたって使用できない場合、エージェントは古いデータから削除してバッファ内の無制限の拡張を防ぐ可能性があります。
モバイル RUM のライセンスと有効化
モバイル RUM では、アプリケーションサーバー用とブラウザリアルユーザー/Synthetic モニターリング用に個別にライセンスが必要です。また、使用するには有効にする必要があります。
ライセンスタイプ(Lite または Pro)の説明など、ライセンスについては、「モバイルRUMライセンス」を参照してください。
モバイル RUM モニタリングの有効化または無効化の詳細については、「コントローラでのモバイル RUM の有効化」を参照してください。