跳转到内容
搜索文档

Sentry

最后更新 查看 MarkdownAgent 设置

Sentry Pages Plugin 捕获并记录 Pages Functions 执行链中其下方发生的所有异常。因此建议在应用根目录的 functions/_middleware.ts 中作为第一个 Plugin 安装此 Plugin。

安装

npm i @cloudflare/pages-plugin-sentry

用法

import sentryPlugin from "@cloudflare/pages-plugin-sentry";

export const onRequest: PagesFunction = sentryPlugin({
	dsn: "https://sentry.io/welcome/xyz",
});

此 Plugin 使用 Toucan。请参阅 Toucan README 查看可用选项contextrequestevent 会自动填充,不应手动配置。

如果 DSN 存储为环境变量或 KV 中,可以这样访问:

import sentryPlugin from "@cloudflare/pages-plugin-sentry";

export const onRequest: PagesFunction<{
	SENTRY_DSN: string;
}> = (context) => {
	return sentryPlugin({ dsn: context.env.SENTRY_DSN })(context);
};
import sentryPlugin from "@cloudflare/pages-plugin-sentry";

export const onRequest: PagesFunction<{
	KV: KVNamespace;
}> = async (context) => {
	return sentryPlugin({ dsn: await context.env.KV.get("SENTRY_DSN") })(context);
};

附加上下文

如果需要为 Sentry 设置附加上下文(例如用户信息或额外日志),请在执行链中 Plugin 下方的任何 Function 中使用 data.sentry 实例。

例如,可以访问 data.sentry 并设置用户信息:

import type { PluginData } from "@cloudflare/pages-plugin-sentry";

export const onRequest: PagesFunction<unknown, any, PluginData> = async ({
	data,
	next,
}) => {
	// Authenticate the user from the request and extract user's email address
	const email = await getEmailFromRequest(request);

	data.sentry.setUser({ email });

	return next();
};

完整功能列表请参阅 Toucan 文档

这篇文档对您有帮助吗?