Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a CPU utilization resource monitor for overload manager #34713

Merged
merged 22 commits into from
Sep 11, 2024

PR feedback.

f63d1dc
Select commit
Loading
Failed to load commit list.
Merged

Add a CPU utilization resource monitor for overload manager #34713

PR feedback.
f63d1dc
Select commit
Loading
Failed to load commit list.
CI (Envoy) / Mobile/Format skipped Sep 11, 2024 in 0s

Check was skipped

This check was not triggered in this CI run

Details

Request (pr/34713/main@f63d1dc)

cancecen @cancecen f63d1dc #34713 merge main@54b2e86

Add a CPU utilization resource monitor for overload manager

Commit Message: Add a CPU utilization resource monitor for overload manager
Additional Description: Adds a new resource monitor to be used in CPU bound workloads to shed load. i.e. this can be configured to reject requests once CPU Utilization reaches a certain brownout point.

In my company, we experience user driven retry storms and/or unexpected flash crowds that are mitigated via auto scaling of our compute resources. However, auto scaling takes time and we still want to keep our fleet reasonably healthy during auto scaling and having a way to cheaply reject requests via overload manager has been very helpful. As a platform owner, it is easier to configure limits for CPU bound workloads with this resource monitor than other RPS/Latency/Concurrency based limiters.

Risk Level: Low
Testing: Unit tests
Docs Changes:
Release Notes:
Platform Specific Features: Today this is only implemented for Linux

Environment

Request variables

Key Value
ref b274d7f
sha f63d1dc
pr 34713
base-sha 54b2e86
actor cancecen @cancecen
message Add a CPU utilization resource monitor for overload manager...
started 1726080200.21701
target-branch main
trusted false
Build image

Container image/s (as used in this CI run)

Key Value
default envoyproxy/envoy-build-ubuntu:f94a38f62220a2b017878b790b6ea98a0f6c5f9c
mobile envoyproxy/envoy-build-ubuntu:mobile-f94a38f62220a2b017878b790b6ea98a0f6c5f9c
Version

Envoy version (as used in this CI run)

Key Value
major 1
minor 32
patch 0
dev true