message SystemMetrics {
  message SchedulerUsage {
    required uint32 scheduler_index = 1;
    required float wall_time_diff = 2;
  }

  required uint32 process_count = 1;
  required uint32 run_queue = 2;
  required uint32 error_logger_queue_len = 3;
  required uint64 memory_total = 4;
  required uint64 memory_procs = 5;
  required uint64 memory_atoms = 6;
  required uint64 memory_bin = 7;
  required uint64 memory_ets = 8;
  required uint64 bytes_in = 9;
  required uint64 bytes_out = 10;
  required uint64 gc_count = 11;
  required uint64 gc_words_reclaimed = 12;
  required uint64 reductions = 13;
  repeated SchedulerUsage scheduler_usage = 14;
  required uint64 time = 15;
}
