24 lines
1019 B
Go
24 lines
1019 B
Go
// 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) {}
|