<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
p.gmail-m1275227641964777196msolistparagraph, li.gmail-m1275227641964777196msolistparagraph, div.gmail-m1275227641964777196msolistparagraph
        {mso-style-name:gmail-m_1275227641964777196msolistparagraph;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        color:#002060;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:121313931;
        mso-list-template-ids:-439981178;}
@list l0:level1
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:377969958;
        mso-list-template-ids:-1396804056;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2
        {mso-list-id:565802229;
        mso-list-template-ids:937876330;}
@list l2:level1
        {mso-level-start-at:3;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3
        {mso-list-id:706954331;
        mso-list-template-ids:1269048082;}
@list l3:level1
        {mso-level-start-at:2;
        mso-level-number-format:alpha-lower;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level3
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level4
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level6
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level7
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l3:level9
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#002060">Just sent email for participation. Let’s discuss specific requirements and come up with proposal.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#002060">Neeraj<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#002060"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:windowtext">From:</span></b><span style="color:windowtext"> vishwa <vishwa@linux.vnet.ibm.com>
<br>
<b>Sent:</b> Friday, May 17, 2019 11:26 AM<br>
<b>To:</b> Kun Yi <kunyi@google.com><br>
<b>Cc:</b> Neeraj Ladkani <neladk@microsoft.com>; OpenBMC Maillist <openbmc@lists.ozlabs.org><br>
<b>Subject:</b> Re: BMC health metrics (again!)<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>This is great !!<o:p></o:p></p>
<p>Neeraj / Kun, Were you guys planning on putting an initial proposal ?<o:p></o:p></p>
<p>!! Vishwa !!<o:p></o:p></p>
<div>
<p class="MsoNormal">On 5/17/19 9:20 PM, Kun Yi wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">I'd also like to be in the metric workgroup. Neeraj, I can see the first and second point you listed aligns with my goals in the original proposal very well.<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Fri, May 17, 2019 at 12:28 AM vishwa <<a href="mailto:vishwa@linux.vnet.ibm.com">vishwa@linux.vnet.ibm.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p>IMO, we could start fresh here. The initial thought was an year+ ago.<o:p></o:p></p>
<p>!! Vishwa !!<o:p></o:p></p>
<div>
<p class="MsoNormal">On 5/17/19 12:53 PM, Neeraj Ladkani wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-family:"Arial",sans-serif">Sure thing. Is there an design document that exist for this feature ?
<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-family:"Arial",sans-serif">I can volunteer to drive this work group if we have quorum.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-family:"Arial",sans-serif">Neeraj
<o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif">Get <a href="https://aka.ms/ghei36" target="_blank">
Outlook for Android</a><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="2" width="98%" align="center">
</div>
<div id="gmail-m_1275227641964777196divRplyFwdMsg">
<p class="MsoNormal"><b>From:</b> vishwa <a href="mailto:vishwa@linux.vnet.ibm.com" target="_blank">
<vishwa@linux.vnet.ibm.com></a><br>
<b>Sent:</b> Friday, May 17, 2019 12:17:51 AM<br>
<b>To:</b> Neeraj Ladkani; Kun Yi; OpenBMC Maillist<br>
<b>Subject:</b> Re: BMC health metrics (again!) <o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<p>Neeraj,<o:p></o:p></p>
<p>Thanks for the inputs. It's nice to see us having a similar thought.<o:p></o:p></p>
<p>AFAIK, we don't have any work-group that is driving <span style="color:windowtext">
“Platform telemetry and health monitoring”. Also, do we want to see this as 2 different entities ?. In the past, there were thoughts about using websockets to channel some of the thermal parameters as telemetry data. But then it was not implemented.</span><o:p></o:p></p>
<p><span style="color:windowtext">We can discuss here I think.</span><o:p></o:p></p>
<p><span style="color:windowtext">!! Vishwa !!</span><o:p></o:p></p>
<div>
<p class="MsoNormal">On 5/17/19 12:00 PM, Neeraj Ladkani wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext">At cloud scale, telemetry and health monitoring is very critical. We should define a framework that allows platform owners to add their own telemetry
 hooks. Telemetry service should be designed to make this data accessible and store in resilient way (like blackbox during plane crash).  </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext">Is there any workgroup that drives this feature “Platform telemetry and health monitoring” ?
</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext">Wishlist</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext">BMC telemetry :
</span><o:p></o:p></p>
<ol start="1" type="1">
<li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level1 lfo1">
Linux subsystem<o:p></o:p></li></ol>
<ol start="1" type="1">
<ol start="1" type="a">
<li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo1">
Uptime<o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo1">
CPU Load average<o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo1">
Memory info<o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo1">
Storage usage ( RW )  <o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo1">
Dmesg<o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo1">
Syslog <o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo1">
FDs of critical processes <o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo1">
Alignment traps <o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo1">
WDT excursions <o:p></o:p></li></ol>
</ol>
<ol start="2" type="1">
<li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level1 lfo1">
IPMI subsystem<o:p></o:p></li></ol>
<ol start="2" type="1">
<ol start="1" type="a">
<li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo2">
Request and Response logging par interface with timestamps ( KCS, LAN, USB)<o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l1 level2 lfo2">
Request and Response of IPMB<o:p></o:p></li></ol>
</ol>
<p class="gmail-m1275227641964777196msolistparagraph" style="margin-left:1.5in"><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:windowtext">                                                              
</span><span style="color:windowtext">i.      Request , Response, No of Retries</span><o:p></o:p></p>
<ol start="3" type="1">
<li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l2 level1 lfo3">
Misc<o:p></o:p></li></ol>
<ol start="1" type="a">
<li class="gmail-m1275227641964777196msolistparagraph" style="color:windowtext;mso-list:l0 level1 lfo4">
Critical Temperature Excursions <o:p></o:p></li></ol>
<p class="gmail-m1275227641964777196msolistparagraph" style="margin-left:1.5in"><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:windowtext">                                                              
</span><span style="color:windowtext">i.      Minimum Reading of Sensor</span><o:p></o:p></p>
<p class="gmail-m1275227641964777196msolistparagraph" style="margin-left:1.5in"><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:windowtext">                                                            
</span><span style="color:windowtext">ii.      Max Reading of a sensor</span><o:p></o:p></p>
<p class="gmail-m1275227641964777196msolistparagraph" style="margin-left:1.5in"><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:windowtext">                                                          
</span><span style="color:windowtext">iii.      Count of state transition</span><o:p></o:p></p>
<p class="gmail-m1275227641964777196msolistparagraph" style="margin-left:1.5in"><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:windowtext">                                                          
</span><span style="color:windowtext">iv.      Retry Count</span><o:p></o:p></p>
<ol start="2" type="a">
<li class="gmail-m1275227641964777196msolistparagraph" style="mso-list:l3 level1 lfo5">
Count of assertions/deassertions of GPIO and ability to capture the state<o:p></o:p></li><li class="gmail-m1275227641964777196msolistparagraph" style="mso-list:l3 level1 lfo5">
timestamp of last assertion/deassertion of GPIO<o:p></o:p></li></ol>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext">Thanks</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext">~Neeraj</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:windowtext"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><b><span style="color:windowtext">From:</span></b><span style="color:windowtext"> openbmc
<a href="mailto:openbmc-bounces+neladk=microsoft.com@lists.ozlabs.org" target="_blank">
<openbmc-bounces+neladk=microsoft.com@lists.ozlabs.org></a> <b>On Behalf Of </b>vishwa<br>
<b>Sent:</b> Wednesday, May 8, 2019 1:11 AM<br>
<b>To:</b> Kun Yi <a href="mailto:kunyi@google.com" target="_blank"><kunyi@google.com></a>; OpenBMC Maillist
<a href="mailto:openbmc@lists.ozlabs.org" target="_blank"><openbmc@lists.ozlabs.org></a><br>
<b>Subject:</b> Re: BMC health metrics (again!)</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p>Hello Kun,<o:p></o:p></p>
<p>Thanks for initiating it. I liked the /proc parsing. On the IPMI thing, is it only targeted to IPMI -or- a generic BMC-Host communication kink ?<o:p></o:p></p>
<p>Some of the things in my wish-list are:<o:p></o:p></p>
<p>1/. Flash wear and tear detection and the threshold to be a config option<br>
2/. Any SoC specific health checks ( If that is exposed )<br>
3/. Mechanism to detect spurious interrupts on any HW link<br>
4/. Some kind of check to see if there will be any I2C lock to a given end device<br>
5/. Ability to detect errors on HW links<o:p></o:p></p>
<p>On the watchdog(8) area, I was just thinking these:<o:p></o:p></p>
<p>How about having some kind of BMC_health D-Bus properties -or- a compile time feed, whose values can be fed into a configuration file than watchdog using the default /etc/watchdog.conf always. If the properties are coming from a D-Bus, then we could either
 append to /etc/watchdog.conf -or- treat those values only as the config file that can be given to watchdog.<br>
The systemd service files to be setup accordingly.<o:p></o:p></p>
<p><br>
We have seen instances where we get an error that is indicating no resources available. Those could be file descriptors / socket descriptors etc. A way to plug this into watchdog as part of test binary that checks for this ? We could hook a repair-binary to
 take the action.<o:p></o:p></p>
<p><br>
Another thing that I was looking at hooking into watchdog is the test to see the file system usage as defined by the policy.<br>
Policy could mention the file system mounts and also the threshold.<br>
<br>
For example, /tmp , /root etc.. We could again hook a repair binary to do some cleanup if needed<br>
<br>
If we see the list is growing with these custom requirements, then probably does not make sense to pollute the watchdog(2) but<br>
have these consumed into the app instead ?<o:p></o:p></p>
<p>!! Vishwa !!<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">On 4/9/19 9:55 PM, Kun Yi wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Hello there,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">1. Monitoring host IPMI link reliability (host side)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">2. Read and expose core BMC performance metrics from procfs<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">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 :)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">If this seems valuable, after gathering more feedback of feature requirements, I'm going to turn them into design docs and upload for review.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">--
<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Regards,
<o:p></o:p></p>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto">Kun<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal">-- <o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">Regards, <o:p></o:p></p>
<div>
<p class="MsoNormal">Kun<o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
</div>
</body>
</html>