make HTTPMonitor a http.Handler

This commit is contained in:
Jeff Hodges 2016-01-30 12:02:58 -08:00
parent ba3763e398
commit 57b6dd5bb5
3 changed files with 5 additions and 13 deletions

View File

@ -93,7 +93,7 @@ func main() {
auditlogger.Info(fmt.Sprintf("Server running, listening on %s...\n", c.WFE.ListenAddress))
srv := &http.Server{
Addr: c.WFE.ListenAddress,
Handler: httpMonitor.Handle(),
Handler: httpMonitor,
}
hd := &httpdown.HTTP{

View File

@ -205,7 +205,5 @@ func mux(stats statsd.Statter, responderPath string, source cfocsp.Source) http.
}
m.ServeHTTP(w, r)
})
mon := metrics.NewHTTPMonitor(stats, h, "OCSP")
return mon.Handle()
return metrics.NewHTTPMonitor(stats, h, "OCSP")
}

View File

@ -24,8 +24,8 @@ type HTTPMonitor struct {
}
// NewHTTPMonitor returns a new initialized HTTPMonitor
func NewHTTPMonitor(stats statsd.Statter, handler http.Handler, prefix string) HTTPMonitor {
return HTTPMonitor{
func NewHTTPMonitor(stats statsd.Statter, handler http.Handler, prefix string) *HTTPMonitor {
return &HTTPMonitor{
stats: stats,
handler: handler,
statsPrefix: prefix,
@ -33,13 +33,7 @@ func NewHTTPMonitor(stats statsd.Statter, handler http.Handler, prefix string) H
}
}
// Handle wraps handlers and records various metrics about requests to these handlers
// and sends them to StatsD
func (h *HTTPMonitor) Handle() http.Handler {
return http.HandlerFunc(h.watchAndServe)
}
func (h *HTTPMonitor) watchAndServe(w http.ResponseWriter, r *http.Request) {
func (h *HTTPMonitor) ServeHTTP(w http.ResponseWriter, r *http.Request) {
h.stats.Inc(fmt.Sprintf("%s.HTTP.Rate", h.statsPrefix), 1, 1.0)
inFlight := atomic.AddInt64(&h.connectionsInFlight, 1)
h.stats.Gauge(fmt.Sprintf("%s.HTTP.OpenConnections", h.statsPrefix), inFlight, 1.0)