NautheraRateLimitingHigh
Docs version v1 (main)Nauthera is pre-1.0, in a design-partner program
More than 10% of public requests are refused with 429.
Meaning
Over ten minutes, more than the threshold (10%) of public requests were answered 429,
for fifteen minutes. The per-IP limit (rate_limit.rps, 50 a second, burst 100 with
the memory backend) and the brute-force throttles both answer 429. A flood from a few
addresses, a client retrying in a loop, or every request appearing to come from one
address (a proxy the server does not trust) are the usual causes.
Impact
Callers over the limit are refused until their budget refills, with Retry-After. If
the cause is an untrusted proxy, legitimate users and relying parties are throttled
together and sign-ins fail broadly. If it is a flood, the limit is doing its job and
other callers are unaffected.
Diagnosis
- Which routes:
sum by (route) (rate(nauthera_.http_ requests_ total\{job="<name>", code="429"\}[10m])) - Which callers: the
http_requestlog lines withstatus429 carryclient_ip,client_kindandclient_agent:kubectl -n <ns> logs deploy/.<name> | jq 'select(. msg=="http_ request" and . status==429) | . client_ ip' | sort | uniq -c | sort -rn | head - One address for everyone: the server logs at startup when the client address is the socket peer; platform administrators also see a warning on the dashboard's Overview when requests seem to arrive through an untrusted proxy.
- With the
redisbackend,nauthera_is 1 while a replica limits on its own counter.rate_ limit_ degraded{job="<name>"}
Mitigation
- Untrusted proxy: set
security.client_ip.modeand list the proxy's addresses insecurity.trusted_proxies(see the client address). - A flood: block it at the ingress or WAF.
- A client retrying in a loop: contact its owner; the
client_agentand the audit recordsauth.help identify it.rate_ limit. triggered - Legitimate traffic above the limit: raise
config.rate_limit.rpsandburst.
Escalation
Informational. Escalate to the identity platform owner when legitimate users are throttled, and to the security team when it is a flood that the edge cannot absorb.
Alert runbooks · Generated from internal/ and operator/ in nauthera-server.