ceilometer的系统架构

我们要知道的是,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存储数据

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,351评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,697评论 19 139
  • 高并发平台架构 设计理念 1. 空间换时间 多级缓存,静态化前端页面缓存(HTTP Header中包含Expire...
    AkaTBS阅读 3,090评论 0 13
  • WebApp与Native App的区别 Native App: 1、开发成本非常大。一般使用的开发语言为JAVA...
    张小窝阅读 4,607评论 3 4
  • 从《一个人的好天气》到这本《温柔的叹息》,青山七惠延续了她一贯的写作风格,文艺点叫小清新,通俗一点说,或许是寡淡,...
    小小小诗呀阅读 391评论 4 5

友情链接更多精彩内容