GitHub user dosubot[bot] added a comment to the discussion: What is the default 
limit set for requests per minute/second

<!-- Answer -->
The default global rate limit in Superset 5.0.0 is set to 50 requests per 
second, controlled by the `RATELIMIT_APPLICATION` setting in `config.py`. This 
is enabled by default in production environments and is intended as a security 
measure to prevent DDOS attacks. You can adjust this limit by overriding the 
value in a custom `superset_config.py` file or by setting the appropriate 
environment variable. For example, increasing `RATELIMIT_APPLICATION` to a 
higher value will allow more requests per second and help avoid 429 errors 
during load testing or with higher user concurrency. See the relevant config 
and comments 
[here](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/config.py).

When a user accesses a dashboard, Superset typically sends one API request per 
chart (slice) on the dashboard, plus additional requests for metadata and 
annotations if present. For a dashboard with 10 charts, expect at least 10 
concurrent requests, and more if there are filters or annotation layers. 
Complex dashboards can quickly approach or exceed the default rate limit, 
especially with multiple users or automated load testing. See the chart loading 
logic 
[here](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/dashboard/actions/dashboardState.js)
 and 
[here](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset-frontend/src/components/Chart/chartAction.js).

For a medium-sized workload (for example, 10–50 users and dashboards with 10–20 
charts), you may need to set the rate limit significantly higher than the 
default, depending on your expected concurrency and dashboard complexity. It's 
best to monitor your actual request volume during peak usage and tune the rate 
limit accordingly. Always test changes in a staging environment before applying 
them to production.


<!-- Dosu Comment Footer -->
*To reply, just mention [@dosu](https://go.dosu.dev/dosubot).*

---
<sup>How did I do? 
[Good](https://app.dosu.dev/response-feedback/a065ab7d-c9bc-45cb-a2a2-a208cede45b8?feedback_type=great_response)
 | 
[Irrelevant](https://app.dosu.dev/response-feedback/a065ab7d-c9bc-45cb-a2a2-a208cede45b8?feedback_type=irrelevant_answer)
 | 
[Incorrect](https://app.dosu.dev/response-feedback/a065ab7d-c9bc-45cb-a2a2-a208cede45b8?feedback_type=incorrect_sources)
 | 
[Verbose](https://app.dosu.dev/response-feedback/a065ab7d-c9bc-45cb-a2a2-a208cede45b8?feedback_type=too_verbose)
 | 
[Hallucination](https://app.dosu.dev/response-feedback/a065ab7d-c9bc-45cb-a2a2-a208cede45b8?feedback_type=hallucination)
 | [Report 
🐛](https://app.dosu.dev/response-feedback/a065ab7d-c9bc-45cb-a2a2-a208cede45b8?feedback_type=bug_report)
 | 
[Other](https://app.dosu.dev/response-feedback/a065ab7d-c9bc-45cb-a2a2-a208cede45b8?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat
 with 
Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github)&
 nbsp;[![Join 
Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share
 on 
X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/35646)

GitHub link: 
https://github.com/apache/superset/discussions/35646#discussioncomment-14678716

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: 
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to