What is @sentry/vue?
@sentry/vue is an official Sentry SDK for Vue.js applications. It allows developers to monitor and track errors, performance issues, and other events in their Vue.js applications. The package provides seamless integration with Vue.js, enabling automatic error tracking and performance monitoring.
What are @sentry/vue's main functionalities?
Error Tracking
This feature allows you to initialize Sentry in your Vue.js application to automatically capture and report errors. The `dsn` is your Sentry Data Source Name, which uniquely identifies your project.
import * as Sentry from '@sentry/vue';
import { Integrations } from '@sentry/tracing';
import Vue from 'vue';
Sentry.init({
Vue: Vue,
dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0',
integrations: [new Integrations.BrowserTracing()],
tracesSampleRate: 1.0,
});
Performance Monitoring
This feature allows you to monitor the performance of your Vue.js application. You can track custom transactions and measure the performance of specific parts of your application.
import * as Sentry from '@sentry/vue';
import { Integrations } from '@sentry/tracing';
import Vue from 'vue';
Sentry.init({
Vue: Vue,
dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0',
integrations: [new Integrations.BrowserTracing()],
tracesSampleRate: 1.0,
});
// Example of a custom transaction
const transaction = Sentry.startTransaction({
op: 'test',
name: 'My Custom Transaction',
});
setTimeout(() => {
transaction.finish();
}, 99);
Manual Error Reporting
This feature allows you to manually capture and report exceptions in your Vue.js application. This is useful for capturing errors that are not automatically caught by Sentry.
import * as Sentry from '@sentry/vue';
import Vue from 'vue';
Sentry.init({
Vue: Vue,
dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0',
});
// Manually capture an exception
try {
throw new Error('This is a test error');
} catch (error) {
Sentry.captureException(error);
}
Other packages similar to @sentry/vue
bugsnag-js
Bugsnag provides error monitoring and crash reporting for web and mobile applications. It offers similar functionalities to @sentry/vue, such as automatic error tracking and performance monitoring. Bugsnag also provides detailed error reports and supports various platforms, including Vue.js.
rollbar
Rollbar is an error tracking and monitoring service that supports multiple languages and frameworks, including Vue.js. It offers real-time error reporting, automatic error grouping, and detailed error insights. Rollbar is comparable to @sentry/vue in terms of functionality and ease of integration.
airbrake-js
Airbrake provides error monitoring and performance management for web applications. It supports Vue.js and offers features like real-time error tracking, detailed error reports, and performance monitoring. Airbrake is similar to @sentry/vue in its capabilities and integration process.
Official Sentry SDK for Vue.js
Links
General
This package is a wrapper around @sentry/browser
, with added functionality related to Vue.js. All methods available in
@sentry/browser
can be imported from @sentry/vue
.
To use this SDK, call Sentry.init(options)
as early in your application as possible.
Vue 3
const app = createApp({
});
Sentry.init({
app,
dsn: '__PUBLIC_DSN__',
integrations: [
Sentry.browserTracingIntegration({ router }),
],
});
Vue 2
import Vue from 'vue';
import App from './App';
import router from './router';
import * as Sentry from '@sentry/vue';
Sentry.init({
Vue: Vue,
dsn: '__PUBLIC_DSN__',
integrations: [
Sentry.browserTracingIntegration({ router }),
],
});
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>',
});
8.30.0
Important Changes
- feat(node): Add
kafkajs
integration (#13528)
This release adds a new integration that instruments kafkajs
library with spans and traces. This integration is
automatically enabled by default, but can be included with the Sentry.kafkaIntegration()
import.
Sentry.init({
integrations: [Sentry.kafkaIntegration()],
});
Other Changes
- feat(core): Allow adding measurements without global client (#13612)
- feat(deps): Bump @opentelemetry/instrumentation-undici from 0.5.0 to 0.6.0 (#13622)
- feat(deps): Bump @sentry/cli from 2.33.0 to 2.35.0 (#13624)
- feat(node): Use
@opentelemetry/instrumentation-undici
for fetch tracing (#13485) - feat(nuxt): Add server config to root folder (#13583)
- feat(otel): Upgrade @opentelemetry/semantic-conventions to 1.26.0 (#13631)
- fix(browser): check supportedEntryTypes before caling the function (#13541)
- fix(browser): Ensure Standalone CLS span timestamps are correct (#13649)
- fix(nextjs): Widen removal of 404 transactions (#13628)
- fix(node): Remove ambiguity and race conditions when matching local variables to exceptions (#13501)
- fix(node): Update OpenTelemetry instrumentation package for solidstart and opentelemetry (#13640)
- fix(node): Update OpenTelemetry instrumentation package for solidstart and opentelemetry (#13642)
- fix(vue): Ensure Vue
trackComponents
list matches components with or without <>
(#13543) - ref(profiling): Conditionally shim cjs globals (#13267)
Work in this release was contributed by @Zen-cronic and @odanado. Thank you for your contributions!