GoogleCloudPlatform / GoogleCloudPlatform/esp-v2
Envoy cluster's max_requests, max_connections are not configurable and set to default of 1024
- Dominant language
- Go
- Stars
- 307
- Forks
- 185
- Avg merge
- 14h 45m
- Merged PRs (30d)
- 6
Description
Hi! We're using ESP for authentication before proxying traffic to WebSocket servers. Our connections are particularly long lived, most of the time the lifetime is days.
With the current Envoy cluster configuration, default circuit breakers apply for the backend cluster, namely max_requests and max_connections both set to 1024 (https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/circuit_breaker.proto). Essentially, for us it means that we have to run 50 backend containers to support 50K simultaneous connections.
I looked briefly but I haven't found any way to influence the dynamic configuration Envoy gets. It seems that a workaround is possible, hacking the configuration generation, but it feels cumbersome and unnecessary. Have I missed anything? Maybe if Envoy has a way to set default circuit breakers values, that could be exposed as a startup parameter for endpoints runtime? Would appreciate any help.
To be explicit, these are the settings I'm talking about (this config is already hacked to allow for 1536 connections):
```
"staticResources": {
"clusters": [
{
"name": "my-endpoint.endpoints.my-project.cloud.goog_local",
"circuit_breakers": {
"thresholds": [
{
"max_connections": 1536,
"max_requests": 1536,
"max_pending_requests": 1536
},
{
"priority": "HIGH",
"max_connections": 1536,
"max_requests": 1536,
"max_pending_requests": 1536
}
]
},
...
}
```
Normally, the backend cluster configuration would arrive dynamically to Envoy, missing the `circuit_breakers` section completely, thus effectively applying default 1024 to these.
Contributor guide
Assessment
This issue has not been assessed yet.