ご利用手順
Site24x7モバイルAPM(iOS版)では、ネイティブ モバイル アプリのパフォーマンスを、エンドユーザーの実機で追跡できます。たとえば、ニュースリーダーアプリが、内部的に、次の作業を実行しているとします。
上記のすべては、時間がかかることがあり、ユーザー体験に影響します。そのため、これら動作のベンチマークと最適化を、各種デバイスむけに行うことが重要です。Site24x7モバイルAPMは、エージェントをライブラリとしてアプリケーションに埋め込み、地球上のすべてのユーザーから、メトリックを収集・集約します。
APMエージェントは、トランザクションとコンポーネントを用いて、コードの実行時間を測定します。上記の例では、ページ遷移の開始から、最終的なUIのレンダリングまでを、トランザクションのシーケンスとみなします。個別の作業は、HTTP、SQLite、ファイル、UIなど、コンポーネントタイプごとに分類します。シンプルな作業はトランザクションだけで測定できますが、作業が複雑な場合、トランザクションにコンポーネントをあわせ、測定します。
1. Site24x7にログインして、APMタブにあるiOSセクションへ移動します。
2. アプリケーション追加ボタンをクリック。
3. アプリケーション名とApdexしきい値を入力。
4. 追加に成功すれば、アプリケーションキーとライブラリファイル(Mobile_APM_iOS.zip)のダウンロードURLが提供されます。アプリケーションの全バージョンに、同じアプリケーション キーを利用してください。
はじめに、Site24x7のWebサイトにログインし、新規のモバイルAPMアプリケーションを作成します。アプリケーションキーと、ライブラリファイルをダウンロードするためのURLが提供されます。アプリケーションのすべてに、同じアプリケーションキーを利用してください。
ライブラリには2種類があります。デプロイ版とリリース版です。デプロイ版は、デバイスでもシミュレーターでも動作します。他方、リリース版はデバイスでのみ稼働し、App Storeへ提出するのは、こちらの側です。デプロイ版からリリース版への切り替えにあたっては、XcodeのDerivedDataフォルダー削除と、プロジェクト消去を推奨します。はじめに、デプロイ版のAPM.frameworkを、Xcodeプロジェクトにバイナリとして埋め込みます。
アプリケーションは、APMフレームワークの利用にあたり、iOS 8.0以上を対象としてください。
最初に、APMフレームワークのインポートを行います。
APMエージェントを、main.mで、入手したアプリケーションキーを用いて初期化してください。APMエージェントは、デフォルトでは60秒ごとに、Site24x7にデータをアップロードします。アップロード間隔をどう設定しても、記録データがなければ、APMエージェントは不要なネットワーク接続を行いません。
トランザクションは、時間のかかる操作の前にはじめ、作業完了しだい、停止してください。トランザクションはスレッドセーフであり、他スレッドからの開始と停止が可能です。トランザクションオブジェクトは、1回のみ、開始・停止できます。同名のトランザクションについては、アプリケーション内横断で平均をとります。すなわち、同じトランザクション名で、同じオペレーションが複数回行われば、平均実行時間が記録されます。
トランザクション内のオペレーションは、ことなるコンポーネントへグループ分けできます。S24HttpComponent.TYPE_HTTP、Component.TYPE_SQLITE、Component.TYPE_UIなどの定義済みタイプも、独自のタイプも利用可能です。コンポーネントはスレッドセーフで、別スレッドからの開始と停止ができます。コンポーネントオブジェクトは、1回限り、開始・停止できますが、親トランザクションが停止した後は、停止できません。複数コンポーネントがトランザクション内で重複し、並列実行されることがあります。1トランザクション内の同一名トランザクションについては、平均をインストルメントします。
上記の例では、HTTP作業の総時間(記事とサムネイルのダウンロード)は、S24HttpComponentで測定する一方、記事本体については、「Download Article」で測ります。サムネイルのダウンロード平均時間の記録には、別途、「Download Thumbnail」で対応し、複数画像をループで処理しています
データは、時折、Site24x7サーバーへとフラッシュしてください(更新情報の強制送信)。アプリケーションの終了直前に、トランザクションをサーバーに記録する場合は、この方法で対応できます。ただし、デフォルトでは60秒のアップロード間隔を大きくする場合、アプリケーションが次のアップロード時刻を待たず終了すれば、必要に応じて、手作業でデータのフラッシュをしてください。
[ S24APM flush]
ワールドワイドサマリーレポートで、指定した期間の全地域にわたるパフォーマンスを表示します。Apdexスコアは0から1の値で、色ごとに判定できます。ユーザー体感に不満をもっているときは0、満足している場合は1を示します。マップで各リージョンにカーソルを当てると、Apdexスコア、平均応答時間、スループット、エラーが、ロケーションごとに表示されます。
選択した期間のアプリの応答時間の合計とスループットを、管理タブから表示できます。
アプリケーション以外にも様々な要因で、アプリケーションの応答時間に影響を与えることがあります。
地域、機器、OSバージョンごとにアプリの応答時間を比較して、問題について分析します。
地域およびキャリアごとの応答時間は、地域タブで表示されます。
様々なデバイスとOSバージョンの応答時間は、機器タイプタブで表示されます。
個々のトランザクションの応答時間、スループット、数(トランザクションが要求された回数)は、トランザクションタブで表示されます。
クラッシュ分析タブで、選択した期間のクラッシュ回数を表示できます。スタックグラフにカーソルを合わせると、各デバイスのクラッシュ回数、問題の数、クラッシュに影響されたユーザー数を表示できます。中間の帯では、クラッシュ数の合計の増減変化のパーセンテージとともに、クラッシュの影響を受けていないユーザー数が表示されます。
クラッシュサマリーで、例外が表示されます。例外をクリックすると、そのエラー行を把握できます。
アラートの設定で、アプリケーションの応答時間が、指定したしきい値を超過した際に、通知を受け取ります。
重要度ごとにトラブルやクリティカルのアラートを設定できます。
アラートの設定方法は次のとおりです。
通知プロファイルの設定で、ダウンの際のアラート条件を設定できます。これに加えて、ユーザーアラートグループsの作成で、アラート受信者を設定できます。
カスタムAPIはユーザーID、カスタムイベントの追跡、画面取得などの動的値の設定に使用されます。このドキュメントではSite24x7で使用できるカスタムAPIの各タイプとその構文のについての使用方法について記載しています。
使用できるAPI:
次のAPIを使用して、カスタムなアップロード間隔でSDKを起動できます。デフォルトのデータアップロード間隔は60秒です。
Objective-Cの構文:
Swiftの構文:
デフォルトでSDKにより一意のユーザーIDが生成されます。カスタムユーザーIDをカスタマイズしたい場合、次の構文を指定することで行えます。メトリックの追跡や特定のユーザーに特有の問題をデバッグしたい場合に役立てられます。
Objective-Cの構文:
Syntax for Swift:
次のAPIを使用して、アプリケーション特有のタイミングでイベントを追跡できます。
Objective-Cの構文:
Swiftの構文:
デフォルトで、次のネットワーキングライブラリを用いて、ネットワークリクエストが自動取得されます。
他のHTTP要求を追加したい場合は次のAPIを使用してください。
Objective-Cの構文:
Objective-C
/**Swiftの構文:
デフォルトで、すべての画面が取得されます。また、不足している画面を追加したい場合は、以下のAPIを使用してください。
Objective-Cの構文:
Swiftの構文:
次のAPIを使用して、開発、デバッグ、本番、リリースといった各環境の設定にわたるデータをフィルターするためのカスタムな環境情報を設定します。
Objective-Cの構文:
Swiftの構文:
次のAPIを使用して、次のアップロードまで待つことなく、サーバーにレコードデータをアップロードします。デフォルトで、フラッシュ間隔は60秒です。
Objective-Cの構文:
Swiftの構文:
URLのリストを引数として次のAPIにパスすることで、指定したURLを監視から除外できます。
Objective-Cの除外:
Swiftの構文:
画面のリストを引数としてAPIにパスすることで、指定した画面を監視から除外します。
Objective-Cの構文:
Swiftの構文:
2022/5/20
新機能:
機能強化:
2022/3/4
機能強化:
2022/1/19
不具合修正:
12 January 2022
機能強化:
2022/1/11
不具合修正:
2021/6/4
機能強化: