0.0.35 • Published 8 months ago

caught-exception v0.0.35

Weekly downloads
-
License
ISC
Repository
github
Last release
8 months ago

caught-exception

Create Exception Filter

src/config/caught-exception/caught-exception.filter.ts

import { Catch, HttpException, Injectable } from '@nestjs/common';
import { HttpExceptionFilter } from 'caught-exception';
import dataDogTracer from './config/datadog/tracer';

@Injectable()
@Catch(HttpException)
export class HttpExceptionFilterInject extends HttpExceptionFilter {
  dataDogTracer = dataDogTracer;
}

Global Caught Exception Filter

src/main.js

require('./config/datadog/tracer');
import { HttpExceptionFilterInject } from './src/config/caught-exception/caught-exception.filter.ts';

async function bootstrap() {
  // const app = await NestFactory.create(RootModule, {
  app.useGlobalFilters(new HttpExceptionFilterInject());
  // ...
}

DataDog file

src/config/datadog/trace.js

import tracer from 'dd-trace';
const dataDogTracer = tracer.init();
export default dataDogTracer;

Intercept all axios Require/Response in development

src/root.module.js

import axios from 'axios';
import dataDogTracer from './src/config/datadog/tracer';
require('caught-exception/dist/common/api/http-request-global.axios')({
  axios,
  dataDogTracer,
});

Provider HttpExceptionFilterInject on RootModule

src/root.module.js

import { HttpExceptionFilterInject } from './caught-exception';
import { APP_FILTER } from '@nestjs/core';

@Module({
  // imports: [],
  // controllers: [],
  providers: [
    {
      provide: APP_FILTER,
      useClass: HttpExceptionFilterInject,
    },
  ],
});

Caught controllers Require

src/root.module.js

import { LoggerMiddlewareToModule } from './caught-exception';
// replace this:
// export class RootModule {};
// to:
export class RootModule implements NestModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(LoggerMiddlewareToModule).forRoutes('*');
  }
}

Environments

DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL= true
DD_LOGS_ENABLED= true
DD_LOGS_INJECTION= true
DD_PROCESS_CONFIG_ENABLED= true
DD_PROFILING_ENABLE= true
DD_TRACE_ANALYTICS_ENABLED= false
DD_TRACE_ENABLED= true
DD_TRACE_HEADER_TAGS= Host:origin,Referer:referer,x-forwarded-for:x-forwarded-for
DD_VERSION= 4.14.0
// intercept
CATCH_EXCEPTION_TRACE_ROUTES_RULES= { "intercept": { } }
// Intercept: /auth/login 
// Don't exclude: /path/document/example 
CATCH_EXCEPTION_TRACE_ROUTES_RULES= { "intercept": { "include": ["login"], "exclude": ["document"] } }
// Axios intercept prod
CATCH_EXCEPTION_TRACE_ROUTES_RULES= { "intercept": { "production": true } }
0.0.35

8 months ago

0.0.34

8 months ago

0.0.33

8 months ago

0.0.32

8 months ago

0.0.31

8 months ago

0.0.30

8 months ago

0.0.29

8 months ago

0.0.28

8 months ago

0.0.27

8 months ago

0.0.26

8 months ago

0.0.25

8 months ago

0.0.24

8 months ago

0.0.23

8 months ago

0.0.22

8 months ago

0.0.21

8 months ago

0.0.20

8 months ago

0.0.19

8 months ago

0.0.18

8 months ago

0.0.17

8 months ago

0.0.16

8 months ago

0.0.15

8 months ago

0.0.13

8 months ago

0.0.12

8 months ago

0.0.11

8 months ago

0.0.10

8 months ago

0.0.8

8 months ago

0.0.7

8 months ago

0.0.6

8 months ago

0.0.5

8 months ago

0.0.4

8 months ago

0.0.3

8 months ago

0.0.2

8 months ago

0.0.1

8 months ago