Liking cljdoc? Tell your friends :D

lb.rate-limit

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).

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).
raw docstring

backend-rate-limit-enabled?clj

(backend-rate-limit-enabled?)

Check if backend rate limiting is enabled.

Check if backend rate limiting is enabled.
sourceraw docstring

clear-rate-limits!clj

(clear-rate-limits!)

Disable all rate limiting.

Disable all rate limiting.
sourceraw docstring

configure-from-settings!clj

(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}}
sourceraw docstring

disable-backend-rate-limit!clj

(disable-backend-rate-limit!)

Disable per-backend rate limiting.

Disable per-backend rate limiting.
sourceraw docstring

disable-source-rate-limit!clj

(disable-source-rate-limit!)

Disable per-source rate limiting.

Disable per-source rate limiting.
sourceraw docstring

get-backend-rate-limitclj

(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.
sourceraw docstring

get-rate-limit-configclj

(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.
sourceraw docstring

get-source-rate-limitclj

(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.
sourceraw docstring

init!clj

(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
sourceraw docstring

initialized?clj

(initialized?)

Check if rate limiting is initialized.

Check if rate limiting is initialized.
sourceraw docstring

(print-rate-limit-status)

Print current rate limit status.

Print current rate limit status.
sourceraw docstring

rate-limit-stateclj

source

rate-limiting-enabled?clj

(rate-limiting-enabled?)

Check if any rate limiting is enabled.

Check if any rate limiting is enabled.
sourceraw docstring

set-backend-rate-limit!clj

(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.
sourceraw docstring

set-source-rate-limit!clj

(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.
sourceraw docstring

shutdown!clj

(shutdown!)

Shutdown rate limiting and clear state.

Shutdown rate limiting and clear state.
sourceraw docstring

source-rate-limit-enabled?clj

(source-rate-limit-enabled?)

Check if source rate limiting is enabled.

Check if source rate limiting is enabled.
sourceraw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close