17 lines
776 B
Markdown
17 lines
776 B
Markdown
# 003 Observability Via Interfaces
|
|
|
|
Context
|
|
- Logging, metrics, and tracing are required, but inner layers must stay independent from OpenTelemetry.
|
|
- The project needs request logging and metrics middleware.
|
|
|
|
Decision
|
|
- Define observability interfaces in `usecase/interface.py`.
|
|
- Implement those interfaces with OpenTelemetry adapters in `adapter/otel/`.
|
|
- Use request logging middleware and metrics middleware in the FastAPI adapter.
|
|
- Do not add a custom trace middleware by default.
|
|
- Use standard ASGI/FastAPI OpenTelemetry instrumentation for request spans.
|
|
|
|
Consequences
|
|
- Usecases stay portable and framework-agnostic.
|
|
- Trace behavior remains consistent with OpenTelemetry defaults.
|
|
- Extra span enrichment can be added later without changing inner-layer contracts.
|