一、Agent

  主要有compute agent 和central agent,还有一些其他的agent这里暂时不分析。

  agent初始化时会动态加载给定namespace的pollster插件,并通过PollingTask管理pollster的调用,为每个pollster配置pipeline。pollster可以通过调用inspector采集虚拟机中的信息,inspector主要采用底层虚拟化手段获得虚拟机信息,例如通过libvirt;pollster也可以通过openstack服务的API采集数据。最后,pollster通过pipeline对采集到的数据进行处理和分发,pipeline包括transformer和publisher,前者负责数据转换,后者负责数据分发。

二、Collector

  负责订阅并汇总数据,主要提供RPC监听和UDP监听,接受agent发送过来的数据。它会将数据存到数据库中,底层一般使用mongodb。如下图所示:

ceilometer主要组件分析-LMLPHP

三、API

  主要对外提供数据的访问接口。

四、Alarm

  暂时不分析!

参考文献:

http://docs.openstack.org/developer/ceilometer/architecture.html

http://yansu.org/2013/06/11/hacking-in-openstack-ceilometer-compute-agent.html

http://blog.csdn.net/gaoxingnengjisuan/article/details/41631547

05-11 09:25