<div dir="ltr">Hi Lianhao Lu,<div><br></div><div>I briefly summarized my recollection of that session in this blueprint:</div><div><br></div><div><a href="https://blueprints.launchpad.net/ironic/+spec/add-ceilometer-agent">https://blueprints.launchpad.net/ironic/+spec/add-ceilometer-agent</a><br>

</div><div><br></div><div>I've responded to your questions inline as well.</div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Nov 17, 2013 at 10:24 PM, Lu, Lianhao <span dir="ltr"><<a href="mailto:lianhao.lu@intel.com" target="_blank">lianhao.lu@intel.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi stackers,<br>
<br>
During the summit session Expose hardware sensor (IPMI) data <a href="https://etherpad.openstack.org/p/icehouse-summit-ceilometer-hardware-sensors" target="_blank">https://etherpad.openstack.org/p/icehouse-summit-ceilometer-hardware-sensors</a>, it was proposed to deploy a ceilometer agent next to the ironic conductor to the get the ipmi data. Here I'd like to ask some questions to figure out what's the current missing pieces in ironic and ceilometer for that proposal.<br>


<br>
1. Just double check, ironic won't provide API to get IPMI data, right?<br></blockquote><div><br></div><div>Correct. This was generally felt to be unnecessary.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
2. If deploying a ceilometer agent next to the ironic conductor, how does the agent talk to the conductor? Through rpc?<br></blockquote><div><br></div><div>My understanding is that ironic-conductor will emit messages to the ceilimeter agent, and the communication is one-way. These could be triggered by a periodic task, or by some other event within Ironic, such as a change in the power state of a node. </div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
3. Does the current ironic conductor have rpc_method to support getting generic ipmi data, i.e. let the rpc_method caller specifying arbitrary netfn/command to get any type of ipmi data?<br></blockquote><div><br></div><div>

No, and as far as I understand, it doesn't need one.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
4. I believe the ironic conductor uses some kind of node_id to associate the bmc with its credentials, right? If so, how can the ceilometer agent get those node_ids to ask the ironic conductor to poll the ipmi data? And how can the ceilometer agent extract meaningful information from that node_id to set those fields in the ceilometer Sample(e.g. recource_id, project_id, user_id, etc.) to identify which physical node the ipmi data is coming from?<br>

</blockquote><div><br></div><div>This question perhaps requires a longer answer.</div><div><br></div><div>Ironic references physical machines (nodes) internally with an integer node_id and externally with a standard uuid. When a Nova instance is created, it will be associated to a node, that node will have a reference to the nova instance_uuid which is exposed in our API, and can be passed to Ceilometer's agent. I believe that nova instance_uuid will enable ceilometer to detect the project, user, etc.</div>

<div><br></div><div>Should Ironic emit messages regarding nodes which are not provisioned? Physical machines that don't have a tenant instance on them are not associated to any project, user, tenant, quota, etc, so I suspect that we shouldn't notify about them. It would be like tracking the unused disks in a SAN.</div>

<div><br></div><div>Regards,</div><div>Devananda</div><div><br></div></div></div></div>