api/build: migrate UDPA proto tree to external cncf/udpa repository. (#8017)
This is a one-time movement of all UDPA content from envoyproxy/envoy to cncf/udpa. The permanent home of UDPA will be https://github.com/cncf/udpa. Risk level: Low Testing: Added UDPA service entry to build_test. Signed-off-by: Harvey Tuch <htuch@google.com> Mirrored from https://github.com/envoyproxy/envoy @ e67923fc0b60d0cdf3935fcb30af61d131301fadpull/620/head
parent
dbb27609fc
commit
50e32ec5ee
9 changed files with 16 additions and 111 deletions
@ -1,16 +0,0 @@ |
|||||||
load("@envoy_api//bazel:api_build_system.bzl", "api_go_proto_library", "api_proto_library") |
|
||||||
|
|
||||||
licenses(["notice"]) # Apache 2 |
|
||||||
|
|
||||||
api_proto_library( |
|
||||||
name = "orca_load_report", |
|
||||||
srcs = ["orca_load_report.proto"], |
|
||||||
visibility = [ |
|
||||||
"//visibility:public", |
|
||||||
], |
|
||||||
) |
|
||||||
|
|
||||||
api_go_proto_library( |
|
||||||
name = "orca_load_report", |
|
||||||
proto = ":orca_load_report", |
|
||||||
) |
|
@ -1,36 +0,0 @@ |
|||||||
syntax = "proto3"; |
|
||||||
|
|
||||||
package udpa.data.orca.v1; |
|
||||||
|
|
||||||
option java_outer_classname = "OrcaLoadReportProto"; |
|
||||||
option java_multiple_files = true; |
|
||||||
option java_package = "io.envoyproxy.udpa.data.orca.v1"; |
|
||||||
option go_package = "v1"; |
|
||||||
|
|
||||||
import "validate/validate.proto"; |
|
||||||
|
|
||||||
// See section `ORCA load report format` of the design document in |
|
||||||
// :ref:`https://github.com/envoyproxy/envoy/issues/6614`. |
|
||||||
|
|
||||||
message OrcaLoadReport { |
|
||||||
// CPU utilization expressed as a fraction of available CPU resources. This |
|
||||||
// should be derived from the latest sample or measurement. |
|
||||||
double cpu_utilization = 1 [(validate.rules).double.gte = 0, (validate.rules).double.lte = 1]; |
|
||||||
|
|
||||||
// Memory utilization expressed as a fraction of available memory |
|
||||||
// resources. This should be derived from the latest sample or measurement. |
|
||||||
double mem_utilization = 2 [(validate.rules).double.gte = 0, (validate.rules).double.lte = 1]; |
|
||||||
|
|
||||||
// Total RPS being served by an endpoint. This should cover all services that an endpoint is |
|
||||||
// responsible for. |
|
||||||
uint64 rps = 3; |
|
||||||
|
|
||||||
// Application specific requests costs. Each value is an absolute cost (e.g. 3487 bytes of |
|
||||||
// storage) associated with the request. |
|
||||||
map<string, double> request_cost = 4; |
|
||||||
|
|
||||||
// Resource utilization values. Each value is expressed as a fraction of total resources |
|
||||||
// available, derived from the latest sample or measurement. |
|
||||||
map<string, double> utilization = 5 |
|
||||||
[(validate.rules).map.values.double.gte = 0, (validate.rules).map.values.double.lte = 1]; |
|
||||||
} |
|
@ -1,20 +0,0 @@ |
|||||||
load("@envoy_api//bazel:api_build_system.bzl", "api_go_grpc_library", "api_proto_library_internal") |
|
||||||
|
|
||||||
licenses(["notice"]) # Apache 2 |
|
||||||
|
|
||||||
api_proto_library_internal( |
|
||||||
name = "orca", |
|
||||||
srcs = ["orca.proto"], |
|
||||||
has_services = 1, |
|
||||||
deps = [ |
|
||||||
"//udpa/data/orca/v1:orca_load_report", |
|
||||||
], |
|
||||||
) |
|
||||||
|
|
||||||
api_go_grpc_library( |
|
||||||
name = "orca", |
|
||||||
proto = ":orca", |
|
||||||
deps = [ |
|
||||||
"//udpa/data/orca/v1:orca_load_report_go_proto", |
|
||||||
], |
|
||||||
) |
|
@ -1,38 +0,0 @@ |
|||||||
syntax = "proto3"; |
|
||||||
|
|
||||||
package udpa.service.orca.v1; |
|
||||||
|
|
||||||
option java_outer_classname = "OrcaProto"; |
|
||||||
option java_multiple_files = true; |
|
||||||
option java_package = "io.envoyproxy.udpa.service.orca.v1"; |
|
||||||
option go_package = "v1"; |
|
||||||
|
|
||||||
import "udpa/data/orca/v1/orca_load_report.proto"; |
|
||||||
|
|
||||||
import "google/protobuf/duration.proto"; |
|
||||||
|
|
||||||
import "validate/validate.proto"; |
|
||||||
|
|
||||||
// See section `Out-of-band (OOB) reporting` of the design document in |
|
||||||
// :ref:`https://github.com/envoyproxy/envoy/issues/6614`. |
|
||||||
|
|
||||||
// Out-of-band (OOB) load reporting service for the additional load reporting |
|
||||||
// agent that does not sit in the request path. Reports are periodically sampled |
|
||||||
// with sufficient frequency to provide temporal association with requests. |
|
||||||
// OOB reporting compensates the limitation of in-band reporting in revealing |
|
||||||
// costs for backends that do not provide a steady stream of telemetry such as |
|
||||||
// long running stream operations and zero QPS services. This is a server |
|
||||||
// streaming service, client needs to terminate current RPC and initiate |
|
||||||
// a new call to change backend reporting frequency. |
|
||||||
service OpenRcaService { |
|
||||||
rpc StreamCoreMetrics(OrcaLoadReportRequest) returns (stream udpa.data.orca.v1.OrcaLoadReport); |
|
||||||
} |
|
||||||
|
|
||||||
message OrcaLoadReportRequest { |
|
||||||
// Interval for generating Open RCA core metric responses. |
|
||||||
google.protobuf.Duration report_interval = 1; |
|
||||||
// Request costs to collect. If this is empty, all known requests costs tracked by |
|
||||||
// the load reporting agent will be returned. This provides an opportunity for |
|
||||||
// the client to selectively obtain a subset of tracked costs. |
|
||||||
repeated string request_cost_names = 2; |
|
||||||
} |
|
Loading…
Reference in new issue