You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.0 KiB

syntax = "proto3";
package api.v1;
import "google/api/annotations.proto";
import "protoc-gen-openapiv2/options/annotations.proto";
option go_package = "vgpu/api/v1;v1";
service Monitor {
rpc QueryRange (QueryRangeRequest) returns (RangeResponse) {
option (google.api.http) = {
post: "/v1/monitor/query/range-vector"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
summary: "查询区间向量"
};
}
rpc QueryInstant (QueryInstantRequest) returns (InstantResponse) {
option (google.api.http) = {
post: "/v1/monitor/query/instant-vector"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
summary: "查询瞬时向量"
};
}
rpc Summary (SummaryFilter) returns (SummaryResponse) {
option (google.api.http) = {
post: "/v1/monitor/summary"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
summary: "资源使用情况概览"
};
}
}
message Range {
string start = 1;
string end = 2;
string step = 3;
}
message QueryRangeRequest {
string query = 1;
Range range = 2;
}
message SamplePair {
float value = 1;
int64 timestamp = 2;
}
message SampleStream {
map<string, string> metric = 1;
repeated SamplePair values = 2;
}
message RangeResponse {
repeated SampleStream data = 1;
}
message QueryInstantRequest {
string query = 1;
}
message InstantResponse {
repeated Sample data = 1;
}
message Sample {
map<string, string> metric = 1;
float value = 2;
int64 timestamp = 3;
}
message SummaryFilter {
string node = 1;
string device = 2;
}
message SummaryResponse {
DistributionRate distributionRate = 1;
Scaling scaling = 2;
}
message DistributionRate {
float vgpu = 1;
float memory = 2;
float core = 3;
}
message UseRate {
float vgpu = 1;
float memory = 2;
float core = 3;
}
message Scaling {
float vgpu = 1;
float memory = 2;
float core = 3;
}