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();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.
Related Resources
Learn distributed tracing patterns and best practices for Node.js
Full-stack observability head to head. Compare error tracking, session replay, source maps, and distributed tracing.
Calculate SLA uptime and error budgets for your services
Step-by-step APM implementation checklist covering SDK installation, instrumentation, alerting, and production rollout with OpenTelemetry best practices.
Step-by-step guide to migrate from Datadog to TraceKit. Replace dd-trace with TraceKit SDK, map environment variables, and verify traces in minutes.
Ready to add observability to NestJS?
Get started with TraceKit in under 5 minutes. $29/month flat -- no per-host fees, no surprises.