You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

46 lines
1.4 KiB

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)
}