关于 sentry-best-practices
sentry-best-practices 是用于在应用中配置 Sentry 的开发技能,面向应用开发者。内容涵盖异常捕获、用户与事件上下文、性能追踪、面包屑及结构化日志,并提供 Sentry Next.js SDK 示例。
主要功能
- 01捕获已处理的异常
- 02附加用户、标签和额外上下文
- 03用 span 追踪操作
- 04添加自定义面包屑
- 05记录结构化日志
适用场景
- 01结合相关上下文追踪已处理错误
- 02为 API 请求和 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();
});
面包屑
控制台日志、fetch 请求和 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