跳转到: 导航, 搜索

Ceilometer/blueprints/pollster-swift

pollster-swift 蓝图

用例

  • 提供商希望检索 Swift 使用情况数据以向其客户计费
  • 客户希望监控其 Swift 使用情况

提议的实现方案

以下是需要收集的第一个计量表列表,以便计费系统能够对 Swift 执行其任务。此列表必须能够随着时间的推移进行扩展,并且每个管理员必须能够根据其本地需求启用或禁用每个计量表

计量表名称 优先级 资源 ID 单位 Metadata 类型
o1 storage.objects 必须 swift 账户 ID 对象数量 Gauge(计量表)
o2 storage.objects.size 必须 swift 账户 ID 字节 Gauge(计量表)
o3 storage.objects.containers 必须 swift 账户 ID 容器数量 Gauge(计量表)
o4 storage.containers.objects 可能 容器名称 对象数量 Gauge(计量表)
o5 storage.containers.objects.size 可能 容器名称 字节 Gauge(计量表)
o6 storage.objects.upload.internal 可能 容器名称 请求数量 Delta
o7 storage.objects.download.internal 可能 容器名称 请求数量 Delta
o8 storage.objects.update.internal 可能 容器名称 请求数量 Delta
o9 storage.objects.delete.internal 可能 容器名称 请求数量 Delta
o10 storage.objects.upload.size.internal 可能 容器名称 字节 Delta
o11 storage.objects.download.size.internal 可能 容器名称 字节 Delta
o12 storage.objects.update.size.internal 可能 容器名称 字节 Delta
o13 storage.objects.delete.size.internal 可能 容器名称 字节 Delta
o14 storage.objects.upload.external 可能 容器名称 请求数量 Delta
o15 storage.objects.download.external 可能 容器名称 请求数量 Delta
o16 storage.objects.update.external 可能 容器名称 请求数量 Delta
o17 storage.objects.delete.external 可能 容器名称 请求数量 Delta
o18 storage.objects.upload.size.external 可能 容器名称 字节 Delta
o19 storage.objects.download.size.external 可能 容器名称 字节 Delta
o20 storage.objects.update.size.external 可能 容器名称 字节 Delta
o21 storage.objects.delete.size.external 可能 容器名称 字节 Delta
o22 storage.objects.incoming.bytes 必须 swift 账户 ID 字节 Delta
o23 storage.objects.outgoing.bytes 必须 swift 账户 ID 字节 Delta

计数器 o1 到 o5 必须通过轮询 Swift 实现。

轮询 Swift 有 2 种方法

1. 作为拥有 ResellerAdmin 角色的其中一个租户的用户,通过 swift-proxy 获取令牌

2. 使用环来确定正确的 swift-<type>-server 并直接从其请求信息。swift-account-server 可以提供存储在所有容器中的对象数量和大小,以及容器数量和容器列表。swift-container-server 可以提供每个容器的对象数量和大小。

在第一次实现时,选项 1 应该更简单、更清晰,但会给 Keystone 带来更大的负载。如果实现,可以通过一个选项来选择选项 2。

计数器 o6 到 o21 应该通过 Swift 中间件实现,该中间件统计请求及其大小并定期发布计数器。

为了区分网络,建议我们从使用列出内部网络的配置文件开始实现此功能,默认情况下,该配置文件应列出 A、B 和 C 私有网络类 (RFC 1918)。