DEV Community

Cover image for Como Implementar o Sentry em um Projeto NestJS
Rafael Avelar Campos
Rafael Avelar Campos

Posted on

2

Como Implementar o Sentry em um Projeto NestJS

O Sentry é uma ferramenta essencial para monitoramento de erros e performance em aplicações. Ele captura e reporta exceções automaticamente, além de permitir o rastreamento de performance e profiling de código. Neste artigo, vamos explorar como configurar e usar o Sentry em um projeto NestJS.

1. Instalando o Sentry

Primeiro, você precisa adicionar as dependências necessárias ao seu projeto NestJS. Execute o seguinte comando:

npm install @sentry/nestjs @sentry/profiling-node

2. Configurando o Sentry

Após instalar as dependências, configure o Sentry no seu projeto. Crie um arquivo para as configurações do Sentry, por exemplo, sentry.config.ts, e adicione o seguinte código:

import * as Sentry from '@sentry/nestjs';
import { nodeProfilingIntegration } from '@sentry/profiling-node';

Sentry.init({
  dsn: process.env.SENTRY_DSN,  // Adicione sua DSN do Sentry aqui
  integrations: [nodeProfilingIntegration()],
  tracesSampleRate: 1.0,  // Captura 100% das transações para monitoramento de performance
  profilesSampleRate: 1.0,  // Define a taxa de amostragem para profiling de código
});
Enter fullscreen mode Exit fullscreen mode

*3. Integrando o Sentry na Inicialização do Aplicativo
*

Agora, você precisa integrar o Sentry na inicialização do seu aplicativo. No arquivo principal de inicialização (main.ts), configure o Sentry para capturar e relatar exceções, conforme mostrado abaixo:

import '../src/config/sentry';  // Importa a configuração do Sentry
import {
  BaseExceptionFilter,
  HttpAdapterHost,
  NestFactory,
} from '@nestjs/core';
import { AppModule } from './app.module';
import * as Sentry from '@sentry/nestjs';

async function bootstrap() {
  const app = await NestFactory.create(AppModule, { rawBody: true });

  // Configurando o Sentry para capturar e relatar exceções
  const { httpAdapter } = app.get(HttpAdapterHost);
  Sentry.setupNestErrorHandler(app, new BaseExceptionFilter(httpAdapter));

  await app.listen(3000);
}
bootstrap();
Enter fullscreen mode Exit fullscreen mode

Conclusão

Com estas configurações, o Sentry está agora integrado ao seu projeto NestJS, monitorando erros, exceções e performance da aplicação. Isso pode ser crucial para identificar e resolver problemas rapidamente, garantindo uma experiência de usuário mais estável e previsível.

Lembre-se de ajustar as taxas de amostragem de acordo com o ambiente e a criticidade da aplicação para evitar sobrecarga desnecessária.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay