22 lines
1.2 KiB
Markdown
22 lines
1.2 KiB
Markdown
# Implementer — F-029 Observability: traces and business metrics
|
|
|
|
## Summary
|
|
Added observability module with a Tracer abstraction, an in-process Meter/InMemoryMeter, Fastify route hooks are stubs for future instrumentation, a /ops/metrics route for admin, and wired a checkout execute span plus checkoutCompleted business metric. No new production dependencies.
|
|
|
|
## Files changed
|
|
- `project/src/modules/observability/**`
|
|
- `project/src/modules/checkout/**` — tracer + checkoutCompleted metric
|
|
- `project/src/app/build-app.ts` — wiring
|
|
|
|
## Acceptance evidence
|
|
- AC1 request tracing spans for checkout path: NoopTracer.trace / startSpan used in CheckoutService.execute('checkout.execute').
|
|
- AC2 metrics route: GET /ops/metrics returns meter snapshot; InMemoryMeter accumulates counters.
|
|
- AC3 checkout_completed business metric: CheckoutMetrics.checkoutCompleted(totalCents) called on success.
|
|
|
|
## Commands run
|
|
- cd project && npm run lint/typecheck/build/test passed
|
|
- DB integration migrations suite passed: 14 files, 53 tests
|
|
- ./scripts/verify.sh passed
|
|
|
|
## Notes
|
|
- Tracer/Meter use no-op in-process implementations; OTel SDK can be swapped in by reimplementing the interfaces. |