Sentry — это мощный инструмент для мониторинга ошибок и производительности приложений. В контексте Vue.js он позволяет автоматически отслеживать исключения, предупреждения и проблемы с производительностью, обеспечивая детальные отчёты о состоянии приложения в реальном времени.
Для начала необходимо установить официальную библиотеку Sentry для JavaScript и адаптер для Vue:
npm install @sentry/vue @sentry/tracing
После установки создаётся базовая конфигурация в основном файле
приложения, обычно main.js или main.ts:
import * as Sentry from "@sentry/vue";
import { Integrations } from "@sentry/tracing";
import { createApp } from "vue";
import App from "./App.vue";
const app = createApp(App);
Sentry.init({
app,
dsn: "https://<public_key>@sentry.io/<project_id>",
integrations: [
new Integrations.BrowserTracing({
tracingOrigins: ["localhost", "my-site.com", /^\//],
}),
],
tracesSampleRate: 1.0,
environment: process.env.NODE_ENV,
release: "my-project@" + process.env.npm_package_version,
});
app.mount("#app");
Ключевые параметры:
development, production).Sentry автоматически интегрируется с глобальным обработчиком ошибок Vue, что позволяет отслеживать исключения в компонентах:
Sentry.init({
app,
dsn: "...",
integrations: [
new Integrations.BrowserTracing(),
],
logErrors: true,
});
При этом все uncaught exceptions и warnings будут отправлены на сервер Sentry с информацией о компоненте, в котором произошла ошибка, и трассировкой стека вызовов.
Иногда требуется отправить ошибку вручную, например, при обработке асинхронных операций:
try {
await someAsyncFunction();
} catch (error) {
Sentry.captureException(error);
}
Также можно добавлять контекст:
Sentry.withScope(scope => {
scope.setTag("user_role", "admin");
scope.setLevel("warning");
Sentry.captureException(new Error("Ошибка при загрузке данных"));
});
error,
warning, info).Sentry может отслеживать переходы между страницами и маршруты Vue Router:
import router from "./router";
Sentry.init({
app,
integrations: [
new Integrations.BrowserTracing({
routingInstrumentation: Sentry.vueRouterInstrumentation(router),
tracingOrigins: ["localhost", /^\//],
}),
],
});
Это позволяет собирать метрики производительности и видеть, какие маршруты вызывают задержки или ошибки.
Для аналитики действий пользователя или специфических ошибок можно
использовать captureMessage:
Sentry.captureMessage("Пользователь попытался выполнить запрещённое действие", "info");
info,
warning, error).environment) позволяет
отделять тестовые сбои от боевых.tracesSampleRate должна быть оптимальной: 1.0
подходит для разработки, в продакшене рекомендуется 0.1–0.25 для
экономии ресурсов.withScope,
setUser) помогает быстро идентифицировать источник
ошибки.Sentry в связке с Vue.js создаёт мощный инструмент для детального мониторинга приложения, позволяя выявлять ошибки на ранних стадиях и повышать стабильность интерфейса.