Site24x7モバイルAPM(Android版)では、ネイティブモバイルアプリケーションのパフォーマンスを、実際のエンドユーザーのデバイスで追跡することが可能です。たとえば、ニュースリーダーアプリケーションでは、操作を行うことができます。
上記の操作は時間がかかることがあり、ユーザー体験に影響します。そのため、これら動作のベンチマークと最適化を、各種デバイスで行うことが重要です。Site24x7モバイルAPMは、エージェントをライブラリとしてアプリケーションに埋め込み、すべてのユーザーから、メトリックを収集・集約します。
APMエージェントは、トランザクションとコンポーネントを用いて、コードの実行時間を測定します。前の例では、アクティビティ開始からUI表示完成までを、1トランザクションと見なします。それぞれの動作は、HTTP、SQLite、ファイルシステム、UIなどのコンポーネントタイプに分類されます。シンプルな操作だけでトランザクションを測定できますが、複雑な場合はトランザクションをコンポーネントにあわせて測定します
Site24x7にログインし、APMアプリケーションを新規に作成します。そうすると、アプリケーションキーと、ライブラリファイルのダウンロード用URLが提示されます。 アプリケーションの全バージョンで、同じアプリケーションキーを利用してください。
モバイルAPM Android SDKをアプリケーションレベルbuild.gradleに追加します。
監視を開始するには、ハイライトされている行をアプリケーションレベルbuild.gradleに追加する必要があります
取得したアプリケーションキーを使用して、ApplicationサブクラスのonCreate()メソッドでApm.startMonitoring()を呼び出して、APMエージェントを初期化します。APMエージェントは、デフォルトで60秒ごとにSite24x7にデータをアップロードします。このアップロード間隔を変更することも可能です。データが記録されない場合、APMエージェントはネットワーク接続を行いません。
メモ:トランザクションを実行して、データ収集を開始してください。
Apm.startTransaction()の読み込みによってトランザクションを実行し、名前を入力します。実行の長い操作の前にトランザクションを開始して操作が完了次第、停止してください。トランザクションはスレッドセーフで、異なるスレッドから開始や停止を行うことができます。トランザクションオブジェクトは一度だけ開始と停止を行えます。同じ名前のトランザクションはアプリケーション全体で平均化されます。そのため、同じトランザクション名を用いて同じ操作が複数回実行された場合に、その平均実行時間が記録されます。
private void listArticles() {
Transaction transaction = Apm. startTransaction ( "List Articles" );
// Perform long-running operation
Apm. stopTransaction ( transaction );
}
Transaction.startComponent()の呼び込みと入力によって、トランザクション内の操作をコンポーネントにグループ化することができます。Component.TYPE_HTTP, Component.TYPE_SQLITE, Component.TYPE_UIなどといった事前定義のコンポーネントの内の1つか、ユーザー定義のコンポーネントを使用することができます。コンポーネントはスレッドセーフで、異なるスレッドから起動と停止を行うことができます。コンポーネントオブジェクトは一度だけ起動と停止を行えます。親トランザクションがすでに停止している場合、コンポーネントオブジェクトは停止させることができません。トランザクション内の複数のコンポーネントは並行して実行することができます。同じ名前のトランザクションがあるコンポーネントは平均化されます。
上記の例の場合、HTTP操作(記事やサムネイルのダウンロード)で要した合計時間が Component.TYPE_HTTP によって計測され、記事のみの取得時間は "Download Articles" によって取得されます。 各サムネイルの取得時間は、ループ内で複数回実行されるため "Download Thumbnail" によって平均化されて記録されます。
取得されたデータを Apm.flush()メソッドを用いて、Site24x7のサーバーに手動でフラッシュすることが望ましい場合があり、特に、アプリケーションやアクティビティを削除する前にこの操作を行う必要があると思います。長い更新間隔(デフォルトでは60秒)を設定している場合、アプリケーションが削除される前に次の更新までに手動でデータをフラッシュする必要があります。
モバイルアプリケーションでAPMインサイトのAPIが設定されていると次のメトリックが表示されます。
全世界サマリーレポートは選択した期間での全世界にわたるアプリケーションのパフォーマンスを表示します。Apdexスコアのカラーコードは0から1で示され、0はユーザーが不満な状態、1は満足している状態を表します。地図上の各地域にカーソルを合わせることで、その地域での個別のApdexスコア、平均応答時間、スループット、エラーの情報が表示されます。
選択した期間でのアプリケーションの合計応答時間とスループットが管理タブから表示できます。
アプリケーションコードの他に様々な理由によってアプリケーションの応答時間は影響を受けます。アプリケーションの応答時間を地域、デバイス、OSバージョンにわたって比較することは問題の原因の絞り込みに役立ちます。
地域およびキャリアーごとの応答時間が地域タブ内に表示されます。
様々なデバイスやOSバージョンの応答時間がデバイスタイプタブ内に表示されます。
個々のトランザクションの応答時間、スループット、数(トランザクションが要求された回数)がトランザクションタブで表示されます。
クラッシュ分析タブ内で選択した期間でのクラッシュ回数を表示できます。上部のグラフにカーソルを合わせると、各デバイスのクラッシュ数、問題数、クラッシュの影響を受けたユーザー数が表示されます。中段にはクラッシュのパーセンテージ変化率(クラッシュの総数の増減とクラッシュのないユーザーの数)が表示されます。クラッシュサマリーには例外についても把握できます。
例外をクリックすることで、エラーのあった行を把握できます。
アプリケーションの応答時間が、設定したしきい値を超えた際に通知を行うように設定を行います。
重要度によってトラブルやクリティカルのステータスでのアラートを設定できます。
アラートの設定には次の手順を参照してください。
通知プロファイルの設定を変更することで、アプリケーションがダウンした時のアラートを受け取るタイミングを設定できます。またユーザーアラートグループの設定で、引き起こされたアラートを誰が受け取るかを選択できます。
カスタムAPIはユーザーID、カスタムイベントの追跡、画面取得などの動的値の設定に使用されます。このドキュメントではSite24x7で使用できるカスタムAPIの各タイプとその構文のについての使用方法について記載しています。
次のAPIを使用して、カスタムなアップロード間隔でSDKを起動できます。デフォルトのデータアップロード間隔は60秒です。
デフォルトでSDKにより一意のユーザーIDが生成されます。カスタムユーザーIDをカスタマイズしたい場合、次の構文を指定することで行えます。メトリックの追跡や特定のユーザーに特有の問題をデバッグしたい場合に役立てられます。
次のAPIを使用して、アプリケーション特有のタイミングでイベントを追跡できます。
デフォルトで、次のネットワーキングライブラリを用いて、ネットワークリクエストが自動取得されます。
さらに多くのHTTP要求を追加したい場合、次のAPIを使用します。
デフォルトで、すべての画面が取得されます。また、不足している画面を追加したい場合は、以下のAPIを使用してください。
次のAPIを使用して、開発、デバッグ、本番、リリースといった各環境の設定にわたるデータをフィルターするためのカスタムな環境情報を設定します。
次のAPIを使用して、次のアップロードまで待つことなく、サーバーにレコードデータをアップロードします。デフォルトで、フラッシュ間隔は60秒です。
URLのリストを引数として次のAPIにパスすることで、指定したURLを監視から除外できます。
画面のリストを引数としてAPIにパスすることで、指定した画面を監視から除外します。
次のコードを使用して、フラグメントを自動で追跡します。
Add the above line to the onCreate method of the Launching Activity.
2022/5/13
2021/6/4