sentry-best-practices について
sentry-best-practices は、アプリケーションに Sentry の計測を組み込む開発スキルです。Sentry Next.js SDK の例を交え、例外、ユーザーやイベントのコンテキスト、パフォーマンス、パンくず、構造化ログを扱います。
主な機能
- 01処理済み例外の捕捉
- 02ユーザー、タグ、追加情報の付与
- 03スパンによる処理の追跡
- 04カスタムパンくずの追加
- 05構造化ログの記録
活用シーン
- 01関連情報を添えて処理済みエラーを追跡する
- 02API リクエストや UI 操作を計測する
- 03カスタムイベントと構造化ログを記録する
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ andrelandgraf/ fullstackrecipes --skill sentry-best-practicesインストール後、Claude Code で/sentry-best-practicesを入力して読み込まれたか確認します。
詳細
Sentry のベストプラクティス
Sentry で例外を記録し、コンテキストを追加して、パフォーマンスをトレースし、ログを記録します。
前提条件
まず、次のセットアップ手順を完了してください。
- Sentry のセットアップ
例外の記録
処理済みでも追跡する価値のあるエラーを記録します。
import * as Sentry from "@sentry/nextjs";
try {
await riskyOperation();
} catch (err) {
Sentry.captureException(err);
}
コンテキストの追加
setUser はセッション中に保持されます。例外ごとに tags(インデックス化され、フィルタリング可能)と extra(任意の詳細情報)を追加します。
import * as Sentry from "@sentry/nextjs";
Sentry.setUser({ id: session.user.id, email: session.user.email });
Sentry.captureException(err, {
tags: { feature: "checkout", plan: "pro" },
extra: { orderId: "order_123", items: cart.items },
});
サインアウト時にユーザー情報をクリアします。
Sentry.setUser(null);
パフォーマンスのトレース
意味のある操作を startSpan で囲みます。同期形式では、属性を設定するための span を受け取ります。
import * as Sentry from "@sentry/nextjs";
const users = await Sentry.startSpan(
{ op: "http.client", name: "GET /api/users" },
async () => (await fetch("/api/users")).json(),
);
Sentry.startSpan({ op: "ui.click", name: "Submit Button Click" }, (span) => {
span.setAttribute("form", "checkout");
processSubmit();
});
パンくずリスト
コンソールログ、フェッチ、UI のクリックは自動的に記録されます。カスタムイベントには手動でパンくずリストを追加します。
import * as Sentry from "@sentry/nextjs";
Sentry.addBreadcrumb({
category: "auth",
message: "User signed in",
level: "info",
});
Sentry ロガー
構造化ログは「Logs」タブに表示されます。
import * as Sentry from "@sentry/nextjs";
const { logger } = Sentry;
logger.info("Payment processed", { orderId: "123", amount: 99.99 });
logger.warn("Rate limit approaching", { current: 90, max: 100 });
logger.error("Payment failed", { orderId: "123", reason: "declined" });
参考資料
コメント
Markdown 対応