Logging

Logging uses Pino via nestjs-pino. Control the log level with LOG_LEVEL (default info).

Health checks

Both the API and ingestion worker expose a health endpoint:

  • GET /healthz

The API excludes healthz from the global API prefix, so the endpoint is always at /healthz.

Metrics

Prometheus metrics are supported through prom-client and a shared registry in backend/libs/observability/src/metrics.ts. If you need HTTP exposure, add a controller or middleware to serve the registry output.

flowchart LR API[API service] --> Health[GET /healthz] Worker[Ingestion worker] --> Health API -.-> Logs[Pino logs] Worker -.-> Logs API -.-> Metrics[Prometheus registry] Worker -.-> Metrics