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;
}
