<div class="socmaildefaultfont" dir="ltr" style="font-family:Arial, Helvetica, sans-serif;font-size:10.5pt" ><div dir="ltr" style="font-family:Arial, Helvetica, sans-serif;font-size:10.5pt" ><div dir="ltr" >Thank you Kun Yi for your proposal.</div>
<div dir="ltr" >My input starts with word "Response:".</div>
<div dir="ltr" > </div>
<div dir="ltr" > </div>
<div dir="ltr" > </div>
<div dir="ltr" >With regards,</div>
<div dir="ltr" >Sivas</div>
<div dir="ltr" > </div>
<blockquote data-history-content-modified="1" data-history-expanded="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px; padding-left:5px; direction:ltr; margin-right:0px" >----- Original message -----<br>From: Kun Yi <kunyi@google.com><br>Sent by: "openbmc" <openbmc-bounces+sivas.srr=in.ibm.com@lists.ozlabs.org><br>To: OpenBMC Maillist <openbmc@lists.ozlabs.org><br>Cc:<br>Subject: BMC health metrics (again!)<br>Date: Tue, Apr 9, 2019 9:57 PM<br> <br><font size="3" >Hello there,</font><br><br><font size="3" >This topic has been brought up several times on the mailing list and offline, but in general seems we as a community didn't reach a consensus on what things would be the most valuable to monitor, and how to monitor them. While it seems a general purposed monitoring infrastructure for OpenBMC is a hard problem, I have some simple ideas that I hope can provide immediate and direct benefits.</font><br><br><font size="3" >1. Monitoring host IPMI link reliability (host side)</font><br><br><font size="3" >The essentials I want are "IPMI commands sent" and "IPMI commands succeeded" counts over time. More metrics like response time would be helpful as well. The issue to address here: when some IPMI sensor readings are flaky, it would be really helpful to tell from IPMI command stats to determine whether it is a hardware issue, or IPMI issue. Moreover, it would be a very useful regression test metric for rolling out new BMC software.</font><br><br><font size="3" >Looking at the host IPMI side, there is some metrics exposed through /proc/ipmi/0/si_stats if ipmi_si driver is used, but I haven't dug into whether it contains information mapping to the interrupts. Time to read the source code I guess.</font><br><br><font size="3" >Another idea would be to instrument caller libraries like the interfaces in ipmitool, though I feel that approach is harder due to fragmentation of IPMI libraries.</font></blockquote>
<div class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left: 2px solid rgb(170, 170, 170); margin-left: 5px; padding-left: 5px; direction: ltr; margin-right: 0px;" ><font size="3" >Response: Can we have it as a part of debug / tarball image to get response time and this can be used only at that time.</font></div>
<div class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left: 2px solid rgb(170, 170, 170); margin-left: 5px; padding-left: 5px; direction: ltr; margin-right: 0px;" ><font size="3" >And more over IPMI interface is not fading away? Will let others to provide input. </font></div>
<blockquote class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px; padding-left:5px; direction:ltr; margin-right:0px" ><br><font size="3" >2. Read and expose core BMC performance metrics from procfs</font><br><br><font size="3" >This is straightforward: have a smallish daemon (or bmc-state-manager) read,parse, and process procfs and put values on D-Bus. Core metrics I'm interested in getting through this way: load average, memory, disk used/available, net stats... The values can then simply be exported as IPMI sensors or Redfish resource properties.</font><br><br><font size="3" >A nice byproduct of this effort would be a procfs parsing library. Since different platforms would probably have different monitoring requirements and procfs output format has no standard, I'm thinking the user would just provide a configuration file containing list of (procfs path, property regex, D-Bus property name), and the compile-time generated code to provide an object for each property. </font><br><br><font size="3" >All of this is merely thoughts and nothing concrete. With that said, it would be really great if you could provide some feedback such as "I want this, but I really need that feature", or let me know it's all implemented already :)</font><br><br><font size="3" >If this seems valuable, after gathering more feedback of feature requirements, I'm going to turn them into design docs and upload for review.</font></blockquote>
<blockquote class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px; padding-left:5px; direction:ltr; margin-right:0px" >Response: As BMC is small embedded system, Do we really need to put this and may need to decide based on memory / flash foot print.</blockquote>
<div class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left: 2px solid rgb(170, 170, 170); margin-left: 5px; padding-left: 5px; direction: ltr; margin-right: 0px;" ><u><strong>Feature to get even when BMC usage goes > 90%:</strong></u></div>
<blockquote class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px; padding-left:5px; direction:ltr; margin-right:0px" >From end user perspective,  If BMC performance / usages reaches consistently > 90% of BMC CPU utilization / BMC Memory / BMC file system then we should have way to get an event accordingly. This will help end user. I feel this is higher priority.</blockquote>
<blockquote class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px; padding-left:5px; direction:ltr; margin-right:0px" >May be based on the event, involved application should try to correct itself.</blockquote>
<div class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left: 2px solid rgb(170, 170, 170); margin-left: 5px; padding-left: 5px; direction: ltr; margin-right: 0px;" >If After this, BMC have good foot print then nothing wrong in having small daemon like procfs and use d-bus to get  performance metrics.</div>
<div class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left: 2px solid rgb(170, 170, 170); margin-left: 5px; padding-left: 5px; direction: ltr; margin-right: 0px;" > </div>
<div class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left: 2px solid rgb(170, 170, 170); margin-left: 5px; padding-left: 5px; direction: ltr; margin-right: 0px;" >With regards,</div>
<div class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left: 2px solid rgb(170, 170, 170); margin-left: 5px; padding-left: 5px; direction: ltr; margin-right: 0px;" >Sivas</div>
<div class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left: 2px solid rgb(170, 170, 170); margin-left: 5px; padding-left: 5px; direction: ltr; margin-right: 0px;" ><font size="3" >-- </font></div>
<blockquote class="history-quote-1554969498636" data-history-expanded="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px; padding-left:5px; direction:ltr; margin-right:0px" ><font size="3" >Regards,</font><br><font size="3" >Kun</font></blockquote>
<div dir="ltr" > </div></div></div><BR>