Zenovayが類似エラーをどのようにインテリジェントにグループ化してノイズを減らし、デバッグを高速化するかを学びます。

エラーグループを見つける場所
DomainsからWebサイトのダッシュボードを開き、Errorsタブを選択します。タブには2つのサブタブがあります:
- Errors — JavaScriptおよびネットワークエラーのグループ化されたリスト(この記事)。
- Frustration — レイジクリック、デッドクリック、およびその他のフラストレーション信号。
エラートラッキングはProプラン以上で利用可能です。
エラーグループ化の仕組み
フィンガープリントによるグループ化
個々の発生を表示する代わりに、Zenovayは以下から派生したフィンガープリントを使用して、同一エラーを単一グループに折りたたみます:
- エラータイプ — TypeError、ReferenceError など
- エラーメッセージ — メッセージパターン
- スタックトレース — コールスタックの最上位フレーム
同じフィンガープリントを持つ2つの発生は同じグループに入り、単一の繰り返されるバグが発生数と共に1回表示され、何千回も表示されることはありません。
例
これら2つの発生はグループ化されます:
// エラー 1: ユーザー ID 123
TypeError: Cannot read property 'name' of undefined
at getUserName (user.js:45:12)
at renderProfile (profile.js:78:5)
// エラー 2: ユーザー ID 456
TypeError: Cannot read property 'name' of undefined
at getUserName (user.js:45:12)
at renderProfile (profile.js:78:5)
同じグループである理由:
- 同じエラータイプ(TypeError)
- 同じメッセージ
- 同じスタックトレース位置
エラーグループリスト
リスト内の各グループは以下を表示します:
| メトリック | 説明 |
|---|---|
| 発生数 | エラーが発火した総回数 |
| ユーザー | 影響を受けたユニークビジタ |
| 最初に見た | グループが最初に記録された時期 |
| 最後に見た | 最新の発生 |
| カテゴリ | JavaScript、ネットワーク、リソース、またはカスタム |
| 重度 | クリティカル、高、中、または低 |
| ステータス | 未解決、調査中、解決済み、または無視 |
グループ詳細パネル
グループをクリックして詳細パネルを開きます。これには以下が含まれます:
- サンプル発生 — 最近のインスタンスの完全な詳細(メッセージ、スタックフレーム、ブレッドクラム)
- 頻度チャート — 時系列での発生
- 影響を受けたページ — エラーが最も多く発生する場所
- ブラウザ&デバイスの内訳 — どのブラウザ、オペレーティングシステム、デバイスが影響を受けているか
- インサイト — エラーが発生する理由、どこを探すべきか、どのように修正するかに関するカテゴリ固有のガイダンス
情報
ソースマップをアップロードして、ミニフィケーション済みの本番スタックトレースをオリジナルのソースファイルに解決してください。Source Maps & JS Errorsを参照。
エラーステータスワークフロー
ステータスタイプ
| ステータス | 説明 |
|---|---|
未解決 | 新規または未解決エラー — デフォルト |
調査中 | アクティブに調査中 |
解決済み | 修正がデプロイされ、エラーは停止すべき |
無視 | 修正予定のない既知の問題(例:サードパーティノイズ) |
ステータスの変更
エラーグループの詳細パネルから、ステータスボタンを使用して調査中、解決済み、または無視としてマークします。グループを解決済みまたは無視としてマークすることで、デフォルトの未解決ビューから削除され、リストが実際にオープンなものに焦点を保ちます。
ステータスを変更するには、Webサイトの編集アクセス権を持つチームロールが必要です。ビューアはエラーグループを閲覧できますが、ステータスは変更できません。
フィルタリング & 検索
エラーリストは以下で絞り込むことができます:
| フィルタ | オプション |
|---|---|
| ステータス | すべて、未解決、調査中、解決済み、無視 |
| カテゴリ | JavaScript、ネットワーク、リソース、カスタム |
| 重度 | クリティカル、高、中、低 |
| 日付範囲 | 今日、昨日、7 / 14 / 30 / 90 日間、すべての時間 |
検索ボックスはエラーメッセージまたはタイプでグループをフィルタリングします。利用可能な日付範囲はプランのデータ保持期間に依存します。
ノイジーなグループの抑制
グループが純粋なノイズ(例えばブラウザ拡張機能からの一度きりの発生)の場合、詳細パネルから無視としてマークしてください。無視されたグループはデフォルトの未解決ビューから削除され、リストが焦点を保ちますが、後で再検討する場合に備えて履歴は保持されます。気が変わった場合は、ステータスを未解決または調査中に戻してください。
ベストプラクティス
トリアージワークフロー
- 定期的にレビュー — 定期的なルーチンの一部として未解決のエラーを確認します。
- 影響度で優先順位付け — 多くのユーザーに影響するグループは通常、発生回数の多さより重要です。
- クイックウィンを優先 —簡単な修正をすぐに解決してノイズを減らします。
- ステータスを一貫して使用 — 未解決リストを実際に注意が必要なものに保ち、既知のサードパーティノイズは無視します。
- スパイクを監視 — 新しいエラースパイクについてプロアクティブに知るためにパフォーマンスアラートを設定します。
効果的なグループ化
- ソースマップを最新に保ち、スタックトレースが読みやすい状態を保ちます。
- コード内で一貫した説明的なエラーメッセージを使用します。
- 手動でトラッキングされた(カスタム)エラーにコンテキストを追加します。
トラブルシューティング
グループが多すぎる
原因:
- 高度に動的なエラーメッセージ(メッセージテキストに多くの可変データ)
- ソースマップが不足している
- サードパーティスクリプトエラー
解決策:
- 安定した正規化されたエラーメッセージを使用する
- ソースマップをアップロード
- サードパーティノイズを無視としてマーク
エラーがグループ化されない
確認事項:
- スタックトレースがエラーで利用可能
- エラーが同じソースロケーションを共有
- エラータイプとメッセージが一致