diff options
author | Vladimir Shushlin <v.shushlin@gmail.com> | 2021-12-08 18:50:25 +0300 |
---|---|---|
committer | Vladimir Shushlin <v.shushlin@gmail.com> | 2021-12-13 15:46:18 +0300 |
commit | 197d53c3f8c20942f76f111cc7bf6aac04c0dad4 (patch) | |
tree | dce0eda3e778f18229114607f45bec4726ce576c /app.go | |
parent | 94f6f41485e4698f59eb1862729e454c1f5f302b (diff) |
refactor: abstract ratelimiter package
We want to add domain-based ratelimiter.
The logic will be identical, but we'll use host instead
of IP address.
Diffstat (limited to 'app.go')
-rw-r--r-- | app.go | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -260,15 +260,16 @@ func (a *theApp) buildHandlerPipeline() (http.Handler, error) { if a.config.RateLimit.SourceIPLimitPerSecond > 0 { rl := ratelimiter.New( - ratelimiter.WithSourceIPCacheMaxSize(ratelimiter.DefaultSourceIPCacheSize), - ratelimiter.WithSourceIPCachedEntriesMetric(metrics.RateLimitSourceIPCachedEntries), - ratelimiter.WithSourceIPCachedRequestsMetric(metrics.RateLimitSourceIPCacheRequests), + "source_ip", + ratelimiter.WithCacheMaxSize(ratelimiter.DefaultSourceIPCacheSize), + ratelimiter.WithCachedEntriesMetric(metrics.RateLimitSourceIPCachedEntries), + ratelimiter.WithCachedRequestsMetric(metrics.RateLimitSourceIPCacheRequests), ratelimiter.WithBlockedCountMetric(metrics.RateLimitSourceIPBlockedCount), - ratelimiter.WithSourceIPLimitPerSecond(a.config.RateLimit.SourceIPLimitPerSecond), - ratelimiter.WithSourceIPBurstSize(a.config.RateLimit.SourceIPBurst), + ratelimiter.WithLimitPerSecond(a.config.RateLimit.SourceIPLimitPerSecond), + ratelimiter.WithBurstSize(a.config.RateLimit.SourceIPBurst), ) - handler = rl.SourceIPLimiter(handler) + handler = rl.Middleware(handler) } // Health Check |