1、Agenthtml
主要有compute agent 和central agent,还有一些其余的agent这里暂时不分析。mongodb
agent初始化时会动态加载给定namespace的pollster插件,并经过PollingTask管理pollster的调用,为每一个pollster配置pipeline。pollster能够经过调用inspector采集虚拟机中的信息,inspector主要采用底层虚拟化手段得到虚拟机信息,例如经过libvirt;pollster也能够经过openstack服务的API采集数据。最后,pollster经过pipeline对采集到的数据进行处理和分发,pipeline包括transformer和publisher,前者负责数据转换,后者负责数据分发。数据库
2、Collectorspa
负责订阅并汇总数据,主要提供RPC监听和UDP监听,接受agent发送过来的数据。它会将数据存到数据库中,底层通常使用mongodb。以下图所示:.net
3、API插件
主要对外提供数据的访问接口。orm
4、Alarmhtm
暂时不分析!blog
参考文献:接口
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