• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2022 gRPC authors.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Local copy of Envoy xDS proto file, used for testing only.
16
17syntax = "proto3";
18
19package xds.service.orca.v3;
20
21import "xds/data/orca/v3/orca_load_report.proto";
22
23import "google/protobuf/duration.proto";
24
25// See section `Out-of-band (OOB) reporting` of the design document in
26// :ref:`https://github.com/envoyproxy/envoy/issues/6614`.
27
28// Out-of-band (OOB) load reporting service for the additional load reporting
29// agent that does not sit in the request path. Reports are periodically sampled
30// with sufficient frequency to provide temporal association with requests.
31// OOB reporting compensates the limitation of in-band reporting in revealing
32// costs for backends that do not provide a steady stream of telemetry such as
33// long running stream operations and zero QPS services. This is a server
34// streaming service, client needs to terminate current RPC and initiate
35// a new call to change backend reporting frequency.
36service OpenRcaService {
37  rpc StreamCoreMetrics(OrcaLoadReportRequest) returns (stream xds.data.orca.v3.OrcaLoadReport);
38}
39
40message OrcaLoadReportRequest {
41  // Interval for generating Open RCA core metric responses.
42  google.protobuf.Duration report_interval = 1;
43  // Request costs to collect. If this is empty, all known requests costs tracked by
44  // the load reporting agent will be returned. This provides an opportunity for
45  // the client to selectively obtain a subset of tracked costs.
46  repeated string request_cost_names = 2;
47}
48