Rate limiting management for the load balancer.
Provides per-source IP and per-backend rate limiting using a token bucket algorithm. Rate limits are configured via BPF maps and enforced in the XDP program.
Token bucket parameters:
Rate limiting is disabled by default (rate = 0).
Rate limiting management for the load balancer. Provides per-source IP and per-backend rate limiting using a token bucket algorithm. Rate limits are configured via BPF maps and enforced in the XDP program. Token bucket parameters: - rate: tokens added per second (requests/sec) - burst: maximum tokens (handles traffic spikes) Rate limiting is disabled by default (rate = 0).
(backend-rate-limit-enabled?)Check if backend rate limiting is enabled.
Check if backend rate limiting is enabled.
(clear-rate-limits!)Disable all rate limiting.
Disable all rate limiting.
(configure-from-settings! settings)Configure rate limiting from settings map.
settings: Map with optional :rate-limits key containing: {:per-source {:requests-per-sec N :burst M} :per-backend {:requests-per-sec N :burst M}}
Configure rate limiting from settings map.
settings: Map with optional :rate-limits key containing:
{:per-source {:requests-per-sec N :burst M}
:per-backend {:requests-per-sec N :burst M}}(disable-backend-rate-limit!)Disable per-backend rate limiting.
Disable per-backend rate limiting.
(disable-source-rate-limit!)Disable per-source rate limiting.
Disable per-source rate limiting.
(get-backend-rate-limit)Get current backend rate limit configuration. Returns {:rate N :burst M} or nil if disabled.
Get current backend rate limit configuration.
Returns {:rate N :burst M} or nil if disabled.(get-rate-limit-config)Get all rate limit configuration. Returns {:per-source {...} :per-backend {...}} or nils for disabled limits.
Get all rate limit configuration.
Returns {:per-source {...} :per-backend {...}} or nils for disabled limits.(get-source-rate-limit)Get current source rate limit configuration. Returns {:rate N :burst M} or nil if disabled.
Get current source rate limit configuration.
Returns {:rate N :burst M} or nil if disabled.(init! rate-limit-config-map rate-limit-src-map rate-limit-backend-map)Initialize rate limiting with the given BPF maps.
rate-limit-config-map: Array map for rate limit configuration rate-limit-src-map: LRU map for per-source buckets rate-limit-backend-map: LRU map for per-backend buckets
Initialize rate limiting with the given BPF maps. rate-limit-config-map: Array map for rate limit configuration rate-limit-src-map: LRU map for per-source buckets rate-limit-backend-map: LRU map for per-backend buckets
(initialized?)Check if rate limiting is initialized.
Check if rate limiting is initialized.
(print-rate-limit-status)Print current rate limit status.
Print current rate limit status.
(rate-limiting-enabled?)Check if any rate limiting is enabled.
Check if any rate limiting is enabled.
(set-backend-rate-limit! rate & {:keys [burst]})Set per-backend rate limit.
rate: requests per second allowed to each backend burst: maximum burst size (defaults to 2x rate)
Returns true if successful.
Set per-backend rate limit. rate: requests per second allowed to each backend burst: maximum burst size (defaults to 2x rate) Returns true if successful.
(set-source-rate-limit! rate & {:keys [burst]})Set per-source IP rate limit.
rate: requests per second allowed from each source IP burst: maximum burst size (defaults to 2x rate)
Returns true if successful.
Set per-source IP rate limit. rate: requests per second allowed from each source IP burst: maximum burst size (defaults to 2x rate) Returns true if successful.
(shutdown!)Shutdown rate limiting and clear state.
Shutdown rate limiting and clear state.
(source-rate-limit-enabled?)Check if source rate limiting is enabled.
Check if source rate limiting is enabled.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |