RaxCeilometerRequirements
我们计划为 Ceilometer 带来以下功能
- 在移交给计费(财务部门是我们的主要客户)之前,对 OpenStack 使用情况进行双分录会计验证。
- 存储高容量原始通知数据 90 天以上(计划至少存储 20 亿行)。
- 对原始数据进行二次聚合/汇总,并支持第三方钩子进入通知管道(模式更改时会比较棘手)。
- 通过 PubSubHubBub/Atom 机制(例如 AtomHopper)为下游消费者提供支持。
- 监控实例状态,以便进行详细调试和 SLA 跟踪。
这些需求的影响将需要对 Ceilometer 进行更改,具体如下
- 看起来一旦数据被收集,它就会回到另一个 rabbit 队列,供他们的 Collector 处理。它可能会以不同指标的形式多次存储原始数据。例如,存在 Cpu、IP、Disk、Bandwidth 等对象。我不太清楚这与原始 + 汇总数据相比有什么优势。然后,大部分原始数据会被丢弃(我们需要保留它)。要获取实例的完整视图,可能需要进行多次查询(我们需要请求 ID、实例 ID、主机、租户 ID 和时间范围)。
- 需要新的蓝图(在这里开始构思:https://wiki.openstack.org/RichMeters)
- 可能会影响:https://blueprints.launchpad.net/ceilometer/+spec/synaps-dimensional-decomposition
- 各个指标是单独存储的,以便为以后使用数据的其余代码提供通用格式。- dhellmann
- 在深入研究之后,我们需要确定如何将索引应用于元数据中的键……因为这是最终的目的。我稍后会提供 StackTach 数据模型的视频,以便我们可以展示我们正在进行的聚合类型。仍然存在如何存储完整的原始事件(json 有效负载)的问题……这会是一种类型为 String 的 Meter 吗?-S
- 没有双分录会计。它是原始事件,但没有合并。直接轮询 HV 作为第二个来源的问题仍然存在。
- 需要新的蓝图
- Ceilometer Compute Agent 并非与 hypervisor 独立。我们需要对 XenServer 提供支持。此外,我们认为所有这些数据都可以通过现有的通知收集(如果不是,Nova 应该被修复以提供所需的数据)。这质疑了 Compute Agent 最初的需求。
- nova 审计事件的频率低于我们想要的数据分辨率。对于一个长期存在的实例,我们只会收到创建事件,然后一个小时后收到一个“存在”事件。- dhellmann
- 你为什么需要更多?你只是在重复相同的数据。对于带宽(或镜像使用情况)之类的东西,CM 应该采用 Nova 中已有的“usage”框架,或者使用 UDP 广播方案。-sandy
- 我们需要对原始数据进行初始收集后的后处理。我们需要初始收集后的队列,以便为“稳定时间”提供空间,以便让多个 worker 协同工作(否则你会有瓶颈或延迟数据)。
- 我不确定这里“稳定时间”是什么意思。- dhellmann
- 当你有多个 worker 时,事件的顺序没有保证。这意味着你可能会在 .start 之前收到 .end(或者连续收到两个 .start)。就像 TCP 抖动缓冲区一样,你需要给 collector 时间让队列稳定下来,然后再对其进行处理。让事件排队的时间。稳定时间。-Sandy
- 需要支持错误通知并捕获所有 .start/.end 消息的完整状态。目前,可能会出现严重的计数错误。
- 需要新的蓝图
- 我认为之前讨论过这个问题,并且我认为我们正在丢弃出现错误的实例的事件。你是说这导致了计数不足,还是说我们没有正确地丢弃这些事件?- dhellmann
- 我没有在现有的 CM agent 中看到 .error 队列的任何使用。你可能会收到一个 .start,然后收到 .error 队列上的一个事件,但只有 .start 会被看到。-Sandy
- 无论数据库如何,都需要毫秒级的时间分辨率。
- 需要新的蓝图
- 停止使用 nova rpc 机制,该机制无论事件是否被正确处理,都会立即确认。
- kombu 驱动程序似乎在回调被调用并返回没有错误后确认 (https://github.com/openstack/ceilometer/blob/master/ceilometer/openstack/common/rpc/impl_kombu.py#L166) -- dhellmann
- 正确,这很糟糕。-Sandy
- 扩展 API 以包含类似 StackTach 的 KPI 等操作。
其他小问题
- Ceilometer 广泛使用 openstack.common 库……我不确定这真的能给我们带来什么好处。似乎有很多样板代码只是为了使用它。可能会更容易。
- 这在邮件列表中讨论过 http://lists.openstack.org/pipermail/openstack-dev/2013-January/004846.html - dhellmann
- 是的,当 Oslo 成熟时,应该会更轻量级。-Sandy
- 这在邮件列表中讨论过 http://lists.openstack.org/pipermail/openstack-dev/2013-January/004846.html - dhellmann