概要

はじめに

Crittercism は、モバイル アプリのパフォーマンス問題をリアルタイムでモニタし、優先順位をつけ、トラブルシューティングを行い、傾向を表示します。このサービスは、以下の機能を提供します (機能詳細については、該当リンクをクリックしてください)。

Crittercism の機能詳細に関しては、 Solution Overview を参照してください。

対応アプリ プラットフォーム

開発者は、以下のプラットフォームで動作するアプリに対して Crittercism を統合できます。

  • Apple
  • Android
  • HTML5
  • ハイブリッド アプリ (HTML5 コンポーネントを使ったネイティブ プラットフォーム)

主要概念

本セクションでは、開発者がアプリに Crittercism を統合する際に理解しておく必要のある主要概念を説明します。

アクティブ ユーザーとアプリ ロードの追跡

ユーザーがデバイス上でアプリを起動すると、必ず「アプリのロード」が発生します。ユーザーがインストルメント化されたアプリケーションの使用を開始すると、ライブラリが自動的にアプリのロード イベントを記録します。 Crittercism は次にアプリのロードを集計し、定期的な毎日および毎月のアクティブ ユーザー カウント (Crittercism が生成する独自の識別子を使用) にし、[Crash Trends (クラッシュ トレンド)] ページでアプリケーションのリリースされたバージョンの相対的な利用度に関する見解を提供します。たとえば、アプリの各バージョンごとのロード回数やクラッシュとなったアプリのロード率 (クラッシュ率) がわかります。

クラッシュ レポート (未処理例外)

クラッシュとは、ユーザーのセッションを終了させる予期しないイベントによって発生するランタイム例外のことを言います。クラッシュは、アプリの try/catch ブロック内では処理されないイベントです。 アプリのクラッシュが発生すると、Crittercism ライブラリはデバイスの状態を記録して Crittercism プラットフォームにスタック トレースを送信します。ポータルの [Crash Reporting (クラッシュ レポート)] ページは、根本的原因の分析やデバッグに役立つその他のメトリクスと合わせてそのイベントを表示します。クラッシュは、最も頻繁に発生するクラッシュがわかりやすいようにグループ化されています。 Crittercism は開発者にエラーを警告し、ローカル開発/テストで問題を再現するのに必要な情報を提供します。

例外を追跡すると、開発者は以下を実現できます。

  • エラーが発生する可能性のあるホットスポットの特定
  • その問題に関連するスタックトレース、診断、メタデータ、ブレッドクラムを表示して例外を分析
  • バグに優先順位をつけて解決し、エラーやクラッシュを抑制したり排除

処理される例外

処理される例外とは、 try / catch ブロック内で処理されるランタイム例外のことを言います。処理される例外は予測されるエラーであり、開発者は Crittercism API 呼び出しを使ってログできます。Crittercism 機能が統合されたアプリの場合は、処理される例外が発生されるたびに Crittercism がそれを処理される例外イベントとしてログします。

Note

処理される例外の追跡は、有料契約プランでのみご利用いただけます。

Crittercism ポータルは、処理される例外のメトリクスを表示して開発者の根本的原因分析やデバッグを支援します。

ユーザー メタデータ

開発者は、メタデータを各ユーザーに関連付け、ポータルとクライアントの両者でユーザーの区別に役立てることができます。Crittercism はこの情報を [Crash Report (クラッシュ レポート)] タブ (特定のユーザーを選択するときに [Affected Users (対象ユーザー)] の下にある) に表示します。

Note

ユーザー メタデータのロギングは、有料契約プランでのみご利用いただけます。

ユーザー メタデータの例としては、ショッピング カートやクラッシュ時にユーザーに関連付けられているトランザクション情報、ユーザー フロー (ゲームのレベル、位置、現在のアプリの表示など) 内のファクタ (イベント、変数または状態情報) などがあります。

この機能により、カスタマー サポート スタッフは以下のようにしてポータルでメタデータを閲覧することができます。

  • ユーザー名で検索して今までそのユーザーが何回クラッシュを経験しているかを判断
  • クラッシュや処理される例外が発生したユーザーのリストを表示

スタック トレースや診断と合わせてユーザー メタデータを追跡すると、サポート スタッフはよりよくデータの相関性を示し、問題の優先順位を決め、サポート チケットに対応できるようになります。

また開発者は、キーや値のパラメーターを受け入れるメソッドを使用して各ユーザーに任意量のメタデータを添付することもできます。Crittercism ポータルは、ユーザー プロファイル表示時にこの情報を表示します。

Note

また、デバイス タイプ、OS、デバイス上の OS バージョン、アプリ バージョンなど、 クラッシュに関する特定の診断情報も自動的に収集します。 この情報は、ユーザー メタデータとして別個に収集する必要はありません。

Crittercism はユーザーのプライバシーを非常に尊重しています。デバイス ID や、その他クラッシュのデバッグには役立たない個人を特定するような情報 (PII) を送信するアプリを検出した場合には、当社サービスを通じてアプリの開発者にこの情報の収集を削除するよう要請します。

サービス モニタリング

アプリがネットワーク呼び出しを行うと、Crittercism は必ず特定の情報をモニタし、キャプチャします。

  • サービス名
  • デバイス タイプ
  • デバイス OS と OS のバージョン
  • アプリのバージョン
  • 位置情報

Note

位置情報によりユーザーの地理的位置を可視化でき、その地域でのアプリのユーザー数を定量化したり、位置に基づく特定の問題 (停電など) を状況から判断できるようになります。デフォルトでは、位置情報はデバイスの IP アドレスに Geo の逆引きを行って判断します。IP アドレスはただちに廃棄され、当社のプラットフォームには保存されません。 また、より粒度の細かい詳しい位置情報を希望する場合、SDK ではオプションでデバイスの緯度と経度の座標を送信する API を提供しています。

  • エンドポイント URI (有料契約プランでのみご利用可能)

HTTP 呼び出し (REST アプリなど) の場合には、Crittercism が以下の情報をモニタし、キャプチャします。

  • HTTP URL
  • 呼び出しが成功したか失敗したかを判定するための HTTP ステータス コード
  • レイテンシ (リクエストと受信した応答との間に経過した時間)
  • 応答で受信したデータの量

シンボリケーション

デバッグ シンボルが削除されているアプリの場合、 シンボリケーション とはシンボルをマッピングしてスタック トレースを人間が読める形態に翻訳することを言います。 Crittercism では、自動的なサーバー側のシンボリケーションを提供しており、ユーザーがアプリのシンボル ファイルを提供する必要があります。

  • Apple アプリケーションの場合、スタック トレースが 16 進数文字でレポートされます。シンボリケーションでは、開発者がこの 16 進数列を人間が読めるテキストに変換することができます。詳細については、 Apple シンボリケーションの設定 を参照してください。
  • Android のNDK (Native Development Kit) を使用する Andoroid アプリケーションの場合、開発者はデバッグ文字を含む共有オブジェクト (.so) ファイルをアップロードしてスタック トレースを人間が読めるテキストに変換することができます。詳細については、 Android NDK シンボリケーションの設定 を参照してください。
  • ProGuard ツールを使用して関数名を難読化する Andoroid アプリケーションの場合、開発者は Proguard マッピング ファイルを使用して難読化された名前を人間が読める名前に置き換えることができます。詳細については、 Proguard シンボリケーションの設定 を参照してください。

Crittercism からのオプトアウト

特定のアプリ ユーザーの中には、Crittercism のロギングや追跡機能からオプトアウトしたい人がいることもあります。Crittercism では、Crittercismへのあらゆるアプリのレポートを無効にするスタティック型のオプトアウト ステータス設定があります。この機能はオプションです。使用する場合、開発者はアプリ ユーザーにオプトアウトするかどうかを選択するようにプロンプトするコードを実装する必要があります。 ユーザーがオプトアウトした場合、そのアプリのインスタンスは一切のアクティビティを Crittercism にレポートすることはありません。