hardSystem Design

How do you handle instrumentation and observability in Next.js (instrumentation.ts)?

1.0k views
01

Understand the problem

Startup hooks for tracing/monitoring.

nextjsinstrumentationobservabilityopentelemetry
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

Initialize tracing at startup
// instrumentation.ts (project root)
export async function register() {
  if (process.env.NEXT_RUNTIME === 'nodejs') {
    const { NodeSDK } = await import('@opentelemetry/sdk-node');
    new NodeSDK({ /* exporter, instrumentations */ }).start();
  }
}
// Optional: capture server errors with context
export async function onRequestError(err, request, context) {
  reportToSentry(err, { request, context });
}
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.