AppDynamicsは先日,Mobile Real User Management(RUM)をリリースした。モバイルアプリのエンドツーエンド監視を目的とした高度なソリューションだ。AppDynamicsの提供するアプリケーションパフォーマンス監視(APM/Application Performance Monitoring)は,ユーザ自身のアプリケーションだけでなく,完全なエンドツーエンドのトランザクションを解析する機能も備える。これによって同社の監視機能では,データベースシステムやアプリケーションコンテナ,Webアプリケーションに加えて,モバイルアプリもサポートされることになる。
InfoQでは,同社で製品販売および戦略を担当する,シニアディレクタのManeesh Joshi氏とコンタクトを取り,AppDynamicsについて,さらには同社がリリースした最新サービスについて話を聞いた。
当社が取り組んでいるのは,最も成長著しい業界です – 特にモバイルに関しては。ですから,長いリリースサイクルは受け入れられません。程度の差こそあれ,ユーザの要求には即時に対応する必要があるからです。これこそがAppDynamicsの得意とするところです – 当社の基本は,ビジネスパーソンや開発者のため,3つの重要な疑問に答えることにあります: アプリのパフォーマンスはどうか? ユーザはどのような行動をするのか? ユーザは誰なのか? これらの回答に基づいて,アプリケーションの改良とロールアウトが行われるのです。
"アプリのパフォーマンスはどうか?"
氏によると,モバイルの分野におけるパフォーマンス問題は一般的に,バックエンド層の問題であるか,あるいは低速で信頼性の低いネットワークに起因する。AppDynamicsは遅過ぎるトランザクションの識別に,エンドツーエンドの監視機能を提供している。さらにクラッシュ解析のため,最大で1年間,SaaSサービス内に無償でデータを収集することも可能だ。モバイルアプリのクラッシュ解析を可能にするには,AppDynamicsのSDKをダウンロードして,アプリに含めておく必要がある。SDKは,iOSおよびAndroid用のものが用意されている。それによってバックグラウンドプロセスが起動し,クラッシュやネットワーク状態,あるいはコール時間に関するデータを収集する。リソースに対する配慮から,データは即時には送信されず,十分なバッテリー容量とネットワーク帯域のある時に送信される。
"ユーザはどのような行動をするのか?"
"モバイルの開発サイクルは独特です",と氏は続ける。"アジャイルである上に,ユーザがアプリをどのように使うかに強く基づいているのです。" ユーザ行動の情報を収集するA/Bテスト用の製品が数多く存在するのに対して,AppDynamicsでは,ユーザが特定の画面でどれ程の時間を費やしているか,あるいは,どのUIがクリックされたか,といった解析に注目する。この種類の情報収集で開発者が利用できるのは,"Info Point"や"Timer API"といったメカニズムである。Info Pointの支援により,アプリケーション内の特定のメソッドを監視して,メソッドが何度コールされたか,値を返すまでどれ程の時間を要したか,などの洞察を得ることができる。
private void downloadImage(URL url) { CallTracker tracker = null; try { tracker = Instrumentation.beginCall("com.example.android.awesomeapp.ImageDownloader", "downloadImage", url); //download image. } finally { Instrumentation.endCall(tracker); } }
Timer APIは,アプリケーション実行中に,任意の時間間隔での計測を可能にするものだ。タイマはさまざまなメソッドの呼び出しとレベルにまたがったり,あるいはネストすることもできる。
public class MyActivity extends Activity { @Override protected void onStart(){ Instrumentation.startTimer("Time Spent on MyActivity"); //your code here. } @Override protected void onStop(){ Instrumentation.stopTimer("Time Spent on MyActivity"); //your code here.99.00ドル
"ユーザは誰なのか?"
AppDynamicsがこのコンテキストで提供する情報としては,その他にも,ユーザとユーザデバイスに関する詳細な知識がある。AppDynamicsは開発者に対して,プラットフォームやデバイスタイプ,あるいは,例えば位置情報などに基づいたデータ解析を可能にする。
氏によると:
開発者はこれらのデータに基づいて,ロードマップを計画することが可能になります。どのようなケースでどのデバイスが遅いのかを解析して,バグ修正や機能開発の優先順位を決めることができるのです。顧客の利用率を可視化するのも簡単ですから,ビジネスデータに基づいた機能計画を立案することで,収益率の最大化が実現します。ビジネス関係者と技術者が同じデータを見て,製品を改良することが可能になります。"
AppDynamicsには,"Pro"エディションと同じサービスをすべて含んだ,無償の"Light"プランが用意されている。両者の違いは,データ解析に利用可能な時間帯と,アプリケーションスタックのパーツを監視するエージェントの数だ。無償のプランでは,アプリケーションコンポーネント単位に1つ(Java, Node.js, またはPHP)のエージェントのみがカバーされている。