Bugsnagとは?エラー監視の仕組み・JavaScript導入手順・安定性スコアと料金、Sentryとの選び分け【2026年10月】

Bugsnagとは?エラー監視の仕組み・JavaScript導入手順・安定性スコアと料金、Sentryとの選び分け【2026年10月】

Bugsnag(公式表記はBugSnag)は、アプリで起きた例外やクラッシュを自動で集め、原因ごとにまとめて通知する米SmartBear社のエラー監視サービスです。この記事では、SDKが送ったイベントがエラー単位にまとまる規則、JavaScriptとExpressへの組み込みコード、ソースマップとリリース情報の送り方を順に示します。後半では、リリースごとの品質を数値で見る安定性スコアの計算方法と、2026年10月時点の料金、Sentryとどちらを選ぶかの判断基準を扱います。

まとめ:Bugsnagを選ぶべきリリース品質重視のチームと見送る条件

Bugsnagの強みは、エラーを「どのリリースで入り込んだか」で追える点と、エラーの無かったセッションの割合を安定性スコアとして出せる点です。モバイルアプリや頻繁にリリースするWebサービスで、「今回の版を全員に広げてよいか」を数字で決めたいチームに向いています。

見送るのは、ログやトレースまで1つの製品に集めたい場合と、無料枠で長く運用したい個人開発です。安定性スコアは上位のPreferredプラン以上でしか使えず、Freeプランのデータ保持は7日に限られます。ログ管理やAIによる原因調査まで欲しいなら、Sentryを先に比べてください。

Bugsnagの仕組み:SDKが例外を送りエラー単位にまとめるまでの流れ

Bugsnagは、アプリに組み込んだSDK(公式の呼び名はnotifier)が例外を検知してBugsnagのサーバーへ送り、ダッシュボードでエラーとして束ねる構成です。モバイル・Web・デスクトップ・サーバーの50以上のプラットフォームに対応しています。

SmartBear傘下のBugSnag:Insight Hub改称後の2026年の名称

Bugsnagは2021年にSmartBear社に買収され、2025年には「SmartBear Insight Hub」への改称が発表されました。ところが2026年10月15日時点では、公式の料金ページもドキュメントも製品名をBugSnagと表記しています。smartbear.comのInsight HubページはBugSnagのサイトへ転送されるため、検索ではBugSnagの名前で情報を探すのが確実です。

利用者側で気をつけるのはドメインです。BugSnag for Enterpriseの案内によると、新規のEnterprise組織はapp.bugsnag.smartbear.com、既存顧客と非Enterpriseプランは従来のapp.bugsnag.comを使います。SDKの多くはAPIキーから送信先を自動で判定するので、旧版のツールを使う場合だけ送信先を手で設定します。

イベントとエラーの違い:最上位スタックフレームでまとめる既定の規則

Bugsnagでは、1回1回の例外の発生を「イベント」、同じ原因とみなしたイベントの束を「エラー」と呼びます。料金はイベント数で決まり、受信箱にはエラーが並ぶという関係です。

Error groupingのドキュメントによると、既定の規則は「最も内側の例外のうち、自分のプロジェクト内で最上位にあるスタックフレームの、エラークラス・ファイル・行番号が同じもの」をまとめる方式です。ライブラリ内部で落ちた例外でも、自社コードのどの行から呼んだかで分かれるため、修正担当を決めやすくなります。

DB停止のように、あちこちの呼び出し元で同じ例外が出る障害は、この規則だと別々のエラーに散らばります。その場合はProject settingsの「Group by error class」でクラス単位にまとめます。グルーピング方式を新しい版に上げる操作は元に戻せず、上げた後に受信したイベントにだけ効く点も覚えておくべきです。

BugsnagをJavaScriptとExpressに組み込む導入手順とコード例

ここからは、BugSnagのアカウントとプロジェクトを作成済みという前提で、Node.jsのWebアプリに組み込む手順を示します。APIキーはプロジェクト設定の画面で確認できます。

@bugsnag/js 9.1系のインストールとExpressミドルウェアの登録

JavaScript integration guideによると、@bugsnag/jsはNode.jsとブラウザのどちらで動いているかを自動で判別する共通パッケージです。npmレジストリ上の最新版は2026年10月9日公開の9.1.0で、ドキュメントの記載(v9.0.0)より一歩進んでいます。TypeScriptの型定義は同梱で、4.5以上が前提です。

npm install --save @bugsnag/js @bugsnag/plugin-express

Express integration guideの構成に、リリース追跡用のappVersionとreleaseStageを足した初期化例です。

import express from 'express'
import Bugsnag from '@bugsnag/js'
import BugsnagPluginExpress from '@bugsnag/plugin-express'

Bugsnag.start({
  apiKey: process.env.BUGSNAG_API_KEY,
  plugins: [BugsnagPluginExpress],
  appVersion: process.env.APP_VERSION,          // 例: 4.10.0
  releaseStage: process.env.NODE_ENV,           // 未設定ならproduction
  enabledReleaseStages: ['production', 'staging'],
  redactedKeys: ['password', 'authorization', 'cardNumber']
})

const app = express()
const middleware = Bugsnag.getPlugin('express')

app.use(middleware.requestHandler)   // 必ず最初のミドルウェアにする
/* ここに他のミドルウェアとルートを書く */
app.use(middleware.errorHandler)     // 他のエラーハンドラより前に置く

app.listen(3000)

requestHandlerは、自分より後ろに登録したミドルウェアの例外しか拾えません。順番を間違えると、エラーが1件も届かない状態になります。redactedKeysは既定で「password」を含むキーを伏せますが、自分で指定すると既定値を置き換えるため、上の例のようにpasswordも並べ直します。

try-catchで握りつぶした例外をBugsnag.notifyで送るコード

未処理の例外とPromiseの未処理リジェクトは、初期化だけで自動送信されます。手で送る必要があるのは、catchで処理を続ける代わりに記録だけは残したい例外です。

try {
  await chargeCustomer(order)
} catch (e) {
  Bugsnag.notify(e, (event) => {
    event.severity = 'warning'
    event.addMetadata('order', { id: order.id, plan: order.plan })
    event.setUser(String(order.customerId))
  })
  return res.status(502).json({ message: '決済処理に失敗しました' })
}

addMetadataで付けた値はダッシュボードのタブとして表示され、エラーを絞り込む条件にも使えます。ユーザーIDを付けておくと、「このエラーに当たった利用者は何人か」が分かります。修正の優先順位を決めるときの根拠です。ブラウザ版では利用者のIPアドレスも既定で記録されるため、保存したくない場合はcollectUserIp: falseを指定します。

BugSnag CLIでソースマップを送り本番のスタックトレースを読める形に戻す手順

本番のJavaScriptは圧縮されているため、そのままではスタックトレースが「main.min.js の1行目」のような表示になります。Source mapsのドキュメントで推奨されているのは、ソースマップをBugsnagへアップロードする方法です。Node.jsはアップロードしか選べず、ブラウザ向けだけは公開サーバーに置いたソースマップを取りに行く方式も使えます。

upload jsのコマンドリファレンスに沿った、ビルド後に実行する例です。CLIはnpmの@bugsnag/cli(2026年10月8日時点で3.10.7)として入れられます。

npx @bugsnag/cli upload js \
  --api-key=$BUGSNAG_API_KEY \
  --version-name=4.10.0 \
  --base-url="https://example.com/assets" \
  ./dist

--base-urlには圧縮済みファイルを配信しているURLを指定します。スタックトレース上のパスとソースマップを対応付ける値なので、CDNのパスと1文字でも違うと元のコードに戻りません。--version-nameを省くとpackage.jsonの版が使われるため、SDK側のappVersionと同じ値になっているかを最初に確かめます。ディレクトリを指定せずにプロジェクト直下で実行すると、node_modules内のソースマップまで送られる点にも注意が要ります。

リリース単位の追跡:create-buildと安定性スコアで品質を判断する運用

Bugsnagを入れる価値の半分は、エラーをリリースと結び付けて見られることにあります。Releases & versionsによると、SDKに版とリリースステージを設定するだけで、ダッシュボードを版で絞り込めるようになり、タイムラインに版の切り替わりが表示されます。

create-buildでコミットと版を結び付けるCIへの組み込み

リリースにコミットや差分へのリンクを付けるには、デプロイ時にビルド情報を送ります。create-buildのリファレンスでは、Gitリポジトリの最上位で実行すれば、最初のリモートURLとコミットハッシュが自動で使われると説明しています。

# デプロイ直後にCIから実行する
npx @bugsnag/cli create-build \
  --api-key=$BUGSNAG_API_KEY \
  --version-name=4.10.0 \
  --release-stage=production \
  --builder-name="ci" \
  --metadata="pipeline=$CI_PIPELINE_ID"

サーバーアプリのように同時に1つの版しか動かない構成なら、--auto-assign-releaseを付けると、SDKに版を設定しなくても以降のイベントがこのビルドに紐付きます。ただしデプロイの前後に届いたイベントは、通知のタイミング次第で違う版に入ることがあります。正確に追いたいなら、SDKのappVersionを設定する方法を優先してください。

セッション単位の安定性スコアと目標値・危険値の2段階しきい値

Stabilityのドキュメントによると、安定性スコアはエラーの無かったセッションの割合です。セッションの区切りはプラットフォームで異なり、ブラウザはページの読み込み、サーバーはリクエスト1件の処理、モバイルはアプリの起動か30秒以上バックグラウンドにいた後の復帰を1セッションと数えます。

しきい値は、目標とする「Target stability」と、下回ったらバグ修正を優先する「Critical stability」の2段階で設定します。モバイルでは利用者単位のスコアも選べますが、サーバー側のプロジェクトでは使えません。

落とし穴は2つです。スヌーズや無視に設定したエラーも、未処理であればスコアを下げます。逆に、レート制限で受信されなかったイベントは数えられないのに、セッションは数え続けるため、障害の最中ほどスコアが実際より高く出ます。リリース可否の判断にスコアを使うなら、レート制限の通知もあわせて有効にしておくべきです。

Bugsnagの料金:Free・Select・Preferredのイベント数課金と保持期間

Bugsnagの料金は、ユーザー数ではなく、月間のイベント数と性能監視のスパン数で決まります。以下は2026年10月15日に公式の料金ページで確認した値で、スパンは最少の月100万件を選んだときの月額です。ページ自体に時点の表記はありません。

月50,000イベントで23ドル:プラン別の上限と月額の比較表

プラン 月額(月払い) 月額(年払い) 主な条件
Free 0ドル 0ドル 1ユーザー・7,500イベント・保持7日
Select 50k 23ドル 20ドル ユーザー無制限・保持60日
Select 300k 75ドル 65ドル イベント数だけ増やした場合
Preferred 100k 39ドル 33ドル 安定性スコア・SAML SSO
Preferred 1M 480ドル 399ドル 自動の優先度付け
Enterprise 要問い合わせ 要問い合わせ オンプレミス版・個別保持期間

Selectは月300万イベント、Preferredも月300万イベントまでの段階が用意されています。表で分かるとおり、安定性スコアを使うにはPreferredが前提で、同じ月10万件前後でもSelectより割高になります。リリース判断にスコアを使う予定があるなら、最初からPreferredで見積もってください。14日間の無料トライアルがあり、AWS Marketplace経由でAWSの請求にまとめる契約も選べます。

イベント上限を超えないための送信量の設定:maxEventsほか3項目

イベント課金で費用が読めなくなる原因の多くは、開発環境の例外と、同じ画面で繰り返し出る例外です。Configuration optionsには、送信量を抑える設定が用意されています。

  • enabledReleaseStages:既定では全ステージを送る。productionとstagingだけに絞ると、手元の開発環境のエラーで枠を消費しない
  • maxEvents:ブラウザ限定。1ページで送るイベントの上限で、既定は10件、最大100件
  • maxBreadcrumbs:イベントに添える操作履歴の件数。既定25件、最大100件で、課金ではなく1件あたりの情報量に効く

ブラウザのmaxEventsはURLがpushStateで変わるたびに数え直されます。SPAで画面遷移が多い場合、1人の利用者が数十件を送ることもあるため、無料枠の7,500件は小さなサービスでも数日で尽きる可能性があります。

BugsnagとSentryの選び分け:リリース品質管理とログ・AI調査で判断する基準

Bugsnagの比較相手として最も挙がるのがSentryです。Sentry側の機能と導入方法はSentryの機能・料金・使い方にまとめています。

無料枠・有料の入口価格・保持期間の比較表:5,000件と7,500件の差

観点 Bugsnag Sentry
無料枠 7,500イベント・1ユーザー 5,000エラー・1ユーザー
無料枠の保持 7日 30日
有料の入口 Select 年払い月20ドル(5万件) Team 年払い月26ドル(5万件)
有料の保持 60日 最大90日
ログ・AI調査 なし ログ5GB込み・Seerは別料金

Sentryの値はSentryの料金ページの年払い価格で、5万件を超えた分は1件あたり0.0003625ドルからの従量課金です。入口の単価はBugsnagがやや安く、保持期間とログの同梱ではSentryが勝ります。OpenTelemetryの計装と組み合わせる構成なら、SentryとOpenTelemetryを併用する3経路のほうが選択肢は広がります。

Bugsnagを採用すべき条件:リリースごとの安定性で出荷を判断する体制

採用するのは、iOS・Android・Webを並行してリリースし、「新しい版のクラッシュ率が前の版より悪化していないか」を毎回確かめているチームです。安定性スコアの目標値と危険値を決めておけば、段階リリースを広げるか止めるかを、担当者の感覚でなく数字で決められます。

エラー監視の導入だけでなく、リリース判定のルールや障害時の連絡体制まで含めて整えたい場合は、保守運用・内製化支援として、ツール選定から運用ルールづくりまで相談を受けています。

Bugsnagを見送る場面:ログ統合が必要な構成とAPMを既に入れている環境

見送るのは、エラーとログとトレースを1つの画面で突き合わせたい構成です。Bugsnagの性能監視は分散トレーシングまで扱いますが、ログ管理は持たないため、障害調査では別のログ基盤と行き来することになります。

すでにDatadogやNew RelicでAPMを計装している環境も、エラー追跡のためだけにBugsnagを足す理由は薄くなります。Datadogを使っているなら、Datadog Error Trackingの実装手順のように既存の計装の上でエラーを束ねるのが近道です。APMとエラー監視の役割の違いはAPMの仕組みと導入判断、製品の横並びの比較はオブザーバビリティツールの選定軸で整理しています。

Bugsnagの導入前によくある質問:無料プラン・名称・対応言語

Bugsnagの検討でよく出る質問に、2026年10月時点の公式ドキュメントと料金ページをもとに答えます。

Bugsnagは無料で使えますか?

Freeプランがあり、1ユーザーで月7,500イベントと月100万スパンまで無料です。ただしデータの保持は7日間で、チームで使うにはユーザー数の制限がネックになります。個人の検証やリリース前の試用には十分ですが、本番運用ではユーザー無制限で保持60日のSelect以上を前提に考えてください。有料プランは14日間の無料トライアルで試せます。

BugsnagとInsight Hubは別の製品ですか?

同じ製品です。SmartBear社は2025年にBugsnagをInsight Hubへ改称すると発表しましたが、2026年10月15日時点の公式サイトとドキュメントでは製品名がBugSnagに戻っており、Insight Hubのページも転送されます。オープンソースのSDKは一貫して@bugsnagの名前で配布されているため、コードを書き換える必要はありません。

Bugsnagはどの言語やフレームワークに対応していますか?

公式には50以上のプラットフォームに対応しています。JavaScriptではReact・Angular・Vue・Svelte・Express・Koa・Honoなどの専用ガイドがあり、AWS LambdaやCloudflare Workers向けの手順も用意された構成です。モバイルはAndroid・iOS・React Native・Flutter・Unityに対応し、CLIでdSYMやProGuardのマッピングファイルもアップロードできます。

Bugsnagの安定性スコアはどのプランで使えますか?

PreferredプランとEnterpriseプランで使えます。Selectプランではリリースごとのエラー一覧は見られますが、エラーの無かったセッションの割合としてのスコアと、目標値・危険値の設定は含まれません。月10万イベントのPreferredは月払いで39ドル、年払いで月33ドルです。

Bugsnagに個人情報を送らないようにするにはどうすればよいですか?

SDKのredactedKeysに伏せたいキー名を並べると、送信前に値が[REDACTED]に置き換わります。ブラウザ版は利用者のIPアドレスを既定で記録するので、不要ならcollectUserIp: falseを指定します。受信後に個人情報を検出して保存前に消す機能まで欲しい場合は、Enterpriseプランが対象です。

関連記事

お気に入りに入れた記事の一覧

この記事は以下の記事からリンクされています

資料請求

今日のトレンド記事 直近 24 時間で、いつもより多く読まれている記事

  1. 2026.10.14 テックブログ ブックオフ不正アクセス:約638万人の対象確認と本物メールの見分け方
  2. 2026.10.14 テックブログ Commune不正アクセス:約30.7万人漏えいの対象確認と共通署名鍵の教訓
  3. 2026.10.15 テックブログ リゾートトラスト不正アクセス:会員2.6万件・カハラ横浜3.6万件の対象確認と窓口
  4. 2026.10.09 テックブログ ユニリタの不正アクセス:SaaS文書管理から漏れた顧客の認証情報と回す手順
  5. 2026.10.08 コラム 特定商取引法に基づく表記の書き方:必須15項目のテンプレートと置き場所

RELATED POSTS 関連記事

目次