diff --git a/main.go b/main.go index 25300baa..f6065b64 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,7 @@ import ( "git.icinga.com/icingadb/icingadb-main/config" "git.icinga.com/icingadb/icingadb-main/configobject/host" "git.icinga.com/icingadb/icingadb-main/configobject/sync" + "git.icinga.com/icingadb/icingadb-main/prometheus" "git.icinga.com/icingadb/icingadb-main/supervisor" log "github.com/sirupsen/logrus" ) @@ -60,6 +61,8 @@ func main() { }) }() + go prometheus.HandleHttp("localhost:8080", super.ChErr) + for { select { case err := <-super.ChErr: diff --git a/prometheus/prometheus.go b/prometheus/prometheus.go new file mode 100644 index 00000000..dd924673 --- /dev/null +++ b/prometheus/prometheus.go @@ -0,0 +1,13 @@ +package prometheus + +import ( + "github.com/prometheus/client_golang/prometheus/promhttp" + log "github.com/sirupsen/logrus" + "net/http" +) + +func HandleHttp(addr string, chErr chan error) { + http.Handle("/metrics", promhttp.Handler()) + log.Infof("Serving metrics at http://%s/metrics", addr) + chErr <- http.ListenAndServe(addr, nil) +}