Files
mercadodevida/work/artifacts/F-029/implementer.md
2026-08-17 22:23:10 +02:00

1.2 KiB

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.