メインコンテンツへスキップ
3分で読めます

エラートラッキング

Pro機能

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

エラートラッキングは Pro、Scale、Enterprise プランで利用できます。プランをアップグレードしてこの機能を有効にしてください。

Zenovay エラーダッシュボード(JavaScript とネットワークエラーを発生回数と影響を受けたユーザー付きでグループ化)。
エラービューは、キャプチャされたすべてのエラーをその発生回数、影響を受けたユーザー、および解決状態でグループ化します。

概要

Zenovay は以下を含むクライアント側エラーを発生時に自動的にキャプチャします:

  • JavaScript エラー: キャッチされない例外と構文エラー
  • Promise リジェクション: ハンドルされない Promise リジェクション
  • ネットワークエラー: 失敗した API 呼び出しとリソース読み込み失敗
  • コンソールエラー: console.error() 経由でログされたエラー

各エラーには以下が含まれます:

  • ソースマップ付きのフルスタックトレース
  • セッションコンテキスト(ユーザーが何をしていたか)
  • ブラウザとデバイス情報
  • セッションリプレイへのリンク(有効な場合)

エラートラッキングの有効化

Zenovay トラッキングスクリプトを追加すると、エラートラッキングがデフォルトで有効になります。確認するには:

  1. ドメインを開き、サイトを選択して、エラータブを選択します
  2. タブがデータを表示するか、有効化するようにプロンプトが表示される場合、スクリプトはアクティブです
  3. ドメインのフィーチャー設定でエラーキャプチャが有効になっていることを確認します

エラーダッシュボード

エラーリスト

エラーダッシュボードはキャプチャされたすべてのエラーを以下でグループ化して表示します:

  • エラーメッセージ: ユニークなエラーフィンガープリント
  • 発生回数: このエラーが発生した回数
  • 影響を受けたユーザー: 影響を受けたユニークビジターの数
  • 最後に検出: エラーが最後に発生した時刻

エラーの詳細

任意のエラーをクリックして以下を表示します:

  • フルスタックトレース: ソースマップされた行番号付き
  • ユーザーコンテキスト: ブラウザ、デバイス、国、ページ URL
  • セッションリプレイ: 発生した内容を視聴するリンク(有効な場合)
  • ブレッドクラム: エラーにつながるイベント
  • トレンドチャート: 時間経過によるエラー頻度

エラーグループ化

同様のエラーは以下で自動的にグループ化されます:

  1. エラーメッセージ(正規化)
  2. スタックトレースフィンガープリント
  3. エラータイプ

これにより、数千の同一エラーがダッシュボードに殺到するのを防ぎます。

カスタムフィンガープリント

関連エラーをグループ化するためにカスタムエラータグを使用します:

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"

手動アップロード

ダッシュボード経由でアップロード:

  1. ドメインを開き、サイトを選択して、エラータブを選択します
  2. ソースマップをクリックしてからソースマップをアップロードをクリックします
  3. .js.map ファイルを選択します
  4. リリースバージョンに関連付けます

セッション統合

セッションリプレイが有効な場合:

  1. 各エラーはセッションリプレイに直接リンクします
  2. リプレイはエラーが発生した正確な瞬間に開きます
  3. エラーの前にユーザーが何をしたかを視聴します
  4. スタックトレースだけでなく、完全なコンテキストを理解します

フィルタリングとアラート

エラーフィルタリング

エラーを以下でフィルタリング:

  • 日付範囲
  • ブラウザ
  • デバイスタイプ
  • リリースバージョン
  • エラータイプ

エラーアラート

新規またはスパイク中のエラーのアラートを設定します:

  1. ドメインを開き、サイトを選択して、エラータブを選択します
  2. アラートを設定をクリックします
  3. しきい値を設定します(例:「5 分間に 10 回以上発生」)
  4. 通知チャネルを選択します(メール、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 とコンセント設定を尊重します
  • エラーデータはあなたの保持ポリシーに従います

ベストプラクティス

  1. ソースマップをアップロード: ミニファイされたコードのデバッグに不可欠
  2. アラートを設定: 重大なエラーについて直ちに知ることができます
  3. 定期的にレビュー: 定期的なエラーレビューは技術的負債を防ぎます
  4. リリースにタグを付ける: エラーを特定のバージョンに関連付けます
  5. セッションリプレイを視聴: コンテキストはデバッグのすべてです

次のステップ

このページは役に立ちましたか?