// RegisterWeb registers handlers to serve files for the web interface. func RegisterWeb(r *route.Router, reloadCh chan<- struct{}) { ihf := prometheus.InstrumentHandlerFunc r.Get("/app/*filepath", ihf("app_files", func(w http.ResponseWriter, req *http.Request) { fp := route.Param(route.Context(req), "filepath") serveAsset(w, req, filepath.Join("ui/app", fp)) }, )) r.Get("/lib/*filepath", ihf("lib_files", func(w http.ResponseWriter, req *http.Request) { fp := route.Param(route.Context(req), "filepath") serveAsset(w, req, filepath.Join("ui/lib", fp)) }, )) r.Get("/metrics", prometheus.Handler().ServeHTTP) r.Get("/", ihf("index", func(w http.ResponseWriter, req *http.Request) { serveAsset(w, req, "ui/app/index.html") })) r.Post("/-/reload", func(w http.ResponseWriter, req *http.Request) { w.Write([]byte("Reloading configuration file...")) reloadCh <- struct{}{} }) r.Get("/debug/*subpath", http.DefaultServeMux.ServeHTTP) r.Post("/debug/*subpath", http.DefaultServeMux.ServeHTTP) }
// Register registers the API handlers under their correct routes // in the given router. func (api *API) Register(r *route.Router) { ihf := func(name string, f http.HandlerFunc) http.HandlerFunc { return prometheus.InstrumentHandlerFunc(name, func(w http.ResponseWriter, r *http.Request) { setCORS(w) f(w, r) }) } r.Options("/*path", ihf("options", func(w http.ResponseWriter, r *http.Request) {})) // Register legacy forwarder for alert pushing. r.Post("/alerts", ihf("legacy_add_alerts", api.legacyAddAlerts)) // Register actual API. r = r.WithPrefix("/v1") r.Get("/status", ihf("status", api.status)) r.Get("/alerts/groups", ihf("alert_groups", api.alertGroups)) r.Get("/alerts", ihf("list_alerts", api.listAlerts)) r.Post("/alerts", ihf("add_alerts", api.addAlerts)) r.Get("/silences", ihf("list_silences", api.listSilences)) r.Post("/silences", ihf("add_silence", api.addSilence)) r.Get("/silence/:sid", ihf("get_silence", api.getSilence)) r.Del("/silence/:sid", ihf("del_silence", api.delSilence)) }
// Register regieters the API handlers under their correct routes // in the given router. func (api *API) Register(r *route.Router) { // Register legacy forwarder for alert pushing. r.Post("/alerts", api.legacyAddAlerts) // Register actual API. r = r.WithPrefix("/v1") r.Get("/status", api.status) r.Get("/alerts/groups", api.alertGroups) r.Get("/alerts", api.listAlerts) r.Post("/alerts", api.addAlerts) r.Get("/silences", api.listSilences) r.Post("/silences", api.addSilence) r.Get("/silence/:sid", api.getSilence) r.Del("/silence/:sid", api.delSilence) }
// Register registers the API handlers under their correct routes // in the given router. func (api *API) Register(r *route.Router) { ihf := prometheus.InstrumentHandlerFunc // Register legacy forwarder for alert pushing. r.Post("/alerts", ihf("legacy_add_alerts", api.legacyAddAlerts)) // Register actual API. r = r.WithPrefix("/v1") r.Get("/status", ihf("status", api.status)) r.Get("/alerts/groups", ihf("alert_groups", api.alertGroups)) r.Get("/alerts", ihf("list_alerts", api.listAlerts)) r.Post("/alerts", ihf("add_alerts", api.addAlerts)) r.Get("/silences", ihf("list_silences", api.listSilences)) r.Post("/silences", ihf("add_silence", api.addSilence)) r.Get("/silence/:sid", ihf("get_silence", api.getSilence)) r.Del("/silence/:sid", ihf("del_silence", api.delSilence)) }