首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》5.2 Ceilometer计量数据采集机制

关灯直达底部

5.2.1 概述

Ceilometer可以通过如下3种方式获取计量数据。

1.通知

所有的OpenStack服务都会在执行了某种操作或者状态变化时发送通知消息到oslo-messaging(OpenStack整体的消息队列框架),一些消息中包含了计量所需要的数据,这部分消息会被Ceilometer的ceilometer-agent-notification服务组件处理,并转化为samples。通知数据采集方式是被动地采集计量数据。

2.轮询

Ceilometer中的服务组件根据配置定期主动地通过OpenStack服务的API或者其他辅助工具(如Hypervisors)去远端或本地的不同服务实体中获取所需要的计量数据;Ceilometer的轮询机制通过3种类型的代理实现,即ceilometer-agent-central、ceilometer-agent-compute和ceilometer-agent-ipmi服务组件。在K版本中,这些代理都属于ceilometer-polling,不同的是,每种代理使用不同的轮询插件(pollster)从不同的命名空间来收集数据。

3.RESTful API

用户可以通过调用Ceilometer RESTful API,直接把利用其他方式获取的任意计量数据送达给Ceilometer。

Ceilometer通过上述方法获取测量值数据后,会把它转化为符合某种标准格式的数据采样(Sample),然后用流水线来对数据采样进行转换(Transform)和发布(Publish)。Collector会把发布的数据采样保存到数据库中,Ceilometer的数据采集及处理逻辑如图5-2所示。

Ceilometer的计量数据经过数据采集(agent)、数据处理(流水线数据转换及发布)、数据存储(collector)几个步骤,各个步骤有着各自的处理流程。