mirror of
https://github.com/grafana/grafana.git
synced 2026-08-18 17:15:08 -05:00
Chore: replace macaron with web package (#40136)
* replace macaron with web package * add web.go
This commit is contained in:
@@ -3,10 +3,9 @@ package middleware
|
||||
import (
|
||||
"time"
|
||||
|
||||
"golang.org/x/time/rate"
|
||||
"gopkg.in/macaron.v1"
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/web"
|
||||
"golang.org/x/time/rate"
|
||||
)
|
||||
|
||||
type getTimeFn func() time.Time
|
||||
@@ -14,7 +13,7 @@ type getTimeFn func() time.Time
|
||||
// RateLimit is a very basic rate limiter.
|
||||
// Will allow average of "rps" requests per second over an extended period of time, with max "burst" requests at the same time.
|
||||
// getTime should return the current time. For non-testing purposes use time.Now
|
||||
func RateLimit(rps, burst int, getTime getTimeFn) macaron.Handler {
|
||||
func RateLimit(rps, burst int, getTime getTimeFn) web.Handler {
|
||||
l := rate.NewLimiter(rate.Limit(rps), burst)
|
||||
return func(c *models.ReqContext) {
|
||||
if !l.AllowN(getTime(), 1) {
|
||||
|
||||
Reference in New Issue
Block a user