程序员

ceilometer的系统架构

2018-03-13  本文已影响23人  黑加仑妞

我们要知道的是,ceilometer的服务是可以水平扩展的,其中最主要的两个服务是polling agent和notification agent

前者是为了轮询openstack的服务,并且建立计量值,比方说CPU运行的时间、磁盘接收到的请求量等等。

后者主要是为了监听消息队列,然后将监听到的消息转化成sample和event,并且根据pipeline.yaml中配置的信息做不同的处理。

所以,ceilometer主要有收集数据,转化数据,分发数据,存储数据五个过程:

一、收集数据

收集数据的总的流程图如上图所示,但是根据上面说到的,收集数据的流程又可以进一步的再细分为两个部分

(1)notification agent:监听数据

监听数据的过程如上图所示,我们可以看到notification agent消费来自其他服务的消息,启动一个notification agent主进程时,可以再创建多个子进程去处理不同的消息。

(2)ponning agent:请求数据

轮询数据的过程如上图所示,polling agent又可以细分成在计算节点上获取数据,和非计算节点上获取数据,前者称为compute agent,后者称为central agent,其中现在项目中主要用的是后者,他可以通过调用API来获取数据。其中,创建一个polling agent的主进程,可以相应的创建多个子进程,放在项目代码里面就是可以配置多个pollsters.

处理数据的这一整个过程也是通过notification agent完成的,其中处理数据又分为转化数据,分发数据和存储数据。

二、转化数据

转化数据如上图所示,通过上面的采集过程之后,我们得到许多数据,但是数据并不一定符合要求,所以我们可以根据pipeline.yaml中的配置,在管道中将采集到的数据进行进一步的转化。

三、分发数据

分发数据如上图所示,我们采集到的数据可以把它们送到不同的地方,现在主要有以下几种方式:

1、gnocchi,送到Gnocchi api

2、 notifier,通过notifier,送到消息队列,共外部系统使用

3、 udp,使用UDP包的方式分发

4、 http,送到REST 接口

5、 file,存储到指定文件

四、存储数据

ceilometer推荐使用gnocchi存储数据

上一篇 下一篇

猜你喜欢

热点阅读