1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2025-12-17 14:37:02 +00:00

monitoring: Add a config dump handler

This patch adds a handler to the monitoring HTTP server which dumps
the parsed config, so it can easily be reviewed for troubleshooting.
This commit is contained in:
Alberto Bertogli
2020-07-08 23:08:37 +01:00
parent 33446fd565
commit a6a20fb6e0
2 changed files with 11 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ import (
"blitiri.com.ar/go/chasquid/internal/config" "blitiri.com.ar/go/chasquid/internal/config"
"blitiri.com.ar/go/log" "blitiri.com.ar/go/log"
"google.golang.org/protobuf/encoding/prototext"
// To enable live profiling in the monitoring server. // To enable live profiling in the monitoring server.
_ "net/http/pprof" _ "net/http/pprof"
@@ -45,6 +46,7 @@ func launchMonitoringServer(conf *config.Config) {
}) })
http.HandleFunc("/debug/flags", debugFlagsHandler) http.HandleFunc("/debug/flags", debugFlagsHandler)
http.HandleFunc("/debug/config", debugConfigHandler(conf))
go http.ListenAndServe(conf.MonitoringAddress, nil) go http.ListenAndServe(conf.MonitoringAddress, nil)
} }
@@ -94,6 +96,7 @@ os hostname <i>{{.Hostname}}</i><p>
<li>execution <li>execution
<ul> <ul>
<li><a href="/debug/flags">flags</a> <li><a href="/debug/flags">flags</a>
<li><a href="/debug/config">config</a>
<li><a href="/debug/pprof/cmdline">command line</a> <li><a href="/debug/pprof/cmdline">command line</a>
</ul> </ul>
<li><a href="/debug/pprof">pprof</a> <li><a href="/debug/pprof">pprof</a>
@@ -124,6 +127,12 @@ func debugFlagsHandler(w http.ResponseWriter, r *http.Request) {
}) })
} }
func debugConfigHandler(conf *config.Config) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
_, _ = w.Write([]byte(prototext.Format(conf)))
}
}
func roundDuration(d time.Duration) time.Duration { func roundDuration(d time.Duration) time.Duration {
return d.Round(time.Second) return d.Round(time.Second)
} }

View File

@@ -40,6 +40,8 @@ wget -q -o /dev/null -O .data-A/dbg-flags http://localhost:1099/debug/flags \
|| fail "failed to fetch /debug/flags" || fail "failed to fetch /debug/flags"
wget -q -o /dev/null -O .data-A/dbg-queue http://localhost:1099/debug/queue \ wget -q -o /dev/null -O .data-A/dbg-queue http://localhost:1099/debug/queue \
|| fail "failed to fetch /debug/queue" || fail "failed to fetch /debug/queue"
wget -q -o /dev/null -O .data-A/dbg-config http://localhost:1099/debug/config \
|| fail "failed to fetch /debug/config"
wget -q -o /dev/null -O .data-A/dbg-root http://localhost:1099/404 \ wget -q -o /dev/null -O .data-A/dbg-root http://localhost:1099/404 \
&& fail "fetch /404 worked, should have failed" && fail "fetch /404 worked, should have failed"