mirror of https://github.com/grpc/grpc-go.git
61 lines
2.2 KiB
Protocol Buffer
61 lines
2.2 KiB
Protocol Buffer
/*
|
|
* Copyright 2019 gRPC authors.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
syntax = "proto3";
|
|
|
|
package orca.v1;
|
|
|
|
import "google/protobuf/duration.proto";
|
|
|
|
message LoadReport {
|
|
// CPU utilization expressed as a fraction of available CPU resources. This
|
|
// should be derived from a sample or measurement taken during the request.
|
|
double cpu_utilization = 1;
|
|
|
|
// Memory utilization expressed as a fraction of available memory
|
|
// resources. This should be derived from a sample or measurement taken
|
|
// during the request.
|
|
double mem_utilization = 2;
|
|
|
|
// NIC inbound/outbound utilization expressed as a fraction of available NIC
|
|
// bandwidth. The request in/out bytes can be inferred by Envoy, but not the
|
|
// NIC availability at the endpoint, hence reporting
|
|
double nic_in_utilization = 3;
|
|
double nic_out_utilization = 4;
|
|
|
|
// Application specific requests costs. Values may be absolute costs (e.g.
|
|
// 3487 bytes of storage) associated with the cost or utilization,
|
|
// expressed as a fraction of total resources available. Utilization
|
|
// metrics should be derived from a sample or measurement taken
|
|
// during the request.
|
|
map<string, double> request_cost_or_utilization = 5;
|
|
}
|
|
|
|
message LoadReportRequest {
|
|
// 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;
|
|
}
|
|
|
|
service OpenRCAService {
|
|
rpc StreamCoreMetrics(LoadReportRequest) returns (stream LoadReport) {
|
|
}
|
|
}
|
|
|