-
Notifications
You must be signed in to change notification settings - Fork 4k
services,orca: update backend metrics support to allow for server-wide metrics recording (per-call and OOB) #9902
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
services,orca: update backend metrics support to allow for server-wide metrics recording (per-call and OOB) #9902
Conversation
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
interop-testing/src/main/java/io/grpc/testing/integration/TestServiceServer.java
Show resolved
Hide resolved
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
services/src/main/java/io/grpc/services/CallMetricRecorder.java
Outdated
Show resolved
Hide resolved
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
…icRecorder in per-call reporting
…verInterceptor & update tests
…ingleton for ORCA server interceptor
…ting, addressed other review comments
bbd99e1 to
d07c661
Compare
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
ejona86
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Assuming "don't break the existing API" is fixed, this is fine.
@YifeiZhuang, do you think the changes to the example and interop-testing won't break anything ("the example doesn't work like it claims" or "interop-testing now fails")?
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
|
@YifeiZhuang could you also adding another |
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Show resolved
Hide resolved
xds/src/main/java/io/grpc/xds/orca/OrcaMetricReportingServerInterceptor.java
Outdated
Show resolved
Hide resolved
That's C-centric documentation. I don't know what it does. I don't know if you have permission, but if you notice a Kokoro build flake you may be able to re-trigger via:
To try against your own repo, you can do the same flow (choose a random Details from a random PR), but instead of "rebuild":
|
it does look like the |
YifeiZhuang
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you apply change:
diff --git a/interop-testing/src/main/java/io/grpc/testing/integration/AbstractInteropTest.java b/interop-testing/src/main/java/io/grpc/testing/integration/AbstractInteropTest.java
index a8d4776ad..2f0575b6c 100644
--- a/interop-testing/src/main/java/io/grpc/testing/integration/AbstractInteropTest.java
+++ b/interop-testing/src/main/java/io/grpc/testing/integration/AbstractInteropTest.java
@@ -1777,7 +1777,7 @@ public abstract class AbstractInteropTest {
final TestOrcaReport answer2 = TestOrcaReport.newBuilder()
.setCpuUtilization(0.29309)
.setMemoryUtilization(0.2)
- .putUtilization("util", 100.2039)
+ .putUtilization("util", 0.2039)
.build();
This would prevent interop test from failing.
refer to: grpc/grpc@fd7c85f
…il for AbstractInteropTest
|
Applied change from #9902 (review) to |
Design doc: go/grpc-backend-metrics-update
This PR includes:
MetricRecorderandCallMetricRecorder(for consistency with theOrcaLoadReportproto and "push down" validation checks as early as possible)MetricRecorderis passed to constructor forOrcaMetricReportingServerInterceptor(for per-call load reporting) and if theMetricRecorderis set, then merges with metrics fromCallMetricRecorderwhich takes a higher precedence.