What’s the best way to configure the WebSocket keep-alive settings on a self-hosted BYOC Edge Gateway to prevent 502 Bad Gateway errors when running high-concurrency JMeter scripts?
I am running a load test from Singapore (ap-southeast-1) targeting a Genesys Cloud instance. The setup involves a custom BYOC Edge Gateway deployed on AWS ECS. The goal is to validate call capacity planning for a peak volume of 500 concurrent WebRTC sessions.
Using JMeter 5.6, I have configured a thread group with 500 users, a ramp-up period of 60 seconds, and a loop count of 10. Each thread initializes a WebSocket connection to the Edge Gateway endpoint. The initial handshake succeeds, but after approximately 30 seconds, about 15% of the connections drop with a 502 error. The JMeter log shows java.net.SocketException: Connection reset at the point of failure.
The Edge Gateway logs indicate that the connection to the Genesys Cloud platform API is timing out. I suspect this is related to the default WebSocket ping/pong interval or the idle timeout configuration on the gateway. The documentation Genesys Docs mentions a default idle timeout, but it is not clear if this can be overridden in the gateway-config.yaml file for the BYOC deployment.
I have tried increasing the idle_timeout in the JMeter WebSocket sampler to 60 seconds, but the issue persists. The platform API handles the load fine when tested directly without the Edge Gateway, so the bottleneck seems to be in the gateway’s connection management.
Has anyone successfully tuned the WebSocket keep-alive settings for a BYOC Edge Gateway in the Singapore region? What are the recommended values for ping_interval and idle_timeout to sustain 500+ concurrent sessions? Any JMeter config tips for handling WebSocket reconnections gracefully would also be appreciated. The current setup is causing significant test instability, making it difficult to gather accurate performance metrics for capacity planning.