Como Implementar o Sentry em um Projeto NestJS

rafael_avelarcampos_e71c

Rafael Avelar Campos

Posted on September 4, 2024

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.

💖 💪 🙅 🚩
rafael_avelarcampos_e71c
Rafael Avelar Campos

Posted on September 4, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related