Skip to main content

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:

  1. requestId
  2. tenantId
  3. userId
  4. component
  5. operation
  6. resourceType (when applicable)
  7. resourceId (when applicable)

Runtime Coverage​

Structured observability is emitted across:

  1. request middleware (request_started, request_completed, unhandled failure path),
  2. research (market_scan enrichment events),
  3. risk pretrade decisions (approved/blocked),
  4. execution command orchestration (create_deployment, create_order),
  5. reconciliation drift checks,
  6. 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