Skip to content

Commit a4a3c7a

Browse files
committed
orca: add application utilization and range checking
1 parent 6578ef7 commit a4a3c7a

File tree

12 files changed

+117
-53
lines changed

12 files changed

+117
-53
lines changed

examples/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module google.golang.org/grpc/examples
33
go 1.17
44

55
require (
6-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195
6+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4
77
github.com/golang/protobuf v1.5.3
88
golang.org/x/oauth2 v0.7.0
99
google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19

examples/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -627,8 +627,8 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH
627627
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
628628
github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
629629
github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
630-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195 h1:58f1tJ1ra+zFINPlwLWvQsR9CzAKt2e+EWV2yX9oXQ4=
631-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
630+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k=
631+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
632632
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
633633
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
634634
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

gcp/observability/go.sum

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH
638638
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
639639
github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
640640
github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
641-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
641+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
642642
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
643643
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
644644
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.17
55
require (
66
github.com/cespare/xxhash/v2 v2.2.0
77
github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe
8-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195
8+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4
99
github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f
1010
github.com/golang/glog v1.1.0
1111
github.com/golang/protobuf v1.5.3

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk
1313
github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk=
1414
github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
1515
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
16-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195 h1:58f1tJ1ra+zFINPlwLWvQsR9CzAKt2e+EWV2yX9oXQ4=
17-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
16+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k=
17+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
1818
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1919
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
2020
github.com/envoyproxy/go-control-plane v0.11.1-0.20230524094728-9239064ad72f h1:7T++XKzy4xg7PKy+bM+Sa9/oe1OC88yz2hXQUISoXfA=

interop/observability/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ require (
1818
contrib.go.opencensus.io/exporter/stackdriver v0.13.12 // indirect
1919
github.com/aws/aws-sdk-go v1.44.162 // indirect
2020
github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect
21-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195 // indirect
21+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 // indirect
2222
github.com/envoyproxy/protoc-gen-validate v0.10.1 // indirect
2323
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
2424
github.com/golang/protobuf v1.5.3 // indirect

interop/observability/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -638,8 +638,8 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH
638638
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
639639
github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
640640
github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
641-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195 h1:58f1tJ1ra+zFINPlwLWvQsR9CzAKt2e+EWV2yX9oXQ4=
642-
github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
641+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k=
642+
github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
643643
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
644644
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
645645
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=

orca/call_metrics_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ func (s) TestE2ECallMetricsUnary(t *testing.T) {
6565
injectMetrics: true,
6666
wantProto: &v3orcapb.OrcaLoadReport{
6767
CpuUtilization: 1.0,
68-
MemUtilization: 50.0,
68+
MemUtilization: 0.9,
6969
RequestCost: map[string]float64{"queryCost": 25.0},
70-
Utilization: map[string]float64{"queueSize": 75.0},
70+
Utilization: map[string]float64{"queueSize": 0.75},
7171
},
7272
},
7373
{
@@ -92,7 +92,7 @@ func (s) TestE2ECallMetricsUnary(t *testing.T) {
9292
t.Error(err)
9393
return nil, err
9494
}
95-
recorder.SetMemoryUtilization(50.0)
95+
recorder.SetMemoryUtilization(0.9)
9696
// This value will be overwritten by a write to the same metric
9797
// from the server handler.
9898
recorder.SetNamedUtilization("queueSize", 1.0)
@@ -114,7 +114,7 @@ func (s) TestE2ECallMetricsUnary(t *testing.T) {
114114
return nil, err
115115
}
116116
recorder.SetRequestCost("queryCost", 25.0)
117-
recorder.SetNamedUtilization("queueSize", 75.0)
117+
recorder.SetNamedUtilization("queueSize", 0.75)
118118
return &testpb.Empty{}, nil
119119
},
120120
}
@@ -171,9 +171,9 @@ func (s) TestE2ECallMetricsStreaming(t *testing.T) {
171171
injectMetrics: true,
172172
wantProto: &v3orcapb.OrcaLoadReport{
173173
CpuUtilization: 1.0,
174-
MemUtilization: 50.0,
175-
RequestCost: map[string]float64{"queryCost": 25.0},
176-
Utilization: map[string]float64{"queueSize": 75.0},
174+
MemUtilization: 0.5,
175+
RequestCost: map[string]float64{"queryCost": 0.25},
176+
Utilization: map[string]float64{"queueSize": 0.75},
177177
},
178178
},
179179
{
@@ -198,7 +198,7 @@ func (s) TestE2ECallMetricsStreaming(t *testing.T) {
198198
t.Error(err)
199199
return err
200200
}
201-
recorder.SetMemoryUtilization(50.0)
201+
recorder.SetMemoryUtilization(0.5)
202202
// This value will be overwritten by a write to the same metric
203203
// from the server handler.
204204
recorder.SetNamedUtilization("queueSize", 1.0)
@@ -217,8 +217,8 @@ func (s) TestE2ECallMetricsStreaming(t *testing.T) {
217217
t.Error(err)
218218
return err
219219
}
220-
recorder.SetRequestCost("queryCost", 25.0)
221-
recorder.SetNamedUtilization("queueSize", 75.0)
220+
recorder.SetRequestCost("queryCost", 0.25)
221+
recorder.SetNamedUtilization("queueSize", 0.75)
222222
}
223223

224224
// Streaming implementation replies with a dummy response until the

orca/producer_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,12 @@ func (s) TestProducer(t *testing.T) {
158158

159159
// Set a few metrics and wait for them on the client side.
160160
smr.SetCPUUtilization(10)
161-
smr.SetMemoryUtilization(100)
162-
smr.SetNamedUtilization("bob", 555)
161+
smr.SetMemoryUtilization(0.1)
162+
smr.SetNamedUtilization("bob", 0.555)
163163
loadReportWant := &v3orcapb.OrcaLoadReport{
164164
CpuUtilization: 10,
165-
MemUtilization: 100,
166-
Utilization: map[string]float64{"bob": 555},
165+
MemUtilization: 0.1,
166+
Utilization: map[string]float64{"bob": 0.555},
167167
}
168168

169169
testReport:
@@ -181,13 +181,13 @@ testReport:
181181
}
182182

183183
// Change and add metrics and wait for them on the client side.
184-
smr.SetCPUUtilization(50)
185-
smr.SetMemoryUtilization(200)
186-
smr.SetNamedUtilization("mary", 321)
184+
smr.SetCPUUtilization(0.5)
185+
smr.SetMemoryUtilization(0.2)
186+
smr.SetNamedUtilization("mary", 0.321)
187187
loadReportWant = &v3orcapb.OrcaLoadReport{
188-
CpuUtilization: 50,
189-
MemUtilization: 200,
190-
Utilization: map[string]float64{"bob": 555, "mary": 321},
188+
CpuUtilization: 0.5,
189+
MemUtilization: 0.2,
190+
Utilization: map[string]float64{"bob": 0.555, "mary": 0.321},
191191
}
192192

193193
for {
@@ -322,8 +322,8 @@ func (s) TestProducerBackoff(t *testing.T) {
322322
// Define a load report to send and expect the client to see.
323323
loadReportWant := &v3orcapb.OrcaLoadReport{
324324
CpuUtilization: 10,
325-
MemUtilization: 100,
326-
Utilization: map[string]float64{"bob": 555},
325+
MemUtilization: 0.1,
326+
Utilization: map[string]float64{"bob": 0.555},
327327
}
328328

329329
// Unblock the fake.
@@ -444,8 +444,8 @@ func (s) TestProducerMultipleListeners(t *testing.T) {
444444
// Define a load report to send and expect the client to see.
445445
loadReportWant := &v3orcapb.OrcaLoadReport{
446446
CpuUtilization: 10,
447-
MemUtilization: 100,
448-
Utilization: map[string]float64{"bob": 555},
447+
MemUtilization: 0.1,
448+
Utilization: map[string]float64{"bob": 0.555},
449449
}
450450

451451
// Receive reports and update counts for the three listeners.

0 commit comments

Comments
 (0)