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