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