Ceilometer 源码学习 - API#

ceilometer API是基于HTTP协议,使用JSON格式的RESTful API。

1.入口

console_scripts =
    ceilometer-api = ceilometer.cmd.api:main
    ...

2. ceilometer.cmd.api:main

在ceilometer/cmd/collector.py 文件中找到该函数,如下:

def main():
    service.prepare_service()
    app.build_server()

3. 启动组件

def build_server():
    app = load_app()
    ...
    serving.run_simple(cfg.CONF.api.host, cfg.CONF.api.port,
                       app, processes=CONF.api.workers)

4.注意点:

  pecan.decorators.expose(template=None,
                          content_type='text/html',
                          generic=False)

其中template参数用来指定返回值的模板,如果是’json’就会返回JSON内容,这里可以指定一个HTML文件,或者指定一个mako模板。

content_type指定响应的content-type,默认值是’text/html’。

generic参数表明该方法是一个“泛型”方法,可以指定多个不同的函数对应同一个路径的不同的HTTP方法。

Table of Contents