diff --git a/chasquid.go b/chasquid.go
index b3a1c47..bbbccff 100644
--- a/chasquid.go
+++ b/chasquid.go
@@ -9,7 +9,6 @@ import (
"expvar"
"flag"
"fmt"
- "html/template"
"io/ioutil"
"math/rand"
"net"
@@ -30,9 +29,6 @@ import (
"blitiri.com.ar/go/chasquid/internal/userdb"
"blitiri.com.ar/go/log"
"blitiri.com.ar/go/systemd"
-
- "net/http"
- _ "net/http/pprof"
)
// Command-line flags.
@@ -322,94 +318,3 @@ func parseVersionInfo() {
sourceDateVar.Set(sourceDate.Format("2006-01-02 15:04:05 -0700"))
sourceDateTsVar.Set(sdts)
}
-
-func launchMonitoringServer(addr string) {
- log.Infof("Monitoring HTTP server listening on %s", addr)
-
- indexData := struct {
- Version string
- SourceDate time.Time
- StartTime time.Time
- }{
- Version: version,
- SourceDate: sourceDate,
- StartTime: time.Now(),
- }
-
- http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
- if r.URL.Path != "/" {
- http.NotFound(w, r)
- return
- }
- if err := monitoringHTMLIndex.Execute(w, indexData); err != nil {
- log.Infof("monitoring handler error: %v", err)
- }
- })
-
- flags := dumpFlags()
- http.HandleFunc("/debug/flags", func(w http.ResponseWriter, r *http.Request) {
- _, _ = w.Write([]byte(flags))
- })
-
- go http.ListenAndServe(addr, nil)
-}
-
-// Static index for the monitoring website.
-var monitoringHTMLIndex = template.Must(template.New("index").Funcs(
- template.FuncMap{"since": time.Since}).Parse(
- `
-
-
- chasquid monitoring
-
-
- chasquid monitoring
-
- chasquid {{.Version}}
- source date {{.SourceDate.Format "2006-01-02 15:04:05 -0700"}}
-
- started {{.StartTime.Format "Mon, 2006-01-02 15:04:05 -0700"}}
- up since {{.StartTime | since}}
-
-
-
-
-`))
-
-// dumpFlags to a string, for troubleshooting purposes.
-func dumpFlags() string {
- s := ""
- visited := make(map[string]bool)
-
- // Print set flags first, then the rest.
- flag.Visit(func(f *flag.Flag) {
- s += fmt.Sprintf("-%s=%s\n", f.Name, f.Value.String())
- visited[f.Name] = true
- })
-
- s += "\n"
- flag.VisitAll(func(f *flag.Flag) {
- if !visited[f.Name] {
- s += fmt.Sprintf("-%s=%s\n", f.Name, f.Value.String())
- }
- })
-
- return s
-}
diff --git a/monitoring.go b/monitoring.go
new file mode 100644
index 0000000..f91b54c
--- /dev/null
+++ b/monitoring.go
@@ -0,0 +1,105 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "html/template"
+ "net/http"
+ "time"
+
+ "blitiri.com.ar/go/log"
+
+ // To enable live profiling in the monitoring server.
+ _ "net/http/pprof"
+)
+
+func launchMonitoringServer(addr string) {
+ log.Infof("Monitoring HTTP server listening on %s", addr)
+
+ indexData := struct {
+ Version string
+ SourceDate time.Time
+ StartTime time.Time
+ }{
+ Version: version,
+ SourceDate: sourceDate,
+ StartTime: time.Now(),
+ }
+
+ http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+ if r.URL.Path != "/" {
+ http.NotFound(w, r)
+ return
+ }
+ if err := monitoringHTMLIndex.Execute(w, indexData); err != nil {
+ log.Infof("monitoring handler error: %v", err)
+ }
+ })
+
+ flags := dumpFlags()
+ http.HandleFunc("/debug/flags", func(w http.ResponseWriter, r *http.Request) {
+ _, _ = w.Write([]byte(flags))
+ })
+
+ go http.ListenAndServe(addr, nil)
+}
+
+// Static index for the monitoring website.
+var monitoringHTMLIndex = template.Must(template.New("index").Funcs(
+ template.FuncMap{"since": time.Since}).Parse(
+ `
+
+
+ chasquid monitoring
+
+
+ chasquid monitoring
+
+ chasquid {{.Version}}
+ source date {{.SourceDate.Format "2006-01-02 15:04:05 -0700"}}
+
+ started {{.StartTime.Format "Mon, 2006-01-02 15:04:05 -0700"}}
+ up since {{.StartTime | since}}
+
+
+
+
+`))
+
+// dumpFlags to a string, for troubleshooting purposes.
+func dumpFlags() string {
+ s := ""
+ visited := make(map[string]bool)
+
+ // Print set flags first, then the rest.
+ flag.Visit(func(f *flag.Flag) {
+ s += fmt.Sprintf("-%s=%s\n", f.Name, f.Value.String())
+ visited[f.Name] = true
+ })
+
+ s += "\n"
+ flag.VisitAll(func(f *flag.Flag) {
+ if !visited[f.Name] {
+ s += fmt.Sprintf("-%s=%s\n", f.Name, f.Value.String())
+ }
+ })
+
+ return s
+}