← Cloudflare Pages / pages / functions / plugins
Sentry
Sentry Pages Plugin перехватывает и регистрирует все исключения, возникающие ниже него в цепочке выполнения ваших Pages Functions. Поэтому рекомендуется устанавливать этот плагин в корне приложения в functions/_middleware.ts в качестве самого первого 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",
});Плагин использует Toucan ↗. Обратитесь к README Toucan, чтобы изучите доступные параметры ↗. context, request, а также event заполняются автоматически, их не следует настраивать вручную.
Если ваш 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 (например, информацию о пользователе или дополнительные логи), используйте data.sentry экземпляр в любой Function ниже Plugin в цепочке выполнения.
Например, вы можете получить доступ к 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 ↗.