1*1285115cSWilliam A. Kennington III// Copyright 2021 Google LLC 2*1285115cSWilliam A. Kennington III// 3*1285115cSWilliam A. Kennington III// Licensed under the Apache License, Version 2.0 (the "License"); 4*1285115cSWilliam A. Kennington III// you may not use this file except in compliance with the License. 5*1285115cSWilliam A. Kennington III// You may obtain a copy of the License at 6*1285115cSWilliam A. Kennington III// 7*1285115cSWilliam A. Kennington III// http://www.apache.org/licenses/LICENSE-2.0 8*1285115cSWilliam A. Kennington III// 9*1285115cSWilliam A. Kennington III// Unless required by applicable law or agreed to in writing, software 10*1285115cSWilliam A. Kennington III// distributed under the License is distributed on an "AS IS" BASIS, 11*1285115cSWilliam A. Kennington III// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*1285115cSWilliam A. Kennington III// See the License for the specific language governing permissions and 13*1285115cSWilliam A. Kennington III// limitations under the License. 14*1285115cSWilliam A. Kennington III 15*1285115cSWilliam A. Kennington IIIsyntax = "proto3"; 16*1285115cSWilliam A. Kennington III 17*1285115cSWilliam A. Kennington IIIpackage bmcmetrics.metricproto; 18*1285115cSWilliam A. Kennington III 19*1285115cSWilliam A. Kennington IIImessage BmcMemoryMetric { 20*1285115cSWilliam A. Kennington III int32 mem_available = 1; 21*1285115cSWilliam A. Kennington III int32 slab = 2; 22*1285115cSWilliam A. Kennington III int32 kernel_stack = 3; 23*1285115cSWilliam A. Kennington III} 24*1285115cSWilliam A. Kennington III 25*1285115cSWilliam A. Kennington IIImessage BmcUptimeMetric { 26*1285115cSWilliam A. Kennington III float uptime = 1; // Uptime (wall clock time) 27*1285115cSWilliam A. Kennington III float idle_process_time = 2; // Idle process time across all cores 28*1285115cSWilliam A. Kennington III} 29*1285115cSWilliam A. Kennington III 30*1285115cSWilliam A. Kennington IIImessage BmcDiskSpaceMetric { 31*1285115cSWilliam A. Kennington III int32 rwfs_kib_available = 1; // Free space in RWFS in KiB 32*1285115cSWilliam A. Kennington III} 33*1285115cSWilliam A. Kennington III 34*1285115cSWilliam A. Kennington III// The following messages use string tables to save space 35*1285115cSWilliam A. Kennington IIImessage BmcProcStatMetric { 36*1285115cSWilliam A. Kennington III message BmcProcStat { 37*1285115cSWilliam A. Kennington III int32 sidx_cmdline = 1; // complete command line 38*1285115cSWilliam A. Kennington III float utime = 2; // Time (seconds) in user mode 39*1285115cSWilliam A. Kennington III float stime = 3; // Time (seconds) in kernel mode 40*1285115cSWilliam A. Kennington III } 41*1285115cSWilliam A. Kennington III repeated BmcProcStat stats = 10; 42*1285115cSWilliam A. Kennington III} 43*1285115cSWilliam A. Kennington III 44*1285115cSWilliam A. Kennington IIImessage BmcFdStatMetric { 45*1285115cSWilliam A. Kennington III message BmcFdStat { 46*1285115cSWilliam A. Kennington III int32 sidx_cmdline = 1; // complete command line 47*1285115cSWilliam A. Kennington III int32 fd_count = 2; // count of open FD's 48*1285115cSWilliam A. Kennington III } 49*1285115cSWilliam A. Kennington III repeated BmcFdStat stats = 10; 50*1285115cSWilliam A. Kennington III} 51*1285115cSWilliam A. Kennington III 52*1285115cSWilliam A. Kennington IIImessage BmcStringTable { 53*1285115cSWilliam A. Kennington III message StringEntry { 54*1285115cSWilliam A. Kennington III string value = 1; 55*1285115cSWilliam A. Kennington III } 56*1285115cSWilliam A. Kennington III repeated StringEntry entries = 10; 57*1285115cSWilliam A. Kennington III} 58*1285115cSWilliam A. Kennington III 59*1285115cSWilliam A. Kennington IIImessage BmcMetricSnapshot { 60*1285115cSWilliam A. Kennington III BmcStringTable string_table = 1; 61*1285115cSWilliam A. Kennington III BmcMemoryMetric memory_metric = 2; 62*1285115cSWilliam A. Kennington III BmcUptimeMetric uptime_metric = 3; 63*1285115cSWilliam A. Kennington III BmcDiskSpaceMetric storage_space_metric = 4; 64*1285115cSWilliam A. Kennington III BmcProcStatMetric procstat_metric = 5; 65*1285115cSWilliam A. Kennington III BmcFdStatMetric fdstat_metric = 6; 66*1285115cSWilliam A. Kennington III} 67