<div dir="ltr"><br><div class="gmail_extra">On Mon, Nov 18, 2013 at 9:40 AM, Doug Hellmann <span dir="ltr"><<a href="mailto:doug.hellmann@dreamhost.com" target="_blank">doug.hellmann@dreamhost.com</a>></span> wrote:<br>

<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-size:small"><br></div><div class="gmail_extra"><div class="gmail_quote">

<div class="im">On Mon, Nov 18, 2013 at 12:25 PM, Devananda van der Veen <span dir="ltr"><<a href="mailto:devananda.vdv@gmail.com" target="_blank">devananda.vdv@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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" target="_blank">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"><div>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><div>Correct. This was generally felt to be unnecessary.</div><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><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></div></blockquote><div><br></div></div><div><div style="font-size:small">Cool, so this eliminates the need for a separate agent. The ceilometer work can be done in the collector, to receive the new messages.</div>


<br></div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><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>


<div>

No, and as far as I understand, it doesn't need one.</div></div></div></div></blockquote><div><br></div></div><div><div style="font-size:small">It would only need that if we were going to poll for the data, but if ironic is emitting notifications then we don't have to do that.</div>


<br></div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><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><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></div></div></blockquote><div><br></div></div><div><div style="font-size:small">If ironic has those values (at least the project), and can include them in the notification payload, that will make processing the incoming notifications significantly less expensive.</div>

</div></div></div></div></blockquote><div><br></div><div>We can take a look as we get closer to completing this. Ironic doesn't know anything about projects today, but we may be able to pass the project_id in from Nova and cache it as a node property for the duration of the instance, if that's an important optimization.</div>

<div><br></div><div>-D</div></div></div></div>