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