5.9.0 — 2026-10-11¶
← 5.10.0 | 5.8.0 → | ↑ 5.x series
Added¶
Configs - OpenTelemetry¶
OTEL.FASTAPI_LOGS_ENABLED- Opt-in FastAPI log records for validation failures and unhandled exceptions, exported through ArchiPy's logger provider.- Default is
False; the records include exception messages and stack traces, so enable it deliberately - Requires
OTEL.LOGS_ENABLED; without a logger provider the option is skipped with a warning
- Default is
Helpers - gRPC¶
rpc.server.active_requestsmetric - UpDownCounter ({request}) that tracks in-flight gRPC server calls, withrpc.system,rpc.serviceandrpc.methodattributes.- Incremented when a call starts and decremented when it finishes, including streaming RPCs and errors
- Mirrors FastAPI's
http.server.active_requests
Changed¶
Helpers - gRPC¶
- BREAKING:
rpc.server.durationrenamed torpc.server.request.duration- The gRPC server duration histogram now follows the same naming as FastAPI'shttp.server.request.duration.- Unit is seconds with the same 14 explicit buckets (0.005 to 10.0) as the FastAPI histogram
- Update dashboards, alerts and recording rules that query
rpc.server.duration; Prometheus names change with it
Helpers - FastAPI¶
- Native telemetry config -
AppUtilsbuilds theFastAPI(telemetry=...)config through a dedicated provider resolver;auto_configurestays off so ArchiPy remains the only exporter owner and nothing is exported twice.
Tests¶
- Quiet Behave output - Removed
logging.basicConfigfromfeatures/environment.pyand setlogging_clear_handlers = true, so logs print only for failed scenarios. - OpenTelemetry scenarios - Added scenarios for FastAPI log export, FastAPI/gRPC histogram unit and bucket parity, and the gRPC active-requests counter returning to zero.
Dependencies¶
- Raised lower bounds - Floors in the core and
packages/*pyprojects now matchuv.lock(pydantic>=2.14.0,fastapi>=0.143.0,sqlalchemy>=2.1.4,opentelemetry-*>=1.45.1/0.66b1,confluent-kafka>=2.16.0,boto3>=1.43.111,cachetools>=7.2.1, and dev/docs tooling).