Ceilometer/blueprints/multi-publisher
- Launchpad 条目: CeilometerSpec:multi-publisher
- 创建时间: 2012年12月05日
- 贡献者: Yunhong Jiang
总结
Ceilometer 中的多个发布者将收集到的测量数据转换为不同的格式,例如计量、指标等,并通过不同的通道(例如 RPC、UDP 等)发布到不同的目标,例如数据存储、synaps 等。
为了支持不同发布者的不同需求,将一组转换器组织成管道,将数据从计数器转换为计量、指标等。
发布说明
原理
用户故事
磁盘使用数据通过消息总线作为计量发布到 ceilometer 收集器,并通过 PutMetricData API 作为指标发布到 synaps。
计量系统以每 vnic 的使用信息形式发布网络使用数据,而 CW 将网络使用数据作为一个整体发布。
前提条件
设计
这只是此功能的一种可能设计(请记住这一点)。
支持多个发布者的五个组件:数据收集器、转换器、发布者和管道、管道管理器。
- 数据收集器从其他 OpenStack 项目收集测量数据。目前 ceilometer 中有两种类型的数据收集器:pollster 和通知处理程序。
- 转换器将数据从数据收集器或来自其他转换器进行转换。它们可以更改计数器名称,转换为另一种数据格式,删除一些数据等。
- 发布者通过通道将数据发布到世界。
- 管道是一个逻辑组件,将数据收集器、转换器和发布者连接在一起,以便测量数据从不同的数据收集器流向不同的发布者。系统中存在多个管道。
- 管道管理器管理系统中的管道。系统中只有一个管道管理器。从收集器收集到的测量数据将被分发到管道管理器。
实现
以下是管道定义。
顶层是管道定义数组。
每个管道项定义一个目标计数器列表、一个包含其对应参数(作为字典)的转换器列表以及发布者。
[
{
"counter_names" : ["counter_1", "counter_2"],
"tranformers":[
{"Transformer_name": "Transformer_1",
"Transformer_param": {}},
{"Transformer_name": "Transformer_2",
"Transformer_param": {}}
],
"publishers": ["publisher_1", "publisher_2"]
},
{
"counter_names" : ["counter_3", "counter_4"],
"tranformers": [
{"Transformer_name": "Transformer_1",
"Transformer_param": {}},
{"Transformer_name": "Transformer_2",
"Transformer_param": {}}
],
"publishers": ["publisher_1", "publisher_2"]
}
]
目标计数器名称格式:“*”、“counter_name”或“!counter_name”。它来自 Counter 命名元组中的“name”字段。
Transformer_name 来自 setup.py 中的命名空间定义。
Publisher_name 来自 setup.py 中的命名空间定义。
UI 变更
用户应提供一个用于管道定义的配置文件。目前我们支持 yaml 文件格式。
YAML 中的另一种语法可能是
---
-
counters: counter_1, counter_2
transformers:
-
name: Transformer_1
parameters:
p1: value
publishers:
- publisher_1
- publisher_2
-
counters: counter_3, counter_4
transformers:
-
name: Transformer_2
parameters:
p1: value
publishers:
- publisher_1
- publisher_2
或者更简洁地
- counters: counter_1, counter_2
publishers: [publisher_1, publisher_2]
transformers:
- name: Transformer_1
parameters: {p1: value}
- counters: counter_3, counter_4
publishers: [publisher_1, publisher_2]
transformers:
- name: Transformer_2
parameters: {p1: value}
代码变更
对代理管理器、中央管理器、收集服务进行更改,以加载转换器和发布者,以设置管道管理器。
添加转换器、发布者等的实现。
迁移
包括
- 数据迁移(如果有)
- 从旧 URL 到新 URL 的重定向(如果有)
- 如何引导用户使用新的操作方式(如果需要)。
测试/演示计划
这不必在规范接近 Beta 之前添加或完成。
未解决的问题
这应该突出显示需要在进一步的规范中解决的任何问题,而不是规范本身的问题;因为任何存在问题的规范都无法获得批准。
BoF 议程和讨论
使用本节记录 BoF 期间的笔记;如果将其保留在批准的规范中,请用于总结讨论内容并记录任何被拒绝的选项。