<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div><br></div>Hello all:<div><br><div><div>Basically, I understand the solution is - <span style="line-height: 1.7;">Our Ironic will implement an IPMI driver(extendable framework for more drivers) to collect hardware sensor data(cpu temp, fan speed, volts, etc) via IPMI protocol from hardware server node, and emit the </span><span style="line-height: 1.7;">AMQP </span><span style="line-height: 1.7;">message to Ceilometer Collector</span><span style="line-height: 1.7;">, Ceilometer have the framework to handle the valid sample message and save to the database for data retrieving by consumer.</span></div><div><br></div><div><span style="line-height: 1.7;">Now, how do you think if we should clearly define the </span><b style="line-height: 1.7;">interface & data model </b><span style="line-height: 1.7;">specifications</span><span style="line-height: 1.7;"> between Ironic and Ceilometer to enable IPMI data collecting, then our two team can start the coding together?</span></div><div><br></div><div>And I still have some concern with our interface and data model as below, the spec need to be discussed and finalized:</div><div><br></div><div>1. What is the Ceilometer sample data mandatory attributes, such as instance_id/tenant_id/user_id/resource_id, if they are not  optional, where are these data populated, from Ironic or Ceilomter side?</div><div><div> </div><div>  <b><i>name/type/unit/volume/<span style="line-height: 1.7;">timestamp</span></i></b><span style="line-height: 1.7;"> - basic sample property, can be populated from Ironic side as data source</span></div><div>  <b><i>user_id/project_id/resource_id</i></b> - Ironic or Ceilometer populate these fields??<span style="line-height: 1.7;">  </span></div><div>  <i><b>resource_metadata - </b>this is for Ceilometer metadata query, Ironic know nothing for such resource metadata I think</i></div><div>  <i><b>source </b></i>- can we hard-code as 'hardware' as a source identifier?</div></div><div><br></div><div>2. Not sure if our Ceilometer only accept the <b>signed-message</b>, if it is case, how Ironic get the message trust for Ceilometer, and send the valid message which can be accepted by Ceilometer Collector?</div><div><br></div><div>3. What is the Ceilometer sample data structure, and what is the min data item set for the IPMI message <span style="line-height: 1.7;">be emitted to Collector?</span></div><div><div>  <b>name/type/unit/volume/</b><span style="line-height: 1.7;"><i><span style="line-height: 1.7;"><b>timestamp/source</b> - is this min data item set?</span></i></span></div><div>  </div></div><div>3. If the detailed data model should be defined for our IPMI data now?, what is our the first version scope, how many IPMI data type we should support? Here is a IPMI data sample list, I think we can support these as a min set.</div><div>  <i><b>Temperature </b>- <span style="line-height: 1.7;">System Temp/</span><span style="line-height: 1.7;">CPU Temp</span></i></div><div><div><i>  <b>FAN </b><span style="line-height: 1.7;"><b>Speed in rpm</b> - FAN 1/2/3/4/A</span></i></div><div><i>  <b>Volts </b>- <span style="line-height: 1.7;">Vcore/</span><span style="line-height: 1.7;">3.3VCC/</span><span style="line-height: 1.7;">12V/</span><span style="line-height: 1.7;">VDIMM/</span><span style="line-height: 1.7;">5VCC/</span><span style="line-height: 1.7;">-12V/</span><span style="line-height: 1.7;">VBAT/</span><span style="line-height: 1.7;">VSB/</span><span style="line-height: 1.7;">AVCC</span></i></div></div><div><br></div><div>4. More specs - such as naming conversions, common constant reference definitions ...</div><div><br></div><div>Just a draft, correct me if I am wrong understanding and add the missing aspects, we can discuss these interface and data model clearly with several rounds:)</div><div><br></div><div><br></div><div>----------------------------------------------------------</div><div><i>Haomeng</i></div><div><i>Thanks:)</i></div><div><br></div><div><br></div><div><div></div><div id="divNeteaseMailCard"></div><br>At 2013-11-21 16:08:00,"Ladislav Smola" <<a href="mailto:lsmola@redhat.com">lsmola@redhat.com</a>> wrote:<br> <blockquote id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
  
    
  
  
    <div class="moz-cite-prefix">Responses inline.<br>
      <br>
      On 11/20/2013 07:14 PM, Devananda van der Veen wrote:<br>
    </div>
    <blockquote cite="mid:CAExZKEqf23Ek1-VpvF4AR-fJhzb2EDTTcd9AJkaKKsN13smJnw@mail.gmail.com" type="cite">
      <div dir="ltr">Responses inline.
        <div><br>
          <div class="gmail_extra">
            <div class="gmail_quote">On Wed, Nov 20, 2013 at 2:19 AM,
              Ladislav Smola <span dir="ltr"><<a moz-do-not-send="true" href="mailto:lsmola@redhat.com" target="_blank">lsmola@redhat.com</a>></span>
              wrote:<br>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Ok,
                I'll try to summarize what will be done in the near
                future for Undercloud monitoring.<br>
                <br>
                1. There will be Central agent running on the same
                host(hosts once the central agent horizontal scaling is
                finished) as Ironic<br>
              </blockquote>
              <div><br>
              </div>
              <div>Ironic is meant to be run with >1 conductor
                service. By i-2 milestone we should be able to do this,
                and running at least 2 conductors will be recommended.
                When will Ceilometer be able to run with multiple
                agents?</div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Here it is described and tracked: <a href="https://blueprints.launchpad.net/ceilometer/+spec/central-agent-improvement">https://blueprints.launchpad.net/ceilometer/+spec/central-agent-improvement</a><br>
    <br>
    <blockquote cite="mid:CAExZKEqf23Ek1-VpvF4AR-fJhzb2EDTTcd9AJkaKKsN13smJnw@mail.gmail.com" type="cite">
      <div dir="ltr">
        <div>
          <div class="gmail_extra">
            <div class="gmail_quote">
              <div><br>
              </div>
              <div>On a side note, it is a bit confusing to call
                something a "central agent" if it is meant to be
                horizontally scaled. The ironic-conductor service has
                been designed to scale out in a similar way to
                nova-conductor; that is, there may be many of them in an
                AZ. I'm not sure that there is a need for Ceilometer's
                agent to scale in exactly a 1:1 relationship with
                ironic-conductor?</div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Yeah we have already talked about that. Maybe some renaming will be
    in place later. :-) I don't think it has to be 1:1 mapping. There
    was only requirement to have "Hardware agent" only on hosts with
    ironic-conductor, so it has access to management network, right?<br>
    <br>
    <blockquote cite="mid:CAExZKEqf23Ek1-VpvF4AR-fJhzb2EDTTcd9AJkaKKsN13smJnw@mail.gmail.com" type="cite">
      <div dir="ltr">
        <div>
          <div class="gmail_extra">
            <div class="gmail_quote">
              <div> </div>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                2. It will have SNMP pollster, SNMP pollster will be
                able to get list of hosts and their IPs from Nova (last
                time I<br>
                    checked it was in Nova) so it can poll them for
                stats. Hosts to poll can be also defined statically in
                config file.<br>
              </blockquote>
              <div><br>
              </div>
              <div>Assuming all the undercloud images have an SNMP
                daemon baked in, which they should, then this is fine.
                And yes, Nova can give you the IP addresses for
                instances provisioned via Ironic.</div>
              <div> </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Yes.<br>
    <br>
    <blockquote cite="mid:CAExZKEqf23Ek1-VpvF4AR-fJhzb2EDTTcd9AJkaKKsN13smJnw@mail.gmail.com" type="cite">
      <div dir="ltr">
        <div>
          <div class="gmail_extra">
            <div class="gmail_quote">
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                3. It will have IPMI pollster, that will poll Ironic
                API, getting list of hosts and a fixed set of stats
                (basically everything<br>
                    that we can get :-))<br>
              </blockquote>
              <div><br>
              </div>
              <div>No -- I thought we just agreed that Ironic will not
                expose an API for IPMI data. You can poll Nova to get a
                list of instances (that are on bare metal) and you can
                poll Ironic to get a list of nodes (either nodes that
                have an instance associated, or nodes that are
                unprovisioned) but this will only give you basic
                information about the node (such as the MAC addresses of
                its network ports, and whether it is on/off, etc).</div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Ok sorry I have misunderstood the:<br>
    "If there is a fixed set of information (eg, temp, fan speed, etc)
    that ceilometer will want,let's make a list of that and add a driver
    interface within Ironic to abstract the collection of that
    information from physical nodes. Then, each driver will be able to
    implement it as necessary for that vendor. Eg., an iLO driver may
    poll its nodes differently than a generic IPMI driver, but the
    resulting data exported to Ceilometer should have the same
    structure."<br>
    <br>
    I thought I've read the data will be exposed, but it will be just
    internal Ironic abstraction, that will be polled by Ironic and send
    directly do Ceilometer collector. So same as the point 4., right?
    Yeah I guess this will be easier to implement.<br>
    <br>
    <blockquote cite="mid:CAExZKEqf23Ek1-VpvF4AR-fJhzb2EDTTcd9AJkaKKsN13smJnw@mail.gmail.com" type="cite">
      <div dir="ltr">
        <div>
          <div class="gmail_extra">
            <div class="gmail_quote">
              <div> </div>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                4. Ironic will also emit messages (basically all events
                regarding the hardware) and send them directly to
                Ceilometer collector<br>
              </blockquote>
              <div><br>
              </div>
              <div>Correct. I've updated the BP:</div>
              <div><br>
              </div>
              <div>
                <a moz-do-not-send="true" 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>Let me know if that looks like a good description.</div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Yeah, seems great. I would maybe remove the word 'Agent', seems
    Ironic will send it directly to Ceilometer collector, so Ironic acts
    as agent, right?<br>
    <br>
    <blockquote cite="mid:CAExZKEqf23Ek1-VpvF4AR-fJhzb2EDTTcd9AJkaKKsN13smJnw@mail.gmail.com" type="cite">
      <div dir="ltr">
        <div>
          <div class="gmail_extra">
            <div class="gmail_quote">
              <div>
                <div><br class="">
                  -Devananda<br>
                </div>
                <div><br>
                </div>
                <div><br>
                </div>
                <blockquote class="gmail_quote" style="margin:0px 0px
                  0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"></blockquote>
              </div>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                <br>
                Does it seems to be correct? I think that is the basic
                we must have to have Undercloud monitored. We can then
                build on that.<br>
                <br>
                Kind regards,<br>
                Ladislav
                <div class="">
                  <div class="h5"><br>
                  </div>
                </div>
              </blockquote>
              <div><br>
              </div>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                <div class="">
                  <div class="h5"><br>
                    On 11/20/2013 09:22 AM, Julien Danjou wrote:<br>
                    <blockquote class="gmail_quote" style="margin:0px
                      0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">On
                      Tue, Nov 19 2013, Devananda van der Veen wrote:<br>
                      <br>
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">If
                        there is a fixed set of information (eg, temp,
                        fan speed, etc) that<br>
                        ceilometer will want,<br>
                      </blockquote>
                      Sure, we want everything.<br>
                      <br>
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">let's
                        make a list of that and add a driver interface<br>
                        within Ironic to abstract the collection of that
                        information from physical<br>
                        nodes. Then, each driver will be able to
                        implement it as necessary for that<br>
                        vendor. Eg., an iLO driver may poll its nodes
                        differently than a generic<br>
                        IPMI driver, but the resulting data exported to
                        Ceilometer should have the<br>
                        same structure.<br>
                      </blockquote>
                      I like the idea.<br>
                      <br>
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">An
                        SNMP agent doesn't fit within the scope of
                        Ironic, as far as I see, so<br>
                        this would need to be implemented by Ceilometer.<br>
                      </blockquote>
                      We're working on adding pollster for that indeed.<br>
                      <br>
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">As
                        far as where the SNMP agent would need to run,
                        it should be on the<br>
                        same host(s) as ironic-conductor so that it has
                        access to the<br>
                        management network (the physically-separate
                        network for hardware<br>
                        management, IPMI, etc). We should keep the
                        number of applications with<br>
                        direct access to that network to a minimum,
                        however, so a thin agent<br>
                        that collects and forwards the SNMP data to the
                        central agent would be<br>
                        preferable, in my opinion.<br>
                      </blockquote>
                      We can keep things simple by having the agent only
                      doing that polling I<br>
                      think. Building a new agent sounds like it will
                      complicate deployment<br>
                      again.<br>
                      <br>
                    </blockquote>
                    <br>
                  </div>
                </div>
              </blockquote>
            </div>
            <br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  

</blockquote></div></div></div></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>