11285115cSWilliam A. Kennington III// Copyright 2021 Google LLC 21285115cSWilliam A. Kennington III// 31285115cSWilliam A. Kennington III// Licensed under the Apache License, Version 2.0 (the "License"); 41285115cSWilliam A. Kennington III// you may not use this file except in compliance with the License. 51285115cSWilliam A. Kennington III// You may obtain a copy of the License at 61285115cSWilliam A. Kennington III// 71285115cSWilliam A. Kennington III// http://www.apache.org/licenses/LICENSE-2.0 81285115cSWilliam A. Kennington III// 91285115cSWilliam A. Kennington III// Unless required by applicable law or agreed to in writing, software 101285115cSWilliam A. Kennington III// distributed under the License is distributed on an "AS IS" BASIS, 111285115cSWilliam A. Kennington III// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121285115cSWilliam A. Kennington III// See the License for the specific language governing permissions and 131285115cSWilliam A. Kennington III// limitations under the License. 141285115cSWilliam A. Kennington III 151285115cSWilliam A. Kennington IIIsyntax = "proto3"; 161285115cSWilliam A. Kennington III 171285115cSWilliam A. Kennington IIIpackage bmcmetrics.metricproto; 181285115cSWilliam A. Kennington III 191285115cSWilliam A. Kennington IIImessage BmcMemoryMetric { 201285115cSWilliam A. Kennington III int32 mem_available = 1; 211285115cSWilliam A. Kennington III int32 slab = 2; 221285115cSWilliam A. Kennington III int32 kernel_stack = 3; 231285115cSWilliam A. Kennington III} 241285115cSWilliam A. Kennington III 251285115cSWilliam A. Kennington IIImessage BmcUptimeMetric { 261285115cSWilliam A. Kennington III float uptime = 1; // Uptime (wall clock time) 271285115cSWilliam A. Kennington III float idle_process_time = 2; // Idle process time across all cores 28b63d6314SMichael Shen float firmware_boot_time_sec = 3; // Time (seconds) elapsed in firmware process 29b63d6314SMichael Shen float loader_boot_time_sec = 4; // Time (seconds) elapsed in loader process 30b63d6314SMichael Shen float kernel_boot_time_sec = 5; // Time (seconds) elapsed in kernel process 31b63d6314SMichael Shen float initrd_boot_time_sec = 6; // Time (seconds) elapsed in initrd process 32b63d6314SMichael Shen float userspace_boot_time_sec = 7; // Time (seconds) elapsed in userspace process 331285115cSWilliam A. Kennington III} 341285115cSWilliam A. Kennington III 351285115cSWilliam A. Kennington IIImessage BmcDiskSpaceMetric { 361285115cSWilliam A. Kennington III int32 rwfs_kib_available = 1; // Free space in RWFS in KiB 37*119e7928SAbby int32 tmpfs_kib_available = 2; // Free space in TMPFS in KiB 381285115cSWilliam A. Kennington III} 391285115cSWilliam A. Kennington III 401285115cSWilliam A. Kennington III// The following messages use string tables to save space 411285115cSWilliam A. Kennington IIImessage BmcProcStatMetric { 421285115cSWilliam A. Kennington III message BmcProcStat { 431285115cSWilliam A. Kennington III int32 sidx_cmdline = 1; // complete command line 441285115cSWilliam A. Kennington III float utime = 2; // Time (seconds) in user mode 451285115cSWilliam A. Kennington III float stime = 3; // Time (seconds) in kernel mode 461285115cSWilliam A. Kennington III } 471285115cSWilliam A. Kennington III repeated BmcProcStat stats = 10; 481285115cSWilliam A. Kennington III} 491285115cSWilliam A. Kennington III 501285115cSWilliam A. Kennington IIImessage BmcFdStatMetric { 511285115cSWilliam A. Kennington III message BmcFdStat { 521285115cSWilliam A. Kennington III int32 sidx_cmdline = 1; // complete command line 531285115cSWilliam A. Kennington III int32 fd_count = 2; // count of open FD's 541285115cSWilliam A. Kennington III } 551285115cSWilliam A. Kennington III repeated BmcFdStat stats = 10; 561285115cSWilliam A. Kennington III} 571285115cSWilliam A. Kennington III 581285115cSWilliam A. Kennington IIImessage BmcStringTable { 591285115cSWilliam A. Kennington III message StringEntry { 601285115cSWilliam A. Kennington III string value = 1; 611285115cSWilliam A. Kennington III } 621285115cSWilliam A. Kennington III repeated StringEntry entries = 10; 631285115cSWilliam A. Kennington III} 641285115cSWilliam A. Kennington III 654dba220dSWilly Tumessage BmcECCMetric { 664dba220dSWilly Tu int32 correctable_error_count = 1; 674dba220dSWilly Tu int32 uncorrectable_error_count = 2; 684dba220dSWilly Tu} 694dba220dSWilly Tu 701285115cSWilliam A. Kennington IIImessage BmcMetricSnapshot { 711285115cSWilliam A. Kennington III BmcStringTable string_table = 1; 721285115cSWilliam A. Kennington III BmcMemoryMetric memory_metric = 2; 731285115cSWilliam A. Kennington III BmcUptimeMetric uptime_metric = 3; 741285115cSWilliam A. Kennington III BmcDiskSpaceMetric storage_space_metric = 4; 751285115cSWilliam A. Kennington III BmcProcStatMetric procstat_metric = 5; 761285115cSWilliam A. Kennington III BmcFdStatMetric fdstat_metric = 6; 774dba220dSWilly Tu reserved 7; 784dba220dSWilly Tu reserved 8; 794dba220dSWilly Tu BmcECCMetric ecc_metric = 9; 801285115cSWilliam A. Kennington III} 81