エラートラッキング
Pro機能すべての JavaScript エラー、ネットワーク障害、ハンドルされていない例外をユーザーから報告される前にキャッチします。エラートラッキングはフルスタックトレースとセッションコンテキストをキャプチャして、より高速なデバッグを支援します。
エラートラッキングは Pro、Scale、Enterprise プランで利用できます。プランをアップグレードしてこの機能を有効にしてください。

概要
Zenovay は以下を含むクライアント側エラーを発生時に自動的にキャプチャします:
- JavaScript エラー: キャッチされない例外と構文エラー
- Promise リジェクション: ハンドルされない Promise リジェクション
- ネットワークエラー: 失敗した API 呼び出しとリソース読み込み失敗
- コンソールエラー:
console.error()経由でログされたエラー
各エラーには以下が含まれます:
- ソースマップ付きのフルスタックトレース
- セッションコンテキスト(ユーザーが何をしていたか)
- ブラウザとデバイス情報
- セッションリプレイへのリンク(有効な場合)
エラートラッキングの有効化
Zenovay トラッキングスクリプトを追加すると、エラートラッキングがデフォルトで有効になります。確認するには:
- ドメインを開き、サイトを選択して、エラータブを選択します
- タブがデータを表示するか、有効化するようにプロンプトが表示される場合、スクリプトはアクティブです
- ドメインのフィーチャー設定でエラーキャプチャが有効になっていることを確認します
エラーダッシュボード
エラーリスト
エラーダッシュボードはキャプチャされたすべてのエラーを以下でグループ化して表示します:
- エラーメッセージ: ユニークなエラーフィンガープリント
- 発生回数: このエラーが発生した回数
- 影響を受けたユーザー: 影響を受けたユニークビジターの数
- 最後に検出: エラーが最後に発生した時刻
エラーの詳細
任意のエラーをクリックして以下を表示します:
- フルスタックトレース: ソースマップされた行番号付き
- ユーザーコンテキスト: ブラウザ、デバイス、国、ページ URL
- セッションリプレイ: 発生した内容を視聴するリンク(有効な場合)
- ブレッドクラム: エラーにつながるイベント
- トレンドチャート: 時間経過によるエラー頻度
エラーグループ化
同様のエラーは以下で自動的にグループ化されます:
- エラーメッセージ(正規化)
- スタックトレースフィンガープリント
- エラータイプ
これにより、数千の同一エラーがダッシュボードに殺到するのを防ぎます。
カスタムフィンガープリント
関連エラーをグループ化するためにカスタムエラータグを使用します:
try {
// Your code
} catch (error) {
window.zenovay('track', 'error', {
error_message: error.message,
error_stack: error.stack,
tags: {
feature: 'checkout',
action: 'payment_submit'
}
});
}
エラータイプ
JavaScript エラー
標準的なランタイムエラー:
// Captured automatically
TypeError: Cannot read property 'foo' of undefined
ReferenceError: bar is not defined
SyntaxError: Unexpected token
ネットワークエラー
失敗した fetch/XHR リクエスト:
// Failed API call - automatically captured
fetch('/api/data')
.then(r => r.json())
.catch(error => {
// Error captured with request details
});
ネットワークエラーの詳細には以下が含まれます:
- リクエスト URL
- HTTP メソッド
- レスポンスステータス(利用可能な場合)
- リクエスト時間
Promise リジェクション
ハンドルされない Promise リジェクション:
// Captured automatically
Promise.reject(new Error('Something went wrong'));
// Async function errors
async function fetchData() {
throw new Error('Failed to fetch');
}
ソースマップ
読みやすいスタックトレースのためにソースマップをアップロードします:
自動アップロード(推奨)
Webpack、Vite、または Rollup を使用している場合、ビルド中にソースマップを自動的にアップロードできます:
# Upload source maps using the API
curl -X POST "https://api.zenovay.com/api/external/v1/sourcemaps" \
-H "X-API-Key: YOUR_API_KEY" \
-F "release=v1.2.3" \
-F "sourcemap=@./dist/main.js.map"
手動アップロード
ダッシュボード経由でアップロード:
- ドメインを開き、サイトを選択して、エラータブを選択します
- ソースマップをクリックしてからソースマップをアップロードをクリックします
.js.mapファイルを選択します- リリースバージョンに関連付けます
セッション統合
セッションリプレイが有効な場合:
- 各エラーはセッションリプレイに直接リンクします
- リプレイはエラーが発生した正確な瞬間に開きます
- エラーの前にユーザーが何をしたかを視聴します
- スタックトレースだけでなく、完全なコンテキストを理解します
フィルタリングとアラート
エラーフィルタリング
エラーを以下でフィルタリング:
- 日付範囲
- ブラウザ
- デバイスタイプ
- 国
- リリースバージョン
- エラータイプ
エラーアラート
新規またはスパイク中のエラーのアラートを設定します:
- ドメインを開き、サイトを選択して、エラータブを選択します
- アラートを設定をクリックします
- しきい値を設定します(例:「5 分間に 10 回以上発生」)
- 通知チャネルを選択します(メール、Slack、webhook)
エラーの無視
一部のエラーは対応が必要ではありません。無視ルールを設定します:
エラーメッセージ別
{
"error_ignore_patterns": [
"ResizeObserver loop limit exceeded",
"Script error."
]
}
URL パターン別
{
"error_ignore_urls": [
"chrome-extension://",
"moz-extension://"
]
}
手動エラートラッキング
キャッチされたエラーまたはカスタムエラー条件を追跡します:
// Track caught error
try {
riskyOperation();
} catch (error) {
window.zenovay('track', 'error', {
error_message: error.message,
error_stack: error.stack,
context: {
operation: 'riskyOperation',
userId: currentUser.id
}
});
}
// Track custom error condition
if (unexpectedState) {
window.zenovay('track', 'error', {
error_message: 'Unexpected application state',
severity: 'warning',
context: { state: JSON.stringify(appState) }
});
}
API アクセス
API 経由でエラーデータにアクセス:
# List errors
GET /api/websites/:websiteId/errors
Authorization: Bearer YOUR_API_KEY
# Get error details
GET /api/websites/:websiteId/errors/:errorId
Authorization: Bearer YOUR_API_KEY
プライバシー
エラートラッキングはユーザープライバシーを尊重します:
- スタックトレースにはユーザーデータが含まれません
- PII はエラーコンテキストから自動的にスクラブされます
- DNT とコンセント設定を尊重します
- エラーデータはあなたの保持ポリシーに従います
ベストプラクティス
- ソースマップをアップロード: ミニファイされたコードのデバッグに不可欠
- アラートを設定: 重大なエラーについて直ちに知ることができます
- 定期的にレビュー: 定期的なエラーレビューは技術的負債を防ぎます
- リリースにタグを付ける: エラーを特定のバージョンに関連付けます
- セッションリプレイを視聴: コンテキストはデバッグのすべてです
次のステップ
- セッションリプレイ - ユーザーがエラーの前に何をしたか視聴
- ヒートマップ - ユーザーインタラクションを可視化
- トラブルシューティング - 一般的な問題をデバッグ