package pro import ( mux "github.com/go-chi/chi/v5" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" ) type Prometheus struct { router *mux.Mux usersConfirmed prometheus.Counter // Количество пользователей подтвердивших регистрацию usersRegistered prometheus.Counter // Количество зарегистрировавшихся пользователей } func NewService(router *mux.Mux, pattern string) *Prometheus { // Количество пользователей подтвердивших регистрацию usersConfirmed := prometheus.NewCounter( prometheus.CounterOpts{ Name: "users_confirmed", }) prometheus.MustRegister(usersConfirmed) // Количество зарегистрировавшихся пользователей usersRegistered := prometheus.NewCounter( prometheus.CounterOpts{ Name: "users_registered", }) prometheus.MustRegister(usersRegistered) // middleware? router.Handle(pattern, promhttp.Handler()) return &Prometheus{ router: router, usersConfirmed: usersConfirmed, usersRegistered: usersRegistered, } } func (s *Prometheus) IncUsersConfirmed() { s.usersConfirmed.Inc() // or: Add(5) } func (s *Prometheus) IncUsersRegistered() { s.usersRegistered.Inc() // or: Add(5) }