You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Now sk-plugin protocol provides 2 callback functions, 2 input and 1 output.
(input) Event--create, update and delete events for pods etc...
(input) Stat--periodic system stats such as CPU usage or request concurrency.
(output) Scale--a request for a recommended scale, given prior input callbacks.
We need to extend this protocol to support VPA. New protocol will look like:
(input) Event--create, update and delete events for pods etc...
(input) Stat--periodic system stats such as CPU usage or request concurrency.
(output) Scale_horizontally--a request for a recommended scale horizontally, given prior input callbacks.
(output) Scale_vertically--a request for a recommended scale vertically, given prior input callbacks.
(Copied from josephburnett/sk-plugin#1 when sk-plugin was moved to the skenario respository)
Now sk-plugin protocol provides 2 callback functions, 2 input and 1 output.
(input) Event--create, update and delete events for pods etc...
(input) Stat--periodic system stats such as CPU usage or request concurrency.
(output) Scale--a request for a recommended scale, given prior input callbacks.
We need to extend this protocol to support VPA. New protocol will look like:
(input) Event--create, update and delete events for pods etc...
(input) Stat--periodic system stats such as CPU usage or request concurrency.
(output) Scale_horizontally--a request for a recommended scale horizontally, given prior input callbacks.
(output) Scale_vertically--a request for a recommended scale vertically, given prior input callbacks.
Proto
syntax = "proto3";
package proto;
message Empty {}
message Autoscaler {
string type = 1;
string yaml = 2;
}
message Pod {
string name = 1;
string state = 2;
int64 last_transition = 3;
int32 cpu_request = 4;
}
enum EventType {
CREATE = 0;
UPDATE = 1;
DELETE = 2;
}
message EventRequest {
string partition = 1;
int64 time = 2;
EventType type = 3;
oneof object_oneof {
Autoscaler autoscaler = 4;
Pod pod = 5;
}
}
enum MetricType {
CPU_MILLIS = 0;
CONCURRENT_REQUESTS_MILLIS = 1;
}
message Stat {
int64 time = 1;
string pod_name = 2;
MetricType type = 3;
int32 value = 4;
}
message StatRequest {
string partition = 1;
repeated Stat stat = 2;
}
message VerticalSizeRequest{
string partition = 1;
int64 time_nanos = 2;
}
message VerticalSizeResponse{
repeated RecommendedPodResources rec = 1;
}
message RecommendedPodResources{
string pod_name = 1;
int32 lower_bound = 2;
int32 upper_bound = 3;
int32 target = 4;
string resource_name = 5;
int32 recommendation = 2;
}
message HorizontalSizeRequest{
string partition = 1;
int64 time_nanos = 2;
}
message HorizontalSizeResponse{
int32 rec = 1;
}
service Plugin {
rpc Event(EventRequest) returns (Empty);
rpc Stat(StatRequest) returns (Empty);
rpc HorizontalRecommendation(HorizontalSizeRequest) returns (HorizontalSizeResponse);
rpc VerticalRecommendation(VerticalSizeRequest) returns (VerticalSizeResponse);
}
The text was updated successfully, but these errors were encountered: