Skip to content

Observabilidad y errores

Una API FastAPI debe exponer logs, metricas, trazas y errores consistentes.

Error handler

python
@app.exception_handler(AppError)
async def app_error_handler(request: Request, exc: AppError):
    return JSONResponse(
        status_code=exc.status_code,
        content={"code": exc.code, "message": exc.message},
    )

Logs estructurados

Incluye:

  • request id.
  • metodo.
  • path.
  • status code.
  • duracion.
  • user id si aplica.

Metricas

Prometheus puede capturar:

  • Request count.
  • Latencia.
  • Errores.
  • Duracion de DB.

Tracing

OpenTelemetry permite seguir peticiones entre servicios.

Buenas practicas

  • Errores con formato estable.
  • No exponer stack traces.
  • Logs a stdout.
  • Correlation id.
  • Health checks.
  • Dashboards y alertas.