开篇之前列出随处能见到的ceilometer Architecture pic,方便在代码中找到对应的模块.
在分析代码之前,其目录结构相对清晰明了!看到每个dir能知道大概是啥用途而且在Arc里面能找到起模块,不过里面有publisher、transformer这两个dir在Arc里面找不到的,如果对Ceilometer 之前有做过了解的话,OpenStack official wiki里边是有相应的描述,先简单的可以理解为meter(Agent?)->transfer->publisher->receiver
前面的原理知识谷哥比我了解,记下自己的思路!
在分析前也做个不同的尝试,
1、从api 每个动作一步步到数据的收集
2、从数据收集到一步步提供数据
实际上上面的方法都有不妥的地方,因为最终数据到达了Database,API和每个模块数据的采集某个观角度来说关系貌似不是特别大,所以分析可以分成1\ api->database, 2\ database-> modules 这两个大块
Okay~ 上代码
1、
2、
这里只是列举了CPU,其它的module都是一个原理。
这里到了Publisher了?!!
不会这么快,还只是将要用的数据要上来sample数据,要transformation->Publisher还早
暂停。。。
但是这图把我上面的所讲的,ceilometer源码分析分两大块这个思路给推翻了!