讀古今文學網 > OpenStack系統架構設計實戰 > 5.2 Ceilometer計量數據採集機制 >

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)幾個步驟,各個步驟有著各自的處理流程。