package httpsr import ( "git.makemake.in/kzkzzzz/mycommon/mymetric" "github.com/gin-gonic/gin" "github.com/prometheus/client_golang/prometheus" "time" ) func QPSCollect(svcName string) gin.HandlerFunc { hs := mymetric.NewQPSHistogram(svcName, []string{ "svc", "method", "route", "from", }...) return func(ctx *gin.Context) { st := time.Now() ctx.Next() hs.With(prometheus.Labels{ "svc": svcName, "method": ctx.Request.Method, "route": ctx.Request.URL.Path, "from": "", }).Observe(float64(time.Since(st).Milliseconds())) } }