Splunk AppDynamics は、iOS/Android ネイティブ SDK に基づいて、ハイブリッド アプリケーションのモニタリングをサポートしています。

ハイブリッド アプリケーション

ハイブリッド アプリケーションは、Android または iOS ネイティブシェル内で実行される Web アプリケーションです。Web アプリケーションは、Android WebView または iOS WKWebViews の形式にすることができます。

ハイブリッドの使用例

モバイル RUM では、Web アプリケーションまたは Web ビューを実行するネイティブ モバイル アプリケーションをサポートします。これは Android WebViews と iOS WKWebView の例です。

ハイブリッド アプリケーションのインストゥルメンテーションに関する要件

ハイブリッド アプリケーションをインストゥルメント化するには、次の手順を実行します。

  • JavaScript エージェントを使用して iFrame を手動でインストゥルメント化します。モバイル ネイティブ アプリケーションの場合、JavaScript エージェントは、埋め込み Web ページ(iFrame)ではなく、トップレベルの WebView または WKWebView インスタンスに挿入されます。 
  • 組み込み Web ビューを使用するハイブリッド アプリケーションの場合は、Android WebViews または iOS WKWebView を使用します。 

インストゥルメンテーション手順

ハイブリッド アプリケーションをモニタするには、モバイル RUM を設定してアクセスし、ハイブリッドの使用例に基づいて次の手順を実行する必要があります。

提供内容の概要

ネイティブ Android/iOS アプリケーションの場合、Android エージェントまたは iOS エージェントは JavaScript エージェントを Android WebView または iOS WKWebView に挿入します。 

次の図は、モバイルのネイティブアプリケーションをモニターするためにモバイル RUM を使用する方法の概要を示しています。

モバイル ネイティブ アプリケーション アーキテクチャ
Mobile RUM Architecture Diagram


1 Icon モバイルアプリケーションは、Android/iOS エージェントのいずれかを使用してインストゥルメント化します。

2 Icon モバイルアプリケーションが WebView または WKWebView インスタンスをインスタンス化すると、モバイルエージェントによって JavaScript エージェントが挿入されます。

3 Icon JavaScript エージェントはパフォーマンスと WebView の使用状況をモニタします。

4 Icon JavaScript エージェントは、モバイルエージェントにビーコンを送信してアプリケーション アクティビティを報告します。

5 Icon モバイルエージェントは、ブラウザビーコンをモバイルビーコンに再パッケージ化し、ビーコンを EUM サーバに送信します。

モバイルエージェントと JavaScript エージェントの互換性

ハイブリッド アプリケーション サポートが有効になっている場合、モバイルエージェントは組み込みの JavaScript エージェントを使用してモバイル Web ページをモニタします。ブラウザアプリケーションを使用して同じモバイル Web ページをすでにモニタしている場合は、ブラウザアプリケーションのインストゥルメント化に使用される JavaScript エージェントのバージョンが、モバイルエージェントで使用されている JavaScript エージェントのバージョンと異なる場合があります。JavaScript エージェントの 2 つのバージョンに互換性がない場合、モバイルエージェントは Web ビューをインストゥルメント化したり、Web ビューからイベント通知にアクセスしたりすることはできません。

互換性を確保する方法

互換性を確保するために、ブラウザアプリケーションは JavaScript エージェントバージョンの 4.5.4 以降を使用する必要があり、モバイルアプリケーションはモバイル エージェント バージョン 4.5.5 以降を使用する必要があります。JavaScript エージェントの互換性のあるバージョンを使用する場合、ブラウザアプリケーションの JavaScript エージェントは Web ページのビーコンを報告します。また、Web ページは JavaScript エージェントと複数回インストゥルメント化できないため、モバイルアプリケーションの組み込みの JavaScript エージェントは無視され、レポートビーコンは表示されません。 

モバイルエージェントのハイブリッド アプリケーション サポートを無効にしている場合は、ブラウザアプリケーションで使用されている JavaScript エージェントのバージョンに関係なく、互換性の問題はありません。

互換性のない JavaScript エージェントバージョンのトラブルシューティング

JavaScript エージェントの互換性のないバージョンを使用している場合は、次のいずれかを実行して問題を修正します。

  • ブラウザアプリケーションをインストゥルメント化するために使用している JavaScript エージェントをアップグレードします。
  • モバイル インストゥルメンテーションでは、古いバージョンの JavaScript エージェントを使用してインストゥルメント化されるブラウザアプリケーションによってのみインストゥルメント化されるように、ハイブリッドサポート(iOS/Android)を無効にします。

ハイブリッド アプリケーションのネットワーク要求

WebView のコンテキストで実行されたネットワークコールは、JavaScript エージェントからの Ajax コールとして表示されます。