跳转到: 导航, 搜索

RaxCeilometerRequirements

我们计划为 Ceilometer 带来以下功能

  1. 在移交给计费(财务部门是我们的主要客户)之前,对 OpenStack 使用情况进行双分录会计验证。
  2. 存储高容量原始通知数据 90 天以上(计划至少存储 20 亿行)。
  3. 对原始数据进行二次聚合/汇总,并支持第三方钩子进入通知管道(模式更改时会比较棘手)。
  4. 通过 PubSubHubBub/Atom 机制(例如 AtomHopper)为下游消费者提供支持。
  5. 监控实例状态,以便进行详细调试和 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 等操作。

其他小问题