There is an refresh PR 3819 for this feature which tracks connections per upstream server. The original PR was an in place refresh to fix bugs and improve performance which we have been running in Oath production. I've been requested to make it a more thorough overhaul. To this end I'm working changing the configuration set up. The new values would be
proxy.config.http.per_server.max_connections INT - maximum # of connections allowed for an upstream. Default 0 (disabled). Previously proxy.config.http.origin_max_connections. Overridable. proxy.config.http.per_server.match STRING - "ip", "host", "both", or "none", with the same meaning as proxy.config.http.server_session_sharing.match. This groups the upstream servers and counts connections for each group. Default "ip". Previously this used the server session sharing match value. Overridable. proxy.config.http.per_server.queue_size INT - if there are no connections available, reschedule the transaction to try again later. A value of -1 means unlimited queue size, 0 means no queuing. The default would change from -1 (unlimited) to 0 (disabled). Previously proxy.config.http.origin_max_connections_queue. proxy.config.http.per_server.queue_delay INT - the # of milliseconds to delay for a transaction in the queue. Default 100. proxy.config.http.per_server.min_keep_alive INT - the # of sessions to attempt to maintain to the upstream group. If there are fewer than this a new connection will be opened even if an existing server session is available. Default 0. Previously proxy.config.http.origin_min_keep_alive_connections. proxy.config.http.per_server.alert_delay INT - throttle alert messages relating to a group to no more often than this many seconds. Default 60.