पाठ 29 / 30

Monitoring और Observability

Production में प्रदर्शन को monitor करें और issues को troubleshoot करें।

Observability pillars

तीन pillars: logs (Pino के माध्यम से structured), metrics (request counts, latency), और traces (आपके system के माध्यम से request paths)।

Prometheus के साथ Metrics

Prometheus format में metrics expose करें ताकि monitoring systems इसे scrape कर सकें।

import promClient from 'prom-client';

const httpRequestDuration = new promClient.Histogram({
  name: 'http_request_duration_ms',
  help: 'Duration of HTTP requests in ms',
  labelNames: ['method', 'route', 'status_code'],
});

fastify.addHook('onResponse', (request, reply, done) => {
  const duration = Date.now() - request.startTime;
  httpRequestDuration.observe({
    method: request.method,
    route: request.url,
    status_code: reply.statusCode,
  }, duration);
  done();
});

fastify.get('/metrics', async () => {
  return promClient.register.metrics();
});