-
Notifications
You must be signed in to change notification settings - Fork 726
/
prometheus.go
34 lines (27 loc) · 985 Bytes
/
prometheus.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package server
import (
"net/http"
"strconv"
"github.com/golang/glog"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/prebid/prebid-server/v2/config"
metricsconfig "github.com/prebid/prebid-server/v2/metrics/config"
)
func newPrometheusServer(cfg *config.Configuration, metrics *metricsconfig.DetailedMetricsEngine) *http.Server {
proMetrics := metrics.PrometheusMetrics
if proMetrics == nil {
glog.Fatal("Prometheus metrics configured, but a Prometheus metrics engine was not found. Cannot set up a Prometheus listener.")
}
return &http.Server{
Addr: cfg.Host + ":" + strconv.Itoa(cfg.Metrics.Prometheus.Port),
Handler: promhttp.HandlerFor(proMetrics.Gatherer, promhttp.HandlerOpts{
ErrorLog: loggerForPrometheus{},
MaxRequestsInFlight: 5,
Timeout: cfg.Metrics.Prometheus.Timeout(),
}),
}
}
type loggerForPrometheus struct{}
func (loggerForPrometheus) Println(v ...interface{}) {
glog.Warningln(v...)
}