Http Dispatcher 规范¶
https://blueprints.launchpad.net/ceilometer/+spec/http-dispatcher
Ceilometer 调度器框架允许开发和配置各种调度器,从而使 Ceilometer 度量目的地完全可配置。目前 Ceilometer 有两个可用的调度器,这两个调度器用于将 Ceilometer 度量值保存到数据库或类似日志的文件中。在某些应用中,需要将度量值或过滤后的度量值发送到其他第三方系统,特别是使用 http 协议。本规范提供了使用 http 协议的 Ceilometer 调度器的规范。
问题描述¶
用例如下:企业监控系统 QRadar 需要捕获 OpenStack keystone 中发生的操作,例如用户创建、删除、登录等。Keystone 将这些活动发布到 OpenStack 消息队列,Ceilometer 收集器最终收集这些消息并将其转换为度量值,然后通过 http post 请求将这些度量值发送到 QRadar。一旦度量值通过 http post 请求发布到 QRadar,QRadar 将分析这些度量值并采取相应的行动。
提议的变更¶
应该在 Ceilometer/dispatcher 包中添加一个新的调度器,该调度器将通过继承 dispatcher.Base 类并实现 record_metering_data 方法以及一些调度器特定的配置参数来命名为 HttpDispatcher。record_metering_data 方法会将度量值包装在 JSON 格式中,并使用 HTTP POST 方法将其发布到目标。http 请求内容类型应为 application/json。如果未定义发布目标,则应记录错误。发布请求应使用可配置的时间来确定连接是否应超时。实现文件应命名为 http.py,以便保持模块命名模式的一致性。如果度量数据包含审计信息 (CADF),则将发送审计消息而不是度量值本身,因为度量值中的大部分信息将重复审计信息。
替代方案¶
开发一个代理并从数据库读取数据,但影响是数据会保存到数据库中,但目标是将度量信息保存到与 Ceilometer 集成的系统中。
开发一个代理从队列读取数据,但需要更多的代码来完成。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
Pipeline 影响¶
无
其他最终用户影响¶
无
性能/可扩展性影响¶
无
其他部署影响¶
无
开发者影响¶
无
实现¶
负责人¶
李童 (IBM)
- 主要负责人
litong01
- 其他贡献者
无
- 持续维护者
李童
工作项¶
Http 调度器
关于如何配置此调度器的文档
测试用例
未来生命周期¶
无
依赖项¶
不需要新的依赖项。它只需要 requests, oslo.config,它们一直是该项目的常用依赖项。
测试¶
将在 ceilometer/tests/dispatcher/test_http.py 中添加 Tempest 测试。这些测试用例可以在 gate 或开发环境中本地调用。
文档影响¶
/doc/source/install/manual.rst 文件将被更改以反映此新的调度器以及其他现有的调度器。由于这是一个新的调度器,因此不会更改任何现有组件,只会将有关如何启用和配置此调度器的额外信息添加到文档中。
参考资料¶
无