You've already forked prometheus-fail2ban-exporter
This commit is contained in:
41
server/server.go
Normal file
41
server/server.go
Normal file
@ -0,0 +1,41 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter/cfg"
|
||||
"git.cryptic.systems/volker.raschek/prometheus-fail2ban-exporter/collector/textfile"
|
||||
)
|
||||
|
||||
func StartServer(
|
||||
appSettings *cfg.AppSettings,
|
||||
textFileCollector *textfile.Collector,
|
||||
) chan error {
|
||||
http.HandleFunc("/", AuthMiddleware(
|
||||
rootHtmlHandler,
|
||||
appSettings.AuthProvider,
|
||||
))
|
||||
http.HandleFunc(metricsPath, AuthMiddleware(
|
||||
func(w http.ResponseWriter, r *http.Request) {
|
||||
metricHandler(w, r, textFileCollector)
|
||||
},
|
||||
appSettings.AuthProvider,
|
||||
))
|
||||
log.Printf("metrics available at '%s'", metricsPath)
|
||||
|
||||
svrErr := make(chan error)
|
||||
go func() {
|
||||
httpServer := &http.Server{
|
||||
Addr: appSettings.MetricsAddress,
|
||||
ReadHeaderTimeout: 10 * time.Second,
|
||||
ReadTimeout: 10 * time.Second,
|
||||
WriteTimeout: 10 * time.Second,
|
||||
IdleTimeout: 30 * time.Second,
|
||||
}
|
||||
svrErr <- httpServer.ListenAndServe()
|
||||
}()
|
||||
log.Print("ready")
|
||||
return svrErr
|
||||
}
|
Reference in New Issue
Block a user