Add handler for version information

This commit is contained in:
Robert Jacob 2020-06-21 15:26:53 +02:00
parent ee49657c75
commit 87960917f6
2 changed files with 34 additions and 0 deletions

View file

@ -41,6 +41,7 @@ func main() {
prometheus.MustRegister(metrics) prometheus.MustRegister(metrics)
http.Handle("/metrics", promhttp.HandlerFor(prometheus.DefaultGatherer, promhttp.HandlerOpts{})) http.Handle("/metrics", promhttp.HandlerFor(prometheus.DefaultGatherer, promhttp.HandlerOpts{}))
http.Handle("/version", versionHandler(log))
http.Handle("/", http.RedirectHandler("/metrics", http.StatusFound)) http.Handle("/", http.RedirectHandler("/metrics", http.StatusFound))
log.Infof("Listen on %s...", cfg.Addr) log.Infof("Listen on %s...", cfg.Addr)

33
version.go Normal file
View file

@ -0,0 +1,33 @@
package main
import (
"encoding/json"
"net/http"
"github.com/sirupsen/logrus"
)
var (
// Version contains the version as set during the build.
Version = ""
// GitCommit contains the git commit hash set during the build.
GitCommit = ""
)
func versionHandler(log logrus.FieldLogger) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
info := struct {
Version string `json:"version"`
Commit string `json:"commit"`
}{
Version: Version,
Commit: GitCommit,
}
w.Header().Add("Content-Type", "application/json")
if err := json.NewEncoder(w).Encode(info); err != nil {
log.Errorf("Error encoding version info: %s", err)
}
})
}