一、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。如下图所示:
三、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