diff --git a/main.go b/main.go index 38c019e99..ead71ca08 100644 --- a/main.go +++ b/main.go @@ -14,19 +14,15 @@ package main import ( - "code.google.com/p/gorest" "flag" - "github.com/prometheus/client_golang" - "github.com/prometheus/prometheus/api" "github.com/prometheus/prometheus/config" "github.com/prometheus/prometheus/retrieval" "github.com/prometheus/prometheus/retrieval/format" "github.com/prometheus/prometheus/rules" "github.com/prometheus/prometheus/rules/ast" "github.com/prometheus/prometheus/storage/metric/leveldb" + "github.com/prometheus/prometheus/web" "log" - "net/http" - _ "net/http/pprof" "os" "os/signal" ) @@ -77,15 +73,7 @@ func main() { log.Fatalf("Error loading rule files: %v", err) } - go func() { - gorest.RegisterService(api.NewMetricsService(persistence)) - exporter := registry.DefaultRegistry.YieldExporter() - - http.Handle("/", gorest.Handle()) - http.Handle("/metrics.json", exporter) - http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) - http.ListenAndServe(":9090", nil) - }() + web.StartServing(persistence) for { select { diff --git a/api/api.go b/web/api/api.go similarity index 100% rename from api/api.go rename to web/api/api.go diff --git a/api/query.go b/web/api/query.go similarity index 100% rename from api/query.go rename to web/api/query.go diff --git a/static/css/prometheus.css b/web/static/css/prometheus.css similarity index 100% rename from static/css/prometheus.css rename to web/static/css/prometheus.css diff --git a/static/graph.html b/web/static/graph.html similarity index 100% rename from static/graph.html rename to web/static/graph.html diff --git a/static/img/ajax-loader.gif b/web/static/img/ajax-loader.gif similarity index 100% rename from static/img/ajax-loader.gif rename to web/static/img/ajax-loader.gif diff --git a/static/index.html b/web/static/index.html similarity index 100% rename from static/index.html rename to web/static/index.html diff --git a/static/js/exprBrowser.js b/web/static/js/exprBrowser.js similarity index 100% rename from static/js/exprBrowser.js rename to web/static/js/exprBrowser.js diff --git a/static/js/graph.js b/web/static/js/graph.js similarity index 100% rename from static/js/graph.js rename to web/static/js/graph.js diff --git a/static/vendor/js/handlebars.js b/web/static/vendor/js/handlebars.js similarity index 100% rename from static/vendor/js/handlebars.js rename to web/static/vendor/js/handlebars.js diff --git a/web/web.go b/web/web.go new file mode 100644 index 000000000..b26f7e71b --- /dev/null +++ b/web/web.go @@ -0,0 +1,40 @@ +// Copyright 2013 Prometheus Team +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package web + +import ( + "code.google.com/p/gorest" + "flag" + "github.com/prometheus/client_golang" + "github.com/prometheus/prometheus/storage/metric" + "github.com/prometheus/prometheus/web/api" + "net/http" + _ "net/http/pprof" +) + +// Commandline flags. +var ( + listenAddress = flag.String("listenAddress", ":9090", "Address to listen on for web interface.") +) + +func StartServing(persistence metric.MetricPersistence) { + gorest.RegisterService(api.NewMetricsService(persistence)) + exporter := registry.DefaultRegistry.YieldExporter() + + http.Handle("/", gorest.Handle()) + http.Handle("/metrics.json", exporter) + http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("web/static")))) + + go http.ListenAndServe(*listenAddress, nil) +}