xds: LRS custom metrics changes (a85)#9005
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #9005 +/- ##
==========================================
+ Coverage 83.04% 83.06% +0.01%
==========================================
Files 411 413 +2
Lines 32892 33135 +243
==========================================
+ Hits 27316 27524 +208
- Misses 4181 4201 +20
- Partials 1395 1410 +15
🚀 New features to boost your workflow:
|
9173e18 to
8822c92
Compare
8822c92 to
7c192be
Compare
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request implements the changes for LRS custom metrics as described in gRPC proposal A85. The changes are comprehensive, touching upon configuration parsing, balancer logic, picker implementation, and the LRS client itself to support propagating new ORCA metric types. The addition of an environment variable to gate this experimental feature is appropriate. The new functionality is also well-covered by unit and end-to-end tests.
The implementation looks solid. I have one minor suggestion regarding spec compliance when parsing lrs_report_endpoint_metrics.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: eshitachandwani <59800922+eshitachandwani@users.noreply.github.com>
eshitachandwani
left a comment
There was a problem hiding this comment.
Approved with minor comments.
dd2c42a to
5b5b6da
Compare
easwars
left a comment
There was a problem hiding this comment.
LGTM, modulo some outstanding comments.
The most important one of them was moving the newly added test TestValidateCluster_LRSReportEndpointMetrics to the other unmarshal_cds_test.go which is in the same package as the code (and therefore not having to use an variable that is defined only to be overridden by a test in another package).
| // update with the one currently used by picker, and is protected by b.mu. It | ||
| // returns a boolean indicating if a new picker needs to be generated. | ||
| func (b *clusterImplBalancer) handleDropAndRequestCountLocked(clusterConfig xdsresource.ClusterConfig) bool { | ||
| // handleClusterConfigLocked compares internal state with the new cluster |
There was a problem hiding this comment.
I just realized that the old docstring was outdated too, in the sense that it does more than just compare the old and the new. Its updates the internal state as well. Could you please update the docstring to reflect reality. Thanks.
Addresses A85. Implements changes for LRS custom metrics.
RELEASE NOTES: