GoogleCloudPlatform / GoogleCloudPlatform/esp-v2

Envoy cluster's max_requests, max_connections are not configurable and set to default of 1024

Open
#813 2 comments 3 reactions 2 assignees Claimed by @shuoyang2016 View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.