Bugsnag:エラー追跡とデータ収集の基礎

著者: IT Sectr 公開日: 2026-05-29 読了時間: 8 分

Bugsnagは、本番環境で完全な診断コンテキストとともにバグを自動的に検出、グループ化、優先順位付けするアプリケーションエラーモニタリングおよび安定性プラットフォームです。Bugsnag Documentation、2025によると、BugsnagはAirbnb、Lyft、Slack、PagerDutyを含む7,000以上のクライアント向けに月間60億イベントを処理しています。

重要ポイント

  • Bugsnagは、自動エラーグループ化、重大度ベースの優先順位付け、CI/CD統合を備えたエラーモニタリングプラットフォームです。
  • Stability Scoreは、クラッシュのないセッションの割合を示すメトリクスで、アプリケーションの全体的な安定性を反映します。
  • Severity-based triageは、エラーをcritical、warning、infoに自動的に分類し、チームが最も重要な事項に集中できるようにします。
  • Breadcrumbsは、デベロッパーによるカスタム属性をサポートしながら、エラーに至るまでのイベントの順序を記録します。
  • Release trackingは、エラーを特定のアプリケーションバージョンにリンクし、リリース後のクラッシュ率増加時に自動的に警告します。

開発におけるBugsnagとは

Bugsnagは、2013年に設立され2019年にSmartBearに買収されたアプリケーション安定性モニタリングプラットフォームです。Bugsnagと競合他社の主な違いは、単なるエラー数ではなく、安定性を主要なプロダクトメトリクスとして重視している点です。このプラットフォームは、iOS、Android、React Native、Flutter、ウェブ、バックエンドサービス向けの統合ダッシュボードを提供します。

Bugsnagの各エラーには、コンテキストに基づいて自動的に重大度(critical、warning、info)が評価されます:クラッシュが発生したか、支払い機能が影響を受けたか、多くのユーザーでエラーが再発しているか。チームはバグのリストだけでなく、ビジネスへの影響を示す優先順位付けされたバックログを確認できます。

SmartBear(2024)によると、Bugsnagを使用するチームは、自動重複グループ化と完全なイベントコンテキストにより、平均解決時間を40%削減しています。このプラットフォームは、Slack、PagerDuty、Jira、GitHub、GitLabと統合し、エラーから自動的にタスクを作成します。

Stability Scoreと自動優先順位付け

Stability ScoreはBugsnagの主要メトリクスであり、エラーなしで完了したセッションの割合を示します。この値は、一定期間における総セッション数に対するクラッシュフリーセッションの比率として計算されます。99.9%のスコアは、1,000セッション中1つにエラーが含まれることを意味します。

Stability Scoreのしきい値はCI/CDと統合されています:新しいバージョンをデプロイした後にスコアが設定されたしきい値(例:99.5%)を下回った場合、Bugsnagは自動的にリリースをブロックするか、Slackにクリティカルアラートを送信します。Release health dashboardは、アプリケーションの各バージョンのスコアの推移を表示し、特定の変更が安定性に与える影響を追跡できます。

Severity-based triage

Bugsnagは、3つの重大度レベルによる自動エラー分類アルゴリズムを使用します。Critical — アプリケーションのクラッシュ、5%以上のユーザーに影響する支払いシナリオのエラー。Warning — 個別の機能に影響する致命的でないエラー(handled exceptions)。Info — ログ、低優先度の警告。このアプローチは、何百もの通知によって本当に深刻な問題に集中できなくなるアラート疲れを防ぎます。

重大度アクション
Criticalアプリ起動時のクラッシュ即時通知
Warningアバター読み込みエラー次のスプリントのJiraタスク
InfoQRスキャンのタイムアウト通知なしのログ記録

モバイルプラットフォーム向けBugsnag SDKの統合

Bugsnag SDKのインストールは5分で完了します:依存関係の追加とプロジェクトのAPIキーによる初期化。Bugsnag Android SDKはKotlinとJavaをサポートし、Java例外、ANR、シグナルによるネイティブ(C/C++)エラーを自動的にインターセプトします。

Androidでのセットアップ

SDKはGradle経由で追加され、Application.onCreateで初期化されます。Bugsnagはデバイス情報(モデル、OSバージョン、空きメモリ、バッテリーレベル)を自動的に収集します。Auto-notifyはデフォルトで有効になっており、すべての未処理例外をBugsnagサーバーに送信します。

kotlin
import com.bugsnag.android.Bugsnag
import com.bugsnag.android.Configuration

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        val config = Configuration("YOUR_API_KEY")
        config.autoTrackSessions = true
        config.launchDurationMillis = 5_000
        Bugsnag.start(this, config)
    }
}

このコードは、自動セッショントラッキングと最大5秒の起動時間でBugsnag SDKを初期化します。この時間内にアプリケーションが起動しない場合、Bugsnagは警告として「slow launch」イベントを記録します。

iOSでのセットアップ

Bugsnag iOS SDKはSwiftとObjective-Cをサポートし、NSException、Mach例外(SIGABRT、SIGSEGV)、オペレーティングシステムシグナルをインターセプトします。SDKはiOS 11+およびSwiftUIと互換性があり、すべてのUIイベント(タップ、遷移、ジェスチャー)に対して自動的にbreadcrumbsを作成します。

swift
import Bugsnag

class AppDelegate: UIResponder, UIApplicationDelegate {
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        Bugsnag.start(withApiKey: "YOUR_API_KEY")
        // 追加設定
        return true
    }
}

Swiftコードは最小限の設定でBugsnagを起動します。すべての未処理例外とクラッシュは、完全なデバイスコンテキストとコールスタックとともに自動的にBugsnagダッシュボードに送信されます。

BugsnagのBreadcrumbsは、エラーに先行するイベントの構造化ログです。各breadcrumbには、タイムスタンプ、タイプ(navigation、request、state、error、manual)、および任意のメタデータが含まれます。Bugsnagは、iOSおよびAndroidのUIイベント、アプリケーションの状態変更(background、foreground)、ネットワークリクエストに対するbreadcrumbsを自動的に記録します。

デベロッパーはビジネスロジック用のカスタムbreadcrumbsを追加できます:「ユーザーがカートに商品を追加しました」、「注文作成リクエストが送信されました」。エラーが発生すると、過去30秒間のすべてのbreadcrumbsがイベントに添付されます。Bugsnagは「state」もサポートしています — すべてのセッションエラーとともに送信される任意のデータ辞書です。

kotlin
Bugsnag.leaveBreadcrumb(
    message = "Order created",
    metadata = mapOf(
        "order_id" to "ORD-12345",
        "total" to "49.99"
    ),
    type = BreadcrumbType.STATE
)

Bugsnag.setExtraData(
    "user_tier", "premium"
)

このコードは、注文作成に関するbreadcrumbを残し、ユーザーのプランに関する追加情報を設定します。このセッションでエラーが発生すると、Bugsnagは注文番号とユーザータイプのコンテキストを添付します。

Session tracking

Bugsnagはセッションを自動的にカウントします — アプリケーションの起動ごとに新しいセッションと見なされます。エラーのあるセッションの総セッションに対する比率がStability Scoreを形成します。Session trackingは料金に影響します:Bugsnagはエラー量ではなく、追跡されたセッション数に基づいてライセンスされるため、Sentryや競合他社のイベント単位の料金モデルとは異なります。

Release trackingとCI/CD統合

Release trackingは、各エラーを特定のアプリケーションバージョンおよびリポジトリコミットにリンクするメカニズムです。BugsnagはInfo.plist(iOS)またはbuild.gradle(Android)からバージョンを自動的に検出し、ダッシュボードにバージョン別のエラー数を表示します。これにより、問題が最新のリリースによって引き起こされたかどうかを即座に確認できます。

バージョン2.4.1のデプロイ後にクリティカルエラーの数が2.4.0と比較して3倍に増加した場合、Bugsnagはこのバージョンを「不安定」としてマークし、アラートを送信します。CI/CD統合により、Stability Scoreがしきい値を下回った場合、ステージングやプロダクションへのビルドプロモーションをブロックできます。Jenkins、GitHub Actions、GitLab CIのプラグインがパイプラインに安定性メトリクスを渡します。

Bugsnag Stability Benchmark(2024)によると、モバイルアプリケーションのエラーの68%は新しいバージョンによってもたらされ、長年存在するバグではありません。Release trackingにより、デプロイ後の回帰検出時間が数時間から数分に短縮されます。

BugsnagとSentry、Crashlyticsの比較

エラーモニタリング市場には3つの主要プレイヤーがあります:Bugsnag、Sentry、Firebase Crashlytics。Bugsnagは、セッションベースの料金モデル(イベント単位ではなく)、Stability Scoreへの焦点、自動重大度優先順位付けで際立っています。Sentryは、分散トレーシングによるより深いパフォーマンスモニタリングを提供し、オープンソースです。Crashlyticsは、Firebaseエコシステムに統合された基本的な機能を備えた無料のソリューションです。

特徴BugsnagSentryCrashlytics
価格(開始)5,000セッションまで無料5,000イベントまで無料無料
パフォーマンスモニタリング制限あり分散トレーシング対応の完全版なし
Flutter向けSDKありあり制限あり
セルフホステッドなしあり(オープンソース)なし
Stability Scoreあり(主要メトリクス)なしなし

ツールの選択は優先順位によって異なります:主要なメトリクスが本番環境でのアプリケーション安定性である場合、Bugsnagが最も直感的なメトリクスを提供します。分散トレーシングによる深いパフォーマンス分析が必要な場合 — Sentry。Googleエコシステムとの統合による無料の基本モニタリングの場合 — Crashlytics。

よくある質問

Bugsnagはどのようにエラーの重大度を判断しますか?

アルゴリズムは3つの要素を考慮します:例外のタイプ(クラッシュまたはhandled)、影響を受けるユーザー数、シナリオコンテキスト。Critical重大度は、メイン画面または支払いフローでエラーが発生し、1%以上のユーザーに影響を与えた場合に割り当てられます。デベロッパーはAPIまたはSDK設定を通じて手動で重大度を上書きできます。

BugsnagはReact NativeとFlutterをサポートしていますか?

はい、BugsnagはReact Native(新しいアーキテクチャ対応)とFlutter(Dart 3.x互換)向けのSDKを提供しています。両方のSDKは、ナビゲーション、ネットワークリクエスト、アプリケーション状態の自動breadcrumbs収集と、ビジネスロジック用のカスタムインストルメンテーションをサポートしています。

BugsnagをJiraと統合できますか?

はい、BugsnagはJiraとの双方向統合を提供しています:新しいエラーが自動的にJiraでタスクを作成でき、Jiraでタスクを閉じるとBugsnagでエラーが「解決済み」ステータスに移行します。Jira CloudとJira Server(Jira Connect経由)がサポートされています。

Bugsnagはアプリケーションのサイズにどのように影響しますか?

Bugsnag SDKは、リリースビルドでAPK/IPAサイズに約1.5MBを追加します。これはSentry(約2MB)より少ないですが、Firebase Crashlytics(約0.8MB)より多いです。コンパイルを高速化するためにデバッグビルドからSDKを削除し、テストとリリース設定のみに残すことをお勧めします。

Bugsnagをバックエンドアプリケーションに使用できますか?

はい、Bugsnagはバックエンド言語をサポートしています:Ruby、Python、Node.js、Java、.NET、Go、PHP。バックエンドエラーはモバイルエラーと同じダッシュボードにサービスごとにグループ化されて表示されます。これにより、エンドツーエンドの安定性を追跡できます:APIがダウンした場合、デベロッパーは問題がクライアント側かサーバー側かを確認できます。

まとめ

  • Bugsnagは、安定性メトリクスと重大度ベースの自動エラー優先順位付けに焦点を当てたエラーモニタリングプラットフォームです。
  • Stability Score — エラーのないセッションの割合。リリース品質評価とCI/CDゲートキーピングの主要メトリクス。
  • Severity-based triageはエラーをcritical、warning、infoに自動的に分類し、アラート疲れを防ぎます。
  • Release trackingは、迅速な回帰検出のために各エラーをアプリケーションバージョンとコミットにリンクします。
  • SDKはiOS、Android、React Native、Flutter、および統合ダッシュボード内の9つのバックエンド言語をサポートしています。
  • セッションベースの料金モデルはBugsnagを競合他社と差別化し、予算の予測可能性を高めます。
  • Bugsnagは、アプリケーションの安定性が主要なビジネスメトリクスであり、自動エラー優先順位付けが必要なプロダクトチームに推奨されます。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください