Ceilometer/blueprints/publisher-counters-frequency
- Launchpad 条目: CeilometerSpec:publisher-counters-frequency
- 创建时间: 2013年01月05日
- 贡献者: yunhong jiang
总结
不同的发布者可能对计数器有不同的间隔要求。例如,计量器可能需要10分钟的间隔,而监控器可能需要1分钟的间隔。
发布说明
这将支持具有多个发布者的环境的不同频率。
原理
用户故事
前提条件
设计
这只是此功能的一个可能设计(请记住这一点)。
1. pollster 将通过 pipeline manager 检查所有 pipeline,以获取 pollster 将发出所有计数器的间隔要求。如果没有间隔要求,则将假定一个默认值。pollster 将基于其所有计数器的间隔要求的 GCD 决定轮询间隔。
2. 与使用周期性任务相比,compute/central 服务将为每个 pollster 基于其轮询间隔创建一个定时器。
Please notice that this in fact requires the pipeline be thread safe. It should be OK for transformer, since the transformer should be CPU workload. However, publishers possibly has I/O and possibly have issues in thread situation. But in green-thread situation, it should be OK.
3. 提供一个间隔转换器来支持不同的间隔。考虑资源_1的计数器序列为“c0, c1, c2, c3...”,并且 c3 在 c0 之后发生“间隔时间”。转换器将发布 c0, c3,同时丢弃 c1, c2。转换器将为每个资源_id 的每个计数器_name 保留信息。需要特别考虑抖动和计数器丢失的情况。
实现
本节应描述实施所讨论更改的行动计划(“如何”)。可以包括诸如
UI 变更
UI 更改包括 pipeline.yaml 配置文件以及传递给转换器的参数。
存在几种选项
1) 间隔指定跟随计数器名称
---
-
counters:
- counter_1:interval_1
- counter_2:interval_2
transformers:
-
name: Transformer_1
parameters:
p1: value
publishers:
- publisher_1
- publisher_2
-
counters:
- counter_3:interval_3
- counter_4:interval_4
transformers:
-
name: Transformer_2
parameters:
p1: value
publishers:
- publisher_1
- publisher_2
2) 明确指定一个间隔转换器,并将计数器名称和相应的间隔作为参数。
---
-
counters:
- counter_1
- counter_2
transformers:
-
name: Transformer_1
parameters:
p1: value
-
name: Interval_transformer
parameters:
counter_1:interval_1
counter_2:interval_2
publishers:
- publisher_1
- publisher_2
-
counters:
- counter_3
- counter_4
transformers:
-
name: Transformer_2
parameters:
p1: value
-
name: Interval_transformer
parameters:
counter_3:interval_3
counter_4:interval_4
publishers:
- publisher_1
- publisher_2
代码变更
如果我们使用选项 1) 进行 UI 更改,则需要一个间隔转换器,pipeline manager 将解码配置,在内部创建间隔转换器,并将其附加到 pipeline 的转换器列表的头部。事实上,在这种情况下,我们也可以将间隔转换器逻辑合并到 pipeline 本身,但这在我看来不够清晰。
如果我们使用选项 2),则只需要一个间隔转换器。在这种情况下,interval_transformer 需要一个特殊的 API 来咨询计数器的间隔时间,因为 pipeline manager 将不知道它。
个人而言,我更喜欢选项 2,因为它将更加灵活。例如,一个特殊的扩展间隔转换器可以咨询一些配置选项来决定间隔,或者检查 hyper-visor 类型来决定间隔。
迁移
包括
- 数据迁移(如果有)
- 从旧 URL 到新 URL 的重定向(如果有)
- 如何引导用户使用新的操作方式(如果需要)。
测试/演示计划
这不必在规范接近 Beta 之前添加或完成。
未解决的问题
这应该突出显示需要在进一步的规范中解决的任何问题,而不是规范本身的问题;因为任何存在问题的规范都无法获得批准。
BoF 议程和讨论
使用本节记录 BoF 期间的笔记;如果将其保留在批准的规范中,请用于总结讨论内容并记录任何被拒绝的选项。