1
0
mirror of https://github.com/mattermost/focalboard.git synced 2024-12-21 13:38:56 +02:00
focalboard/server/services/metrics/service.go
Agniva De Sarker 2d0dde21dd
MM-49703: Bump to Go 1.19 (#4489)
* MM-49703: Bump to Go 1.19

Also fix some gofmt issues

https://mattermost.atlassian.net/browse/MM-49703

* Bump versions in go.mod

* Update go.work as well

* Bump GolangCI to 1.50.1

* Upgraded to new builder image
2023-01-20 11:06:16 -05:00

38 lines
943 B
Go

package metrics
import (
"net/http"
"github.com/pkg/errors"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/mattermost/mattermost-server/v6/shared/mlog"
)
// Service prometheus to run the server.
type Service struct {
*http.Server
}
// NewMetricsServer factory method to create a new prometheus server.
func NewMetricsServer(address string, metricsService *Metrics, logger mlog.LoggerIFace) *Service {
return &Service{
&http.Server{ //nolint:gosec
Addr: address,
Handler: promhttp.HandlerFor(metricsService.registry, promhttp.HandlerOpts{
ErrorLog: logger.StdLogger(mlog.LvlError),
}),
},
}
}
// Run will start the prometheus server.
func (h *Service) Run() error {
return errors.Wrap(h.Server.ListenAndServe(), "prometheus ListenAndServe")
}
// Shutdown will shutdown the prometheus server.
func (h *Service) Shutdown() error {
return errors.Wrap(h.Server.Close(), "prometheus Close")
}