Gate5 Structured Observability Fields
Objective
Make runtime logs queryable by request and actor identity so release stabilization and incident response can trace execution paths deterministically.
Required Structured Fields
All Platform API request/service logs emit:
requestIdtenantIduserIdcomponentoperationresourceType(when applicable)resourceId(when applicable)
Runtime Coverage
Structured observability is emitted across:
- request middleware (
request_started,request_completed, unhandled failure path), - research (
market_scanenrichment events), - risk pretrade decisions (
approved/blocked), - execution command orchestration (
create_deployment,create_order), - reconciliation drift checks,
- conversation session/turn lifecycle.
Validation Evidence
Contract coverage asserts correlation fields are present and consistent:
/backend/tests/contracts/test_observability_structured_fields.py/backend/tests/contracts/test_error_envelope_runtime.py
Traceability
- Runtime helper:
/backend/src/platform_api/observability.py - Middleware entrypoint:
/backend/src/main.py - Interface contract:
/docs/architecture/INTERFACES.md - Related issues:
#42,#81,#106