neo-go/pkg/services/metrics/prometheus.go
Anna Shaleva 6b4dd5703e config: unify BasicService config within existing services
There are no changes visible from the user side (at least for those
users who doesn't put Prometheus's or pprof's port in quotes), just
internal refactoring. From now and on, BasicService configuration is
used by RPC server config, TLS for RPC server, pprof and Prometheus.
2022-12-06 16:35:09 +03:00

29 lines
686 B
Go

package metrics
import (
"net/http"
"github.com/nspcc-dev/neo-go/pkg/config"
"github.com/prometheus/client_golang/prometheus/promhttp"
"go.uber.org/zap"
)
// PrometheusService https://prometheus.io/docs/guides/go-application.
type PrometheusService Service
// NewPrometheusService creates a new service for gathering prometheus metrics.
func NewPrometheusService(cfg config.BasicService, log *zap.Logger) *Service {
if log == nil {
return nil
}
return &Service{
Server: &http.Server{
Addr: cfg.FormatAddress(),
Handler: promhttp.Handler(),
},
config: cfg,
serviceType: "Prometheus",
log: log.With(zap.String("service", "Prometheus")),
}
}