TracekitTracekit
Node.js

NestJS Monitoring with TraceKit

NestJS decorators and dependency injection make your architecture clean -- but they also hide the execution pipeline. Guards, interceptors, and pipes run invisibly before your handler, and microservice transports lose trace context at transport boundaries. TraceKit makes the full pipeline visible.

Why NestJS Needs Better Observability

Common debugging challenges that traditional monitoring tools miss.

Decorator/Interceptor Pipeline Visibility

NestJS request processing flows through guards, pipes, interceptors, and exception filters -- all wired via decorators. When a request is slow or fails, the decorator-based pipeline is invisible without instrumentation. TraceKit traces every step of the NestJS execution pipeline so you can see which guard, pipe, or interceptor is the bottleneck.

Microservice Transport Tracing

NestJS microservices communicate over TCP, Redis, NATS, MQTT, gRPC, and Kafka -- but trace context is not propagated across transport boundaries by default. A request that enters via HTTP and triggers a Redis-based microservice call becomes two disconnected traces. TraceKit propagates context across all NestJS transport layers.

Guard Chain Debugging

NestJS guards determine whether a request is allowed to proceed, but multiple guards can be stacked at controller and method levels. When a request is rejected, it is unclear which guard in the chain denied it. TraceKit traces guard execution with the evaluation result so you can see exactly which guard said no and why.

Get Started in Minutes

Add TraceKit to your NestJS project with a few lines of code.

nestjs-setup.tstypescript
// main.ts
import { NestFactory } from '@nestjs/core';
import { NodeSDK } from '@opentelemetry/sdk-node';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';

// Initialize tracing before NestJS bootstrap
const sdk = new NodeSDK({
    instrumentations: [getNodeAutoInstrumentations()],
    serviceName: 'my-nestjs-service',
});
sdk.start();

async function bootstrap() {
    const app = await NestFactory.create(AppModule);
    await app.listen(3000);
}
bootstrap();

What You Get with TraceKit

Everything you need to monitor NestJS in production.

Distributed Tracing

Trace requests across NestJS controllers, guards, interceptors, microservice transports, and database calls. See the full decorator pipeline in one trace.

Live Code Monitoring

Set breakpoints in your NestJS services and controllers. Inspect injected dependencies, DTO validation, and guard evaluations in production without redeploying.

Simple Pricing

$29/month flat for your entire NestJS application. No per-microservice fees, no per-transport charges -- one price whether you run monolith or microservices.

Microservice Topology

Automatically map dependencies across NestJS microservices. See which services communicate over which transports and where latency accumulates in your distributed architecture.

Ready to debug NestJS in production?

Start free and see distributed traces, live breakpoints, and error tracking in minutes -- no credit card required.