NestJS Error and Performance Monitoring

Actionable insights to resolve NestJS performance bottlenecks and errors. Improve your NestJS monitoring workflow with a full view of releases so you can mark errors as resolved and prioritize live issues.

Getting Started is Simple

Add @sentry/node as a dependency:

Click to Copy
npm install --save @sentry/node

You need to create a file named instrument.js that imports and initializes Sentry:

Click to Copy
import * as Sentry from '@sentry/node'; // Ensure to call this before importing any other modules! Sentry.init({ dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0', // Add Tracing by setting tracesSampleRate // We recommend adjusting this value in production tracesSampleRate: 1.0, });

You need to require or import the instrument.js file before requiring any other modules in your application. This is necessary to ensure that Sentry can automatically instrument all modules in your application:

Click to Copy
// Import this first! import './instrument'; // Now import other modules import * as Sentry from '@sentry/node'; import {BaseExceptionFilter, HttpAdapterHost, NestFactory} from '@nestjs/core'; import {AppModule} from './app.module'; async function bootstrap() { const app = await NestFactory.create(AppModule); const {httpAdapter} = app.get(HttpAdapterHost); Sentry.setupNestErrorHandler(app, new BaseExceptionFilter(httpAdapter)); await app.listen(3000); } bootstrap();

Check our documentation for the latest instructions.

See all platforms
Powered by OpenTelemetry

Powered by OpenTelemetry

Sentry works with OpenTelemetry to provide a simple configuration process, and rich distributed tracing context across all the libraries and frameworks used in your application. Regardless of your chosen tech stack.

NestJS Performance Monitoring

Quickly identify NestJS performance issues and view full end-to-end distributed trace to see the exact, poor-performing API call and surface any related errors.

NestJS Error Monitoring with Complete Stack Traces

See the NestJS source code at each frame instead of settings for just line and column numbers. Get proper asynchronous context tracking — like thread-local store — in a way that fits Node’s concurrency model.

Fill In The Blanks About NestJS Errors

See what the app was doing when the NestJS error occurred: HTTP requests, database queries, console loft statements, etc.

NestJS Application Profiling

Profiling lets you see what parts of your code are consuming the most resources, like CPU or memory, in your application— so you can optimize them before end user experience is impacted. Test your application performance in any environment, including in production, without writing manual tests or extensive troubleshooting.

Try Profiling

“Sentry’s high-quality tooling helps Disney+ maintain high-quality service to its tens of millions of global subscribers.”

Andrew Hay
Director, Disney+

Debugging Any NestJS Exception

Aggregate errors by factors like request details, user ID, and event level to see what’s new, a priority, or a trend.

Assign custom key-value tags to reproduce the error environment specific to your application, business, and users.

Find answers to key questions: Has an error with the same stack occurred before? In which app release did the NestJS bug occur?

It’s why companies that don’t have a complete view of their infrastructure are being punished:

The average cost of network downtime is around $5,600 per minute — or $300,000 per hour.

1 out of 5 online shoppers will abandon their cart because the transaction process was too slow.

On average, a two-second slowdown in page load decreases revenues by 4.3 percent.

FAQs

Traditional logging provides you with a trail of events. Some of those events are errors, but many times they’re simply informational. Sentry is fundamentally different because we focus on exceptions, or in other words, we capture application crashes. We discuss in more detail here and on our blog.

Sentry supports every major language, framework, and library. You can browse each of them here.

You can get started for free. Pricing depends on the number of monthly events, transactions, and attachments that you send Sentry. For more details, visit our pricing page.

Sentry doesn’t impact a web site’s performance.

If you look at the configuration options for when you initialize Sentry in your code, you’ll see there’s nothing regarding minimizing its impact on your app’s performance. This is because our team of SDK engineers already developed Sentry with this in mind.

Sentry is a listener/handler for errors that asynchronously sends out the error/event to Sentry.io. This is non-blocking. The error/event only goes out if this is an error.

Global handlers have almost no impact as well, as they are native APIs provided by the browsers.

Supporting Resources

Performance Monitoring with Node.js

A better experience for your users. An easier life for your developers.

© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.