From 9ec5e6c40b0c0e4a8009acbdd5dfea8c0e60cfcd Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 18 Nov 2020 04:50:06 +0800 Subject: [PATCH] Move metrics from macaron to chi (#13601) --- routers/metrics.go | 14 +++++++------- routers/routes/chi.go | 15 +++++++++++++++ routers/routes/macaron.go | 15 --------------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/routers/metrics.go b/routers/metrics.go index f2381c2745..db2fb8de44 100644 --- a/routers/metrics.go +++ b/routers/metrics.go @@ -6,29 +6,29 @@ package routers import ( "crypto/subtle" + "net/http" - "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/setting" "github.com/prometheus/client_golang/prometheus/promhttp" ) // Metrics validate auth token and render prometheus metrics -func Metrics(ctx *context.Context) { +func Metrics(resp http.ResponseWriter, req *http.Request) { if setting.Metrics.Token == "" { - promhttp.Handler().ServeHTTP(ctx.Resp, ctx.Req.Request) + promhttp.Handler().ServeHTTP(resp, req) return } - header := ctx.Req.Header.Get("Authorization") + header := req.Header.Get("Authorization") if header == "" { - ctx.Error(401) + http.Error(resp, "", 401) return } got := []byte(header) want := []byte("Bearer " + setting.Metrics.Token) if subtle.ConstantTimeCompare(got, want) != 1 { - ctx.Error(401) + http.Error(resp, "", 401) return } - promhttp.Handler().ServeHTTP(ctx.Resp, ctx.Req.Request) + promhttp.Handler().ServeHTTP(resp, req) } diff --git a/routers/routes/chi.go b/routers/routes/chi.go index 1165040778..4575f1ea93 100644 --- a/routers/routes/chi.go +++ b/routers/routes/chi.go @@ -17,12 +17,15 @@ import ( "time" "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/metrics" "code.gitea.io/gitea/modules/public" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/storage" + "code.gitea.io/gitea/routers" "github.com/go-chi/chi" "github.com/go-chi/chi/middleware" + "github.com/prometheus/client_golang/prometheus" ) type routerLoggerOptions struct { @@ -251,6 +254,18 @@ func NormalRoutes() http.Handler { }) } + r.Get("/apple-touch-icon.png", func(w http.ResponseWriter, req *http.Request) { + http.Redirect(w, req, path.Join(setting.StaticURLPrefix, "img/apple-touch-icon.png"), 301) + }) + + // prometheus metrics endpoint + if setting.Metrics.Enabled { + c := metrics.NewCollector() + prometheus.MustRegister(c) + + r.Get("/metrics", routers.Metrics) + } + return r } diff --git a/routers/routes/macaron.go b/routers/routes/macaron.go index 7178ead679..1f0b21a74d 100644 --- a/routers/routes/macaron.go +++ b/routers/routes/macaron.go @@ -6,14 +6,12 @@ package routes import ( "encoding/gob" - "path" "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/auth" "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/lfs" "code.gitea.io/gitea/modules/log" - "code.gitea.io/gitea/modules/metrics" "code.gitea.io/gitea/modules/options" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/templates" @@ -43,7 +41,6 @@ import ( "gitea.com/macaron/macaron" "gitea.com/macaron/session" "gitea.com/macaron/toolbox" - "github.com/prometheus/client_golang/prometheus" "github.com/tstranex/u2f" ) @@ -978,23 +975,11 @@ func RegisterMacaronRoutes(m *macaron.Macaron) { private.RegisterRoutes(m) }) - m.Get("/apple-touch-icon.png", func(ctx *context.Context) { - ctx.Redirect(path.Join(setting.StaticURLPrefix, "img/apple-touch-icon.png"), 301) - }) - // Progressive Web App m.Get("/manifest.json", templates.JSONRenderer(), func(ctx *context.Context) { ctx.HTML(200, "pwa/manifest_json") }) - // prometheus metrics endpoint - if setting.Metrics.Enabled { - c := metrics.NewCollector() - prometheus.MustRegister(c) - - m.Get("/metrics", routers.Metrics) - } - // Not found handler. m.NotFound(routers.NotFound) }