Having some config trouble here… i am running a stress test to see how the platform handles bot analytics retrieval under heavy load. the scenario involves 1000 jmeter threads simulating active bot sessions. each thread makes a get request to /api/v2/analytics/conversations/details every 5 seconds to pull real-time sentiment and intent data.
after about 3 minutes, the response time spikes and i start getting 429 too many requests errors. the error payload looks like this:
{
"message": "too many requests",
"code": "tooManyRequests",
"status": 429,
"details": "request limit exceeded for resource /api/v2/analytics/conversations/details"
}
i checked the docs and it says the limit is 200 calls per minute for this endpoint. with 1000 threads hitting it every 5 seconds, that is 12,000 calls per minute. so obviously i am hitting the wall. but here is the thing. i tried adding a delay using a constant timer in jmeter to space out the requests. i set it to 3000ms. but i still get the 429s.
i also tried using the x-gb-client-id header to see if that helps with routing, but no luck. the tokens are valid and have the correct analytics:report:read scope. i verified this by running a single thread test and it works fine.
is there a way to batch these requests or use a websocket stream for analytics instead of polling? i see there is a websocket endpoint for events, but i am not sure if it includes the detailed analytics data i need. or is there a different endpoint that has higher throughput limits for bulk data retrieval?
my jmeter config uses http sampler with keep-alive enabled. i am using the latest genesys cloud java sdk for authentication. any ideas on how to structure this test without hitting the rate limit? i need to validate the system can handle this volume without dropping data.