讀古今文學網 > OpenStack系統架構設計實戰 > 5.2.4 計量數據存儲 >

5.2.4 計量數據存儲

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類的定義。