1syntax = "proto3"; 2 3package bmcmetrics.metricproto; 4 5message BmcMemoryMetric { 6 int32 mem_available = 1; 7 int32 slab = 2; 8 int32 kernel_stack = 3; 9} 10 11message BmcUptimeMetric { 12 float uptime = 1; // Uptime (wall clock time) 13 float idle_process_time = 2; // Idle process time across all cores 14} 15 16message BmcDiskSpaceMetric { 17 int32 rwfs_kib_available = 1; // Free space in RWFS in KiB 18} 19 20// The following messages use string tables to save space 21message BmcProcStatMetric { 22 message BmcProcStat { 23 int32 sidx_cmdline = 1; // complete command line 24 float utime = 2; // Time (seconds) in user mode 25 float stime = 3; // Time (seconds) in kernel mode 26 } 27 repeated BmcProcStat stats = 10; 28} 29 30message BmcFdStatMetric { 31 message BmcFdStat { 32 int32 sidx_cmdline = 1; // complete command line 33 int32 fd_count = 2; // count of open FD's 34 } 35 repeated BmcFdStat stats = 10; 36} 37 38message BmcStringTable { 39 message StringEntry { 40 string value = 1; 41 } 42 repeated StringEntry entries = 10; 43} 44 45message BmcMetricSnapshot { 46 BmcStringTable string_table = 1; 47 BmcMemoryMetric memory_metric = 2; 48 BmcUptimeMetric uptime_metric = 3; 49 BmcDiskSpaceMetric storage_space_metric = 4; 50 BmcProcStatMetric procstat_metric = 5; 51 BmcFdStatMetric fdstat_metric = 6; 52} 53