// Package metrics define os pontos de medição do sistema (ARQUITETURA.md 12, // decisão 23). Na primeira versão a implementação não faz nada e não existe // endpoint /metrics. Para ativar o Prometheus, basta criar uma implementação // de Recorder com prometheus/client_golang e expor /metrics na rede interna. package metrics import "time" type Recorder interface { // PointsRequest mede cada consulta de histórico à PontoMais. PointsRequest(duration time.Duration, err error) // ReconciliationCycle mede um ciclo de reconciliação. ReconciliationCycle(duration time.Duration, queried, failed int) // Notification conta lembretes por tipo e status final (sent, failed, expired, cancelled). Notification(notificationType, status string) } // Noop é a implementação padrão: não registra nada. type Noop struct{} func (Noop) PointsRequest(time.Duration, error) {} func (Noop) ReconciliationCycle(time.Duration, int, int) {} func (Noop) Notification(string, string) {}