blob: 309296c5620e37576de93dd566f20beb1774e116 [file]
edition = "2023";
package milotic_tlbmc;
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "software_metrics_config.proto";
message SocketStatState {
int32 listen = 1;
int32 syn_sent = 2;
int32 syn_received = 3;
int32 established = 4;
int32 fin_wait_one = 5;
int32 fin_wait_two = 6;
int32 close_wait = 7;
int32 closing = 8;
int32 last_ack = 9;
int32 time_wait = 10;
int32 closed = 11;
}
message NetFilterState {
int32 port = 1;
uint64 num_connections = 2;
}
message NetFilterStates {
repeated NetFilterState states = 1;
google.protobuf.Timestamp timestamp = 2;
}
message SocketStatStates {
map<int32, SocketStatState> states = 1;
google.protobuf.Timestamp timestamp = 2;
}
message BiosKeyStatus {
int32 image_family = 1;
string validation_method = 2;
int32 version = 3;
int64 validation_key_data = 4;
}
message SoftwareMetricsValue {
SocketStatStates socket_stat_state = 1;
NetFilterStates netfilter_state = 2;
PsiMetrics psi_metrics = 3;
repeated string available_services = 4;
map<string, PsiMetrics> service_psi_metrics = 5;
BiosKeyStatus bios_key_status = 6;
}
message SoftwareMetricsAttributesStatic {
SoftwareMetricsConfig software_metrics_config = 1;
}
message SoftwareMetricsAttributesDynamic {
google.protobuf.Duration refresh_interval = 2;
}
message PsiPressure {
double avg10 = 1; // Avg pressure over 10s.
double avg60 = 2; // Avg pressure over 60s.
double avg300 = 3; // Avg pressure over 300s.
int64 total = 4; // Total delay in microseconds (µs).
}
message PressureLevels {
PsiPressure some = 1; // Time percentage some tasks are delayed.
PsiPressure full = 2; // Time percentage all tasks are delayed.
}
message PsiMetrics {
PressureLevels cpu = 1;
PressureLevels memory = 2;
PressureLevels io = 3;
}