grpc-go/internal/balancerload/orca/orca_v1/orca.proto

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) {
}
}