Ceilometer获得的测量数据通过Pipeline发布后,需要有一个数据接收者获得这些数据并且保存下来,以便对数据进行进一步的处理。Ceilometer的collector服务就是用来接收这些测量数据的,并最终持久化到存储介质中。collector服务的架构如图5-4所示。
collector服务可以配置一个或多个dispatcher,对于每一个collector所接收到的采样数据,collector会调用所有配置的dispatcher,由这些dispatcher来决定如何处理数据。目前已有3个dispatcher。
图5-4 collector服务的架构
1)Database dispatcher:把采样数据保存到后台数据库中。目前支持的存储包括MongoDB、MySQL、PostgreSQL、HBase、DB2、ElasticSearch(events only)。
2)File dispatcher:把采样数据以log的形式保存在文件中。
3)HTTP dispatcher:通过HTTP将采样数据发送到外部系统。
除了已有dispatcher之外,也可以通过实现ceilometer.dispatcher.Base类来开发特殊的dispatcher。具体可以参见ceilometer源码中ceilometer/dispatcher/_init_.py文件中的Base类的定义。