feat: make ext_proc circuit breaker max_requests configurable via Helm#1884
feat: make ext_proc circuit breaker max_requests configurable via Helm#1884PatilHrushikesh wants to merge 4 commits into
Conversation
a0a89d2 to
df153a8
Compare
| }}, nil | ||
| } | ||
|
|
||
| func (s *Server) getExtProcMaxRequests() uint32 { |
There was a problem hiding this comment.
Is this getter needed? The logic in this getter is already handled in hte constructor.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1884 +/- ##
=======================================
Coverage 84.42% 84.43%
=======================================
Files 134 134
Lines 19162 19174 +12
=======================================
+ Hits 16177 16189 +12
Misses 1998 1998
Partials 987 987 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
edbec4a to
49899f4
Compare
|
Can you take a look at the failing tests? |
|
/retest |
1 similar comment
|
/retest |
Signed-off-by: Hrushikesh Patil <hrushi2900@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
d73e120 to
a22c23c
Compare
mathetake
left a comment
There was a problem hiding this comment.
why don't you just set MAXINT32 instead of adding an option? The limit could be effectively applied on the downstream/upstream side config instead of at extrproc
This can also be done, but this will bring back upgrade failure issue, where after upgrade is cluster configuration is different which causes CDS update and streaming requests in progress are dropped by extproc |
|
/retest |
Description
The default Envoy circuit breaker
max_requestsof 1024 causes gRPC overflow errors(
ext_proc_error_gRPC_error_14{...overflow}) when many concurrent requests open gRPCstreams to the ext_proc server simultaneously.
This makes the ext_proc UDS cluster circuit breaker
max_requestsconfigurable via the--extProcMaxRequestscontroller flag, exposed through the Helm chart ascontroller.extProcMaxRequests. The default remains 1024, matching Envoy's built-in default.The
extensionserver.New()function signature changed to accept the newextProcMaxRequests uint32parameter.
Related Issues/PRs (if applicable)
N/A
Special notes for reviewers (if applicable)
N/A