diff options
author | Vladimir Shushlin <v.shushlin@gmail.com> | 2021-12-08 15:28:02 +0300 |
---|---|---|
committer | Vladimir Shushlin <v.shushlin@gmail.com> | 2021-12-08 15:33:40 +0300 |
commit | 94f6f41485e4698f59eb1862729e454c1f5f302b (patch) | |
tree | 8753819da9a9f83fc7d8d0a90f9f53f7a81bd304 /app.go | |
parent | 1c632bf9d3003b44bdd3b101baf00dd210c3f8ee (diff) |
refactor: encapsulate lru cache in ratelimiter package
Diffstat (limited to 'app.go')
-rw-r--r-- | app.go | 11 |
1 files changed, 3 insertions, 8 deletions
@@ -31,7 +31,6 @@ import ( "gitlab.com/gitlab-org/gitlab-pages/internal/handlers" "gitlab.com/gitlab-org/gitlab-pages/internal/httperrors" "gitlab.com/gitlab-org/gitlab-pages/internal/logging" - "gitlab.com/gitlab-org/gitlab-pages/internal/lru" "gitlab.com/gitlab-org/gitlab-pages/internal/netutil" "gitlab.com/gitlab-org/gitlab-pages/internal/ratelimiter" "gitlab.com/gitlab-org/gitlab-pages/internal/rejectmethods" @@ -261,13 +260,9 @@ func (a *theApp) buildHandlerPipeline() (http.Handler, error) { if a.config.RateLimit.SourceIPLimitPerSecond > 0 { rl := ratelimiter.New( - lru.New("source_ip", - // based on an avg ~4,000 unique IPs per minute - // https://log.gprd.gitlab.net/app/lens#/edit/f7110d00-2013-11ec-8c8e-ed83b5469915?_g=h@e78830b - lru.WithMaxSize(5000), - lru.WithCachedEntriesMetric(metrics.RateLimitSourceIPCachedEntries), - lru.WithCachedRequestsMetric(metrics.RateLimitSourceIPCacheRequests), - ), + ratelimiter.WithSourceIPCacheMaxSize(ratelimiter.DefaultSourceIPCacheSize), + ratelimiter.WithSourceIPCachedEntriesMetric(metrics.RateLimitSourceIPCachedEntries), + ratelimiter.WithSourceIPCachedRequestsMetric(metrics.RateLimitSourceIPCacheRequests), ratelimiter.WithBlockedCountMetric(metrics.RateLimitSourceIPBlockedCount), ratelimiter.WithSourceIPLimitPerSecond(a.config.RateLimit.SourceIPLimitPerSecond), ratelimiter.WithSourceIPBurstSize(a.config.RateLimit.SourceIPBurst), |