# Monitoring और Observability — Fastify

Source: https://www.geekswithgeeks.com/hi/fastify/ff-monitoring

> 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 कर सकें।

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