prometheus: add middleware function

Add middleware function to track request count
and measure the latency of compose requests.
This commit is contained in:
Gianluca Zuccarelli 2021-10-29 13:12:35 +01:00 committed by Tom Gundersen
parent dfa6a48f5d
commit f8199ec41d
3 changed files with 22 additions and 23 deletions

View file

@ -58,8 +58,7 @@ func (server *Server) Handler(path string) http.Handler {
handler := apiHandlers{
server: server,
}
RegisterHandlers(e.Group(path, server.IncRequests), &handler)
RegisterHandlers(e.Group(path, prometheus.MetricsMiddleware), &handler)
return e
}
@ -76,16 +75,6 @@ func (b binder) Bind(i interface{}, ctx echo.Context) error {
return nil
}
func (s *Server) IncRequests(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
prometheus.TotalRequests.Inc()
if strings.HasSuffix(c.Path(), "/compose") {
prometheus.ComposeRequests.Inc()
}
return next(c)
}
}
// Compose handles a new /compose POST request
func (h *apiHandlers) Compose(ctx echo.Context) error {
contentType := ctx.Request().Header["Content-Type"]

View file

@ -64,7 +64,7 @@ func (server *Server) Handler(path string) http.Handler {
handler := apiHandlers{
server: server,
}
RegisterHandlers(e.Group(path, server.IncRequests), &handler)
RegisterHandlers(e.Group(path, prometheus.MetricsMiddleware), &handler)
return e
}
@ -82,16 +82,6 @@ func (b binder) Bind(i interface{}, ctx echo.Context) error {
return nil
}
func (s *Server) IncRequests(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
prometheus.TotalRequests.Inc()
if strings.HasSuffix(c.Path(), "/compose") {
prometheus.ComposeRequests.Inc()
}
return next(c)
}
}
func (h *apiHandlers) GetOpenapi(ctx echo.Context) error {
spec, err := GetSwagger()
if err != nil {