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 文件将被更改以反映此新的调度器以及其他现有的调度器。由于这是一个新的调度器,因此不会更改任何现有组件,只会将有关如何启用和配置此调度器的额外信息添加到文档中。

参考资料