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.
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.
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.