INTEGRITY Документация

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.