Ceilometer/blueprints/vmware-vcenter-server
< Ceilometer | blueprints
对 VMware vCenter Server 的支持
虽然 Nova 提供了对 VMware vCenter Server 的支持,但 Ceilometer 却没有。它不会收集部署在 VMware 虚拟化平台上的虚拟机的指标。因此,有必要扩展 Ceilometer 的此支持。目标是实现一个轮询代理,从 VMware vCenter Server 查询样本
- 用于现有的计量单位。
- 在 Ceilometer 中创建新的计量单位,用于 VMware vCenter Server 提供的的数据。
架构决策
插件的性质
Ceilometer 代理可以是以下类型之一(有关更多详细信息,请参阅 此处)
- 总线监听代理 - 被监控的产品本身生成事件并在 Oslo 通知总线上发布,Ceilometer 将从中提取事件。
- 推送代理 - 位于被监控的产品旁边,从产品获取数据并将其推送到总线上。
- 轮询代理 - 位于被监控的产品外部,轮询其公开的一些 API 并将其通信给 Ceilometer 收集代理。
对于总线监听或推送代理,我们需要对 VC 进行更改以推送/发布性能样本,这是不可能的。因此,我们正在采用 轮询代理 范例,其中我们有一个 pollster 用于从 VC 查询“性能”统计信息。pollster 将被插入到 Ceilometer 插件的现有框架中。
执行 VC API
- Pysphere、PyVmomi 由于许可问题目前不是一个选项。
- VC 的 Nova 驱动程序使用 SUDS(一个 SOAP 客户端)库来执行 VC API。vSphere WSDL 定义作为输入提供给 SUDS,它负责将响应编组为 Python 对象。
- 相同的实用程序文件被 VMware 驱动程序用于 Cinder 和 Glance。目前,由于缺乏通用模块,每个模块都复制了文件。因此,Ceilometer 的 VMware 驱动程序也必须这样做。
- 目前正在进行一项内部工作,以将实用程序提取到通用模块。在可用之后,所有 VMware 驱动程序都将开始使用通用模块中的实用程序。
Ceilometer 指标与 VC 计数器的映射
| 否。 |
姓名 |
类型 |
单位 |
VC 计数器 |
VC 单位 |
转换因子 |
VC 级别 |
笔记 |
| 1 |
instance |
Gauge(计量表) |
instance |
-- |
|
-- |
|
无需从 VC 实际映射即可计算 |
| 2 |
instance:<type> |
Gauge(计量表) |
instance |
-- |
|
-- |
|
无需从 VC 实际映射即可计算 |
| 3 |
memory |
Gauge(计量表) |
MB |
mem.consumed.average |
KB |
除以 1024 |
1 |
|
| 4 |
cpu |
累积 |
纳秒 |
使用 cpu.Usagemhz.average 计算 |
Mhz |
乘以采样间隔 |
1 |
|
| 5 |
cpu_util |
Gauge(计量表) |
% |
cpu.usage.average |
percent |
1 |
1 |
|
| 6 |
vcpus |
Gauge(计量表) |
vcpu |
cpu.corecount.provisioned.average |
number |
1 |
1 |
|
| 7 |
disk.read.requests |
累积 |
request |
disk.numberReadAveraged.average |
平均读取请求数/秒 |
添加到先前保存的指标值 |
1 |
|
| 8 |
disk.write.requests |
累积 |
request |
disk.numberWriteAveraged.average |
平均读取请求数/秒 |
添加到先前保存的指标值 |
1 |
|
| 9 |
disk.read.bytes |
累积 |
B |
disk.read.average |
kiloBytesPerSecond |
添加到先前保存的指标值 |
2 |
|
| 10 |
disk.write.bytes |
累积 |
B |
disk.write.average |
kiloBytesPerSecond |
添加到先前保存的指标值 |
1 |
|
| 11 |
disk.root.size |
Gauge(计量表) |
GB |
disk.capacity.provisioned |
kiloBytes |
除以 1024*1024 |
3 |
|
| 12 |
disk.ephemeral.size |
Gauge(计量表) |
GB |
-- |
-- |
-- |
|
VC 中没有临时磁盘 |
| 13 |
network.incoming.bytes |
累积 |
B |
使用 network.bytesRx 计算 |
kiloBytesPerSecond |
乘以采样间隔并除以 1000 |
2 |
|
| 14 |
network.outcoming.bytes |
累积 |
B |
使用 network.bytesTx 计算 |
kiloBytesPerSecond |
乘以采样间隔并除以 1000 |
2 |
|
| 15 |
network.incoming.packets |
累积 |
packets | network.broadcastRx |
number |
|
2 |
|
| 16 |
network.outgoing.packets |
累积 |
packets |
network.broadcastTx |
number |
|
2 |
|