Skip to content

Commit

Permalink
Add application_utilization (#62)
Browse files Browse the repository at this point in the history
gRPC's client-side weighted round robin currently uses 'cpu_utilization' but the load balancing works with any utilization. Server applications that are not CPU bound can report an application specific utilization metric instead and balance the load better. This change introduces a new top-level field 'application_utilization' for this use.

Signed-off-by: Yousuk Seung <[email protected]>
  • Loading branch information
yousukseung authored Jun 7, 2023
1 parent 4003588 commit e9ce688
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 26 deletions.
65 changes: 39 additions & 26 deletions go/xds/data/orca/v3/orca_load_report.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions go/xds/data/orca/v3/orca_load_report.pb.validate.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions xds/data/orca/v3/orca_load_report.proto
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,12 @@ message OrcaLoadReport {

// Application specific opaque metrics.
map<string, double> named_metrics = 8;

// Application specific utilization expressed as a fraction of available
// resources. For example, an application may report the max of CPU and memory
// utilization for better load balancing if it is both CPU and memory bound.
// This should be derived from the latest sample or measurement.
// The value may be larger than 1.0 when the usage exceeds the reporter
// dependent notion of soft limits.
double application_utilization = 9 [(validate.rules).double.gte = 0];
}

0 comments on commit e9ce688

Please sign in to comment.