Node.js Framework

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.

NestJS observability challenges

Common problems that NestJS developers face in production -- and how TraceKit solves them.

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 OpenTelemetry instrumentation to your NestJS app with a few lines of code.

// 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();

See the full Node.js integration guide

Node.js Distributed Tracing Guide

Go deeper with our Node.js distributed tracing guide -- covering common pain points, production patterns, and code examples.

What you get with TraceKit

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 add observability to NestJS?

Get started with TraceKit in under 5 minutes. $29/month flat -- no per-host fees, no surprises.