クラッシュ分析

モバイルアプリ開発者は、 Instana のクラッシュ分析機能を活用することで、アプリのクラッシュを早期に検知・把握し、迅速に修正することができます。 この機能は、影響を受けるユーザーの数を最小限に抑え、クラッシュによる悪影響を軽減するのに役立つ。

サポート対象のテクノロジー

Instana クラッシュデータの収集は、Androidおよび iOS のネイティブアプリケーションでサポートされています。 この機能は以下のエージェントバージョンでサポートされています:

  • Instana Androidエージェント 6.0.11 以降( Gradle 7.3.3 に基づく)
  • Instana Androidエージェント 5.2.6 以降( 7.3.3 より前のバージョンの Gradle に基づく)
  • Instana iOS agent 1.6.8 以降

注意事項

  • iOS
    • iOS エージェントは可能な場合はシンボリック化を試み、そうでない場合は Instana のUIに生データが表示されます。
    • アプリケーションが iOS のエミュレータで実行されている場合、クラッシュデータは Instana に送信されません。
    • クラッシュが発生した後、次回アプリケーションを再起動した際に、クラッシュデータが Instana に送信されます。 詳細については、 MetricKit をご覧ください。
    • App IDは有効なApple App IDである必要があります。 さもなければ、クラッシュ収集機能は機能しない。

Androidエージェントでクラッシュデータの収集を有効にする

Androidアプリケーションに、 Instana のAndroidエージェントプラグインとSDKが組み込まれていることを確認してください。 詳しくは、アンドロイドエージェントの説明をご覧ください。

そして、enableCrashReporting プロパティを、Instana.setup() メソッドが呼ばれたときにtrue に設定します。 以下の例を参照してください。

class ExampleApp : Application() {
    override fun onCreate() {
        super.onCreate()
        val instanaConfig = InstanaConfig(
            key = "GbYHxegG4gcgta",
            reportingURL = "https://instana-prod.io/mobile",
            enableCrashReporting = true
        )
        Instana.setup(this, instanaConfig)
    }
}
 

Androidエージェントでクラッシュデータの収集を有効にする方法の詳細については、「 Androidアプリケーションのサンプル 」を参照してください。

iOS エージェントでクラッシュデータの収集を有効にする

iOS エージェントでクラッシュデータの収集を有効にするには、以下の手順を実行してください:

Instana iOS のエージェントがインストールされていることを確認してください。 詳細については、 『 iOS 』のエージェントに関する説明を参照してください。

そして、enableCrashReporting プロパティを、Instana.setup() メソッドが呼ばれたときにtrue に設定します。 以下の例を参照してください。

import UIKit
import InstanaAgent

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication,
                   didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        // App needs to explicitly get user permission for collecting crash payloads before setting enableCrashReporting to true.
        let options = InstanaSetupOptions(enableCrashReporting: true)
        Instana.setup(
            key: "GbYHxegG4gcgta",
            reportingURL: URL(string: "https://instana-prod.io/mobile")!,
            options: options
        )
        return true
    }
}
 

iOS エージェントでクラッシュデータの収集を有効にする方法の詳細については、 「 iOS 」サンプルアプリケーションを参照してください。

Instana のUIにおけるクラッシュの分析

アプリケーションでクラッシュデータの収集を有効にすると、クラッシュが発生した際に、そのデータが Instana に送信されます。 クラッシュデータの分析を始めることができる。

  1. Instana のUIで 「Analytics」 をクリックします。

  2. アナリティクスページで、モバイルアプリ > クラッシュをクリックします。

  3. 以下のようにアプリケーションをフィルタリングする:

    図 1. モバイルアプリのクラッシュ分析画面
    モバイルアプリのクラッシュ解析ビューを示すスクリーンショット

    クラッシュの詳細を見るには、クラッシュセクションを展開し、スタックトレースを見ることができます。 次のスクリーンショットをご覧ください:

    図 2. クラッシュ時のスタックトレース
    クラッシュのスタックトレースを示すスクリーンショット

    Instana シンボルファイルソースマッピングファイルをアップロードすることで、スタックトレースを意味のある情報に変換できます。

トラブルシューティング

私のアプリでのクラッシュは翻訳されていません。 実施する理由

アプリのタイプに応じて、 iOS のシンボルファイルまたはソースマッピングファイルを確認し、クラッシュが発生するアプリバージョン用のソースマップファイルがアップロードされ、コミットされていることを確認してください。 クラッシュを引き起こすアプリのバージョンがソースマップ内のバージョンと一致しない場合、 Instana はそのクラッシュを解析しません。

  1. クラッシュの原因となったアプリのバージョンを特定してください。 クラッシュビーコンを生成するアプリのバージョンを特定するには、以下の手順を実行してください:
    1. モバイルアプリで「 クラッシュ 」タブを開き、クラッシュの発生箇所をクリックしてから、 「クラッシュを分析」 をクリックします。 クラッシュが発生した各ケースについて、クラッシュビーコンを確認できます。
    2. クラッシュが最後に発生したビーコンをクリックしてください(通常は一番上のビーコンです)。
    3. ページを上にスクロールし、 「ダウンロード」 をクリックして、そのクラッシュに関連するビーコンのグループをダウンロードしてください。
    4. ダウンロードした JSON を開き、フィールド type を持つビーコン crashを検索します。
    5. そのビーコンで、値 appVersion を確認し、クラッシュを引き起こしているアプリのバージョンを特定してください。
  2. ソースマップファイルが正しくアップロードされ、コミットされたことを確認してください。 ファイルのアップロードが完了したら、モバイルアプリの設定タブにある 「スタックトレースの翻訳 」メニュー内の表 Symbol file upload configurations で、以下の項目を確認してください:
    • Files: アップロードされた設定ファイルの数は想定通りです。
    • Total size: リストされているアップロード済みのソースマップファイルの合計サイズは、予想通りです。
    • Blobs uploaded: アップロードされたBlobの数は、ソースマップファイルが分割されたBlobの総数です。
    • Commit status: コミットステータスが表示されます Success。 が表示 Commit status された場合は、 「 dSYM ファイルのアップロード」 -または 「マッピングファイルのアップロード」 の手順のステップ5に記載されているとおり、 APICommit upload に連絡してください。

ソースマップおよびシンボルファイルはすでにアップロードしてコミット済みですが、以前のクラッシュは反映されていません。

Instana 遡及的なクラッシュ変換には対応していません。 Instana ソースマップやシンボルが正しくアップロードされ、コミットされた後に発生したクラッシュのみを翻訳します。

翻訳されたクラッシュログが表示されません

エージェントが最新バージョンに更新されていることを確認してください。 変更履歴はこちらでご覧いただけます:

上記の手順をすべて試しても、翻訳されたクラッシュログが表示されない場合は、 Instana のサポートまでお問い合わせください。 可能であれば、問題を効果的にデバッグするため、サポートチケットにソースマップまたは dSYM ファイルを添付してください。