पाठ 31 / 32

Monitoring और Observability

Production समस्याओं के troubleshoot के लिए structured logs, Prometheus metrics और traces से Fastify monitor करें।

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