mcpField
S
sentry

sentry

github.com/brianlovin开发3792.8k 次安装31 周前更新
代码仓库

关于 sentry

sentry 是一项指导 Claude 使用 Sentry 进行错误监控和性能追踪的技能,面向配置或维护相关应用的开发者。它提供异常捕获、跨度追踪、Next.js 初始化及结构化日志的示例。

主要功能

  1. 01异常捕获指导
  2. 02UI 与 API 性能跨度
  3. 03Next.js 初始化配置
  4. 04结构化日志示例

适用场景

  1. 01在 try/catch 中记录异常
  2. 02追踪按钮操作或 API 调用
  3. 03配置 Next.js 的 Sentry 初始化文件
  4. 04为日志添加结构化上下文

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/brianlovin/agent-config --skill sentry

安装后在 Claude Code 中输入/sentry确认已加载。

详细介绍

Sentry 集成

使用 Sentry 进行错误监控和性能追踪的指南。

异常捕获

在 try/catch 代码块中使用 Sentry.captureException(error):

try {
  await riskyOperation();
} catch (error) {
  Sentry.captureException(error);
  throw error;
}

性能追踪

为按钮点击、API 调用和函数调用等有意义的操作创建 span。

UI 操作
function handleClick() {
  Sentry.startSpan(
    { op: "ui.click", name: "Submit Form" },
    (span) => {
      span.setAttribute("formId", formId);
      submitForm();
    }
  );
}
API 调用
async function fetchData(id) {
  return Sentry.startSpan(
    { op: "http.client", name: `GET /api/items/${id}` },
    async () => {
      const response = await fetch(`/api/items/${id}`);
      return response.json();
    }
  );
}

配置(Next.js)

Sentry 初始化文件:

  • sentry.client.config.ts - 客户端
  • sentry.server.config.ts - 服务端
  • sentry.edge.config.ts - Edge 运行时

使用 import * as Sentry from "@sentry/nextjs" 导入——无需在其他文件中初始化。

基本设置
import * as Sentry from "@sentry/nextjs";

Sentry.init({
  dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
  enableLogs: true,
});
启用控制台日志
Sentry.init({
  dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
  integrations: [
    Sentry.consoleLoggingIntegration({ levels: ["log", "warn", "error"] }),
  ],
});

结构化日志

使用 logger.fmt 编写包含变量的模板字面量:

const { logger } = Sentry;

logger.trace("Starting connection", { database: "users" });
logger.debug(logger.fmt`Cache miss for: ${userId}`);
logger.info("Updated profile", { profileId: 345 });
logger.warn("Rate limit reached", { endpoint: "/api/data" });
logger.error("Payment failed", { orderId: "order_123" });
logger.fatal("Connection pool exhausted", { activeConnections: 100 });

评论

支持 Markdown