From 0cbd03ccf962347cf86059686fa2ffa3578cb662 Mon Sep 17 00:00:00 2001 From: Julius Volz Date: Fri, 8 Feb 2013 14:49:55 +0100 Subject: [PATCH 1/2] Move web-related code/resources to a subdirectory. --- main.go | 16 ++------- {api => web/api}/api.go | 0 {api => web/api}/query.go | 0 {static => web/static}/css/prometheus.css | 0 {static => web/static}/graph.html | 0 {static => web/static}/img/ajax-loader.gif | Bin {static => web/static}/index.html | 0 {static => web/static}/js/exprBrowser.js | 0 {static => web/static}/js/graph.js | 0 .../static}/vendor/js/handlebars.js | 0 web/web.go | 34 ++++++++++++++++++ 11 files changed, 36 insertions(+), 14 deletions(-) rename {api => web/api}/api.go (100%) rename {api => web/api}/query.go (100%) rename {static => web/static}/css/prometheus.css (100%) rename {static => web/static}/graph.html (100%) rename {static => web/static}/img/ajax-loader.gif (100%) rename {static => web/static}/index.html (100%) rename {static => web/static}/js/exprBrowser.js (100%) rename {static => web/static}/js/graph.js (100%) rename {static => web/static}/vendor/js/handlebars.js (100%) create mode 100644 web/web.go 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..0befd55e9 --- /dev/null +++ b/web/web.go @@ -0,0 +1,34 @@ +// 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" + "github.com/prometheus/client_golang" + "github.com/prometheus/prometheus/storage/metric" + "github.com/prometheus/prometheus/web/api" + "net/http" + _ "net/http/pprof" +) + +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(":9090", nil) +} From 2859227fdbdefb96917028e75b25edaa65e6060c Mon Sep 17 00:00:00 2001 From: Julius Volz Date: Fri, 8 Feb 2013 15:38:50 +0100 Subject: [PATCH 2/2] Make HTTP listen address a flag. --- web/web.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/web/web.go b/web/web.go index 0befd55e9..b26f7e71b 100644 --- a/web/web.go +++ b/web/web.go @@ -15,6 +15,7 @@ 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" @@ -22,6 +23,11 @@ import ( _ "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() @@ -30,5 +36,5 @@ func StartServing(persistence metric.MetricPersistence) { http.Handle("/metrics.json", exporter) http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("web/static")))) - go http.ListenAndServe(":9090", nil) + go http.ListenAndServe(*listenAddress, nil) }