feat(ADM-018): completed feature
This commit is contained in:
30
work/artifacts/F-029/architect.md
Normal file
30
work/artifacts/F-029/architect.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Architect — F-029 Observability: traces and business metrics
|
||||
|
||||
## Summary
|
||||
F-029 adds request tracing and business metrics to the backend. Tracing spans critical business operations; metrics expose request counts/histograms and business KPIs.
|
||||
|
||||
## Design
|
||||
|
||||
### Module
|
||||
Create `project/src/modules/observability/` with:
|
||||
- `infrastructure/otel-tracer.ts` — no-op tracer stub, swap later with real OTel.
|
||||
- `infrastructure/metrics.ts` — in-process meter for http_requests_total, http_request_duration_seconds, checkout_completed_total, order_value_sum.
|
||||
- Fastify request hook for tracing and metrics.
|
||||
|
||||
### Approach
|
||||
- `instrumentFastify(app, tracer, meter)` adds `onRequest` and `onResponse` hooks.
|
||||
- `tracer.trace('checkout.start', async () => ...)` in checkout service.
|
||||
- `meter.counter('checkout.completed').add(order.total)` at checkout completion.
|
||||
- No new production dependency — use lightweight stubs compatible with future OTel swap.
|
||||
|
||||
### Files
|
||||
- `project/src/modules/observability/**`
|
||||
- `project/src/app/build-app.ts` — wire instrumentation at startup.
|
||||
|
||||
## Acceptance trace
|
||||
- AC1: request tracing spans created for checkout path.
|
||||
- AC2: metrics http_requests_total and http_request_duration_seconds observed via /metrics route.
|
||||
- AC3: business metric checkout_completed_total increments per successful checkout.
|
||||
|
||||
## Evidence
|
||||
- `work/artifacts/F-029/implementer.md`
|
||||
Reference in New Issue
Block a user