测量¶
Telemetry 服务在 OpenStack 部署中收集计量数据。本节简要概述了计量数据的格式和来源,并包含可用计量数据的列表。
Telemetry 通过轮询基础设施元素以及消费其他 OpenStack 服务发出的通知来收集计量数据。有关轮询机制和通知的更多信息,请参阅 数据收集。有些计量数据通过轮询和消费两种方式收集。下表列出了每个计量数据的来源。
注意
您可能需要配置 Telemetry 或其他 OpenStack 服务,以便能够收集所需的所有样本。有关配置要求的更多信息,请参阅安装教程和指南中的 Telemetry 章节。
Telemetry 使用以下计量数据类型
类型 |
描述 |
|---|---|
累积 |
随时间增加(实例小时数) |
Delta |
随时间变化(带宽) |
Gauge |
离散项目(浮动 IP、镜像上传)和波动值(磁盘 I/O) |
Telemetry 提供了存储样本元数据的可能性。此元数据可以扩展用于 OpenStack Compute 和 OpenStack 对象存储。
为了向 OpenStack Compute 添加额外的元数据信息,您可以选择两种方法。第一种是在启动新实例时指定它们。附加信息将以 resource_metadata.user_metadata.* 的形式与样本一起存储。新的字段应使用前缀 metering. 定义。修改后的启动命令如下所示
$ openstack server create --property metering.custom_metadata=a_value my_vm
另一种方法是设置 reserved_metadata_keys 为您希望包含在 OpenStack Compute 相关样本的 resource_metadata 中的元数据键列表。此选项包含在 ceilometer.conf 配置文件中的 DEFAULT 部分。
您还可以指定将与其值一起存储在 OpenStack 对象存储样本数据中的标头。附加信息也存储在 resource_metadata 下。新字段的格式为 resource_metadata.http_header_$name,其中 $name 是标头的名称,并将 - 替换为 _。
要指定新的标头,您需要在 swift 文件夹下的 proxy-server.conf 中的 [filter:ceilometer] 部分下设置 metadata_headers 选项。您可以使用此附加数据来区分外部和内部用户。
计量数据按 Telemetry 轮询的服务或消费通知的服务进行分组。
OpenStack Compute¶
以下计量数据是为 OpenStack Compute 收集的。
名称 |
类型 |
单元 |
资源 |
来源 |
支持 |
注意 |
|---|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
||||||
memory |
Gauge |
MB |
实例 ID |
通知、Pollster |
Libvirt |
分配给实例的 RAM 容量 |
memory.usage |
Gauge |
MB |
实例 ID |
Pollster |
Libvirt, |
实例从其分配的内存量中使用的 RAM 容量 |
memory.resident |
Gauge |
MB |
实例 ID |
Pollster |
Libvirt |
实例在物理机器上使用的 RAM 容量 |
cpu |
累积 |
ns |
实例 ID |
Pollster |
Libvirt |
CPU 使用时间 |
vcpus |
Gauge |
vcpu |
实例 ID |
通知、Pollster |
Libvirt |
分配给实例的虚拟 CPU 数量 |
disk.device.read.requests |
累积 |
请求 |
磁盘 ID |
Pollster |
Libvirt |
读取请求数量 |
disk.device.write.requests |
累积 |
请求 |
磁盘 ID |
Pollster |
Libvirt |
写入请求数量 |
disk.device.read.bytes |
累积 |
B |
磁盘 ID |
Pollster |
Libvirt |
读取量 |
disk.device.write.bytes |
累积 |
B |
磁盘 ID |
Pollster |
Libvirt |
写入量 |
disk.root.size |
Gauge |
GB |
实例 ID |
通知、Pollster |
Libvirt |
根磁盘大小 |
disk.ephemeral.size |
Gauge |
GB |
实例 ID |
通知、Pollster |
Libvirt |
临时磁盘大小 |
disk.device.capacity |
Gauge |
B |
磁盘 ID |
Pollster |
Libvirt |
实例可以查看的每个磁盘的磁盘量 |
disk.device.allocation |
Gauge |
B |
磁盘 ID |
Pollster |
Libvirt |
实例在主机上占用的每个磁盘的磁盘量 |
disk.device.usage |
Gauge |
B |
磁盘 ID |
Pollster |
Libvirt |
主机上每个设备的镜像容器的物理大小 |
network.incoming.bytes |
累积 |
B |
接口 ID |
Pollster |
Libvirt |
传入字节数 |
network.outgoing.bytes |
累积 |
B |
接口 ID |
Pollster |
Libvirt |
传出字节数 |
network.incoming.packets |
累积 |
数据包 |
接口 ID |
Pollster |
Libvirt |
传入数据包数量 |
network.outgoing.packets |
累积 |
数据包 |
接口 ID |
Pollster |
Libvirt |
传出数据包数量 |
Newton 版本中添加的计量数据 |
||||||
perf.cpu.cycles |
Gauge |
周期 |
实例 ID |
Pollster |
Libvirt |
一条指令需要的 CPU 周期数 |
perf.instructions |
Gauge |
指令 |
实例 ID |
Pollster |
Libvirt |
指令计数 |
perf.cache.references |
Gauge |
count |
实例 ID |
Pollster |
Libvirt |
缓存命中计数 |
perf.cache.misses |
Gauge |
count |
实例 ID |
Pollster |
Libvirt |
缓存未命中计数 |
Ocata 版本中添加的计量数据 |
||||||
network.incoming.packets.drop |
累积 |
数据包 |
接口 ID |
Pollster |
Libvirt |
传入丢弃数据包数量 |
network.outgoing.packets.drop |
累积 |
数据包 |
接口 ID |
Pollster |
Libvirt |
传出丢弃数据包数量 |
network.incoming.packets.error |
累积 |
数据包 |
接口 ID |
Pollster |
Libvirt |
传入错误数据包数量 |
network.outgoing.packets.error |
累积 |
数据包 |
接口 ID |
Pollster |
Libvirt |
传出错误数据包数量 |
Pike 版本中添加的计量数据 |
||||||
memory.swap.in |
累积 |
MB |
实例 ID |
Pollster |
Libvirt |
内存交换入 |
memory.swap.out |
累积 |
MB |
实例 ID |
Pollster |
Libvirt |
内存交换出 |
Queens 版本中添加的计量数据 |
||||||
disk.device.read.latency |
累积 |
ns |
磁盘 ID |
Pollster |
Libvirt |
读取操作花费的总时间 |
disk.device.write.latency |
累积 |
ns |
磁盘 ID |
Pollster |
Libvirt |
写入操作花费的总时间 |
Epoxy 版本中添加的计量数据 |
||||||
power.state |
Gauge |
state |
实例 ID |
Pollster |
Libvirt |
VM 的 virDomainState |
Flamingo 版本中添加的计量数据 |
||||||
memory.available |
Gauge |
MB |
实例 ID |
Pollster |
Libvirt |
实例可用的 RAM 容量,从实例内部可见 |
注意
要启用 libvirt memory.usage 支持,您需要安装 libvirt 版本 1.1.1+,QEMU 版本 1.5+,并且您还需要在镜像中准备合适的 balloon 驱动程序。它尤其适用于 Windows 来宾,大多数现代 Linux 发行版已经内置了它。如果没有镜像 balloon 驱动程序,Telemetry 无法获取 memory.usage 样本。
注意
要在基于 RBD 的共享存储上运行 libvirt disk.* 支持,您需要安装 libvirt 版本 1.2.16+。
OpenStack Compute 能够从计算主机收集 CPU 相关计量数据。为了使用它,您需要在 nova.conf 配置文件中将 compute_monitors 选项设置为 cpu.virt_driver。有关更多信息,请参阅 OpenStack 配置参考的 Compute 章节中的 Compute 配置部分 Compute 章节。
以下主机相关计量数据是为 OpenStack Compute 收集的
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
compute.node.cpu.frequency |
Gauge |
MHz |
主机 ID |
通知 |
CPU 频率 |
compute.node.cpu.kernel.time |
累积 |
ns |
主机 ID |
通知 |
CPU 内核时间 |
compute.node.cpu.idle.time |
累积 |
ns |
主机 ID |
通知 |
CPU 空闲时间 |
compute.node.cpu.user.time |
累积 |
ns |
主机 ID |
通知 |
CPU 用户模式时间 |
compute.node.cpu.iowait.time |
累积 |
ns |
主机 ID |
通知 |
CPU I/O 等待时间 |
compute.node.cpu.kernel.percent |
Gauge |
% |
主机 ID |
通知 |
CPU 内核百分比 |
compute.node.cpu.idle.percent |
Gauge |
% |
主机 ID |
通知 |
CPU 空闲百分比 |
compute.node.cpu.user.percent |
Gauge |
% |
主机 ID |
通知 |
CPU 用户模式百分比 |
compute.node.cpu.iowait.percent |
Gauge |
% |
主机 ID |
通知 |
CPU I/O 等待百分比 |
compute.node.cpu.percent |
Gauge |
% |
主机 ID |
通知 |
CPU 利用率 |
IPMI 计量数据¶
Telemetry 捕获由 Bare metal 服务发出的通知。通知的来源是 IPMI 传感器,它们从主机收集数据。
或者,可以通过在每个支持 IPMI 的节点上部署 ceilometer-agent-ipmi 来生成 IPMI 计量数据。有关 IPMI 代理的更多信息,请参阅 IPMI 代理。
警告
为了避免计量数据的重复和 IPMI 接口上的不必要负载,请不要在由 Bare metal 服务管理的节点上部署 IPMI 代理,并使 ironic.conf 配置文件中的 conductor.send_sensor_data 选项设置为 False。
记录以下 IPMI 传感器计量数据
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
hardware.ipmi.fan |
Gauge |
RPM |
风扇传感器 |
通知、Pollster |
风扇转速(RPM) |
hardware.ipmi.temperature |
Gauge |
C |
温度传感器 |
通知、Pollster |
来自传感器的温度读数 |
hardware.ipmi.current |
Gauge |
A |
电流传感器 |
通知、Pollster |
来自传感器的电流读数 |
hardware.ipmi.voltage |
Gauge |
V |
电压传感器 |
通知、Pollster |
来自传感器的电压读数 |
注意
传感器数据默认情况下在 Bare metal 服务中不可用。要启用计量数据并配置此模块以发出有关测量值的通知,请参阅 Bare metal 服务的 安装指南。
OpenStack Image 服务¶
以下计量数据是为 OpenStack Image 服务收集的
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
image.size |
Gauge |
B |
镜像 ID |
通知、Pollster |
上传镜像的大小 |
image.download |
Delta |
B |
镜像 ID |
通知 |
镜像已下载 |
image.serve |
Delta |
B |
镜像 ID |
通知 |
镜像已提供 |
OpenStack Block Storage¶
以下计量数据是为 OpenStack Block Storage 收集的
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
volume.size |
Gauge |
GB |
volume ID |
通知 |
卷的大小 |
snapshot.size |
Gauge |
GB |
快照 ID |
通知 |
快照的大小 |
Queens 版本中添加的计量数据 |
|||||
volume.provider.capacity.total |
Gauge |
GB |
hostname |
通知 |
主机上的总卷容量 |
volume.provider.capacity.free |
Gauge |
GB |
hostname |
通知 |
主机上的可用卷容量 |
volume.provider.capacity.allocated |
Gauge |
GB |
hostname |
通知 |
Cinder 在主机上分配的卷容量 |
volume.provider.capacity.provisioned |
Gauge |
GB |
hostname |
通知 |
主机上分配的卷容量 |
volume.provider.capacity.virtual_free |
Gauge |
GB |
hostname |
通知 |
主机上的虚拟可用卷容量 |
volume.provider.pool.capacity.total |
Gauge |
GB |
hostname#pool |
通知、Pollster |
池中的总卷容量 |
volume.provider.pool.capacity.free |
Gauge |
GB |
hostname#pool |
通知、Pollster |
池中的可用卷容量 |
volume.provider.pool.capacity.allocated |
Gauge |
GB |
hostname#pool |
通知、Pollster |
Cinder 在池中分配的卷容量 |
volume.provider.pool.capacity.provisioned |
Gauge |
GB |
hostname#pool |
通知、Pollster |
池中分配的卷容量 |
volume.provider.pool.capacity.virtual_free |
Gauge |
GB |
hostname#pool |
通知、Pollster |
池中的虚拟可用卷容量 |
OpenStack Object Storage¶
以下计量数据是为 OpenStack Object Storage 收集的
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
storage.objects |
Gauge |
对象 |
存储 ID |
Pollster |
对象数量 |
storage.objects.size |
Gauge |
B |
存储 ID |
Pollster |
存储对象的总大小 |
storage.objects.containers |
Gauge |
container |
存储 ID |
Pollster |
容器数量 |
storage.objects.incoming.bytes |
Delta |
B |
存储 ID |
通知 |
传入字节数 |
storage.objects.outgoing.bytes |
Delta |
B |
存储 ID |
通知 |
传出字节数 |
storage.containers.objects |
Gauge |
对象 |
存储 ID/容器 |
Pollster |
容器中的对象数量 |
storage.containers.objects.size |
Gauge |
B |
存储 ID/容器 |
Pollster |
容器中存储对象的总大小 |
Ceph Object Storage¶
为了从 Ceph 收集计量数据,您需要按照 安装手册 中的说明安装和配置 Ceph 对象网关 (radosgw)。您还需要启用 使用情况日志记录,以便从 Ceph 获取相关的计量数据。您需要一个配置了 users、buckets、metadata 和 usage caps 的 admin 用户。
为了从 Telemetry 访问 Ceph,您需要在 ceilometer.conf 配置文件中为 radosgw 指定一个 service group,以及上述 admin 用户的 access_key 和 secret_key。
以下计量数据是为 Ceph Object Storage 收集的
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
radosgw.objects |
Gauge |
对象 |
存储 ID |
Pollster |
对象数量 |
radosgw.objects.size |
Gauge |
B |
存储 ID |
Pollster |
存储对象的总大小 |
radosgw.objects.containers |
Gauge |
container |
存储 ID |
Pollster |
容器数量 |
radosgw.api.request |
Gauge |
请求 |
存储 ID |
Pollster |
对 Ceph 对象网关 (radosgw) 的 API 请求数量 |
radosgw.containers.objects |
Gauge |
对象 |
存储 ID/容器 |
Pollster |
容器中的对象数量 |
radosgw.containers.objects.size |
Gauge |
B |
存储 ID/容器 |
Pollster |
容器中存储对象的总大小 |
注意
使用情况相关信息可能不会在上传或下载后立即更新,因为 Ceph 对象网关需要时间来更新使用情况属性。例如,默认配置需要大约 30 分钟才能生成使用情况日志。
OpenStack Identity¶
以下计量数据是为 OpenStack Identity 收集的
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
identity.authenticate.success |
Delta |
user |
用户 ID |
通知 |
用户成功认证 |
identity.authenticate.pending |
Delta |
user |
用户 ID |
通知 |
用户待认证 |
identity.authenticate.failure |
Delta |
user |
用户 ID |
通知 |
用户身份验证失败 |
OpenStack Networking¶
以下指标将为 OpenStack Networking 收集
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
带宽 |
Delta |
B |
标签 ID |
通知 |
通过此 l3 计量标签的字节数 |
VPN-as-a-Service (VPNaaS)¶
以下指标将为 VPNaaS 收集
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
network.services.vpn |
Gauge |
vpnservice |
VPN ID |
Pollster |
VPN 的存在 |
network.services.vpn.connections |
Gauge |
ipsec_site_connection |
连接 ID |
Pollster |
IPSec 连接的存在 |
Firewall-as-a-Service (FWaaS)¶
以下指标将为 FWaaS 收集
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Mitaka 版本或更早版本中添加的计量数据 |
|||||
network.services.firewall |
Gauge |
firewall |
防火墙 ID |
Pollster |
防火墙的存在 |
network.services.firewall.policy |
Gauge |
firewall_policy |
防火墙 ID |
Pollster |
防火墙策略的存在 |
Openstack alarming¶
以下指标将为 Aodh 收集
名称 |
类型 |
单元 |
资源 |
来源 |
注意 |
|---|---|---|---|---|---|
Flamingo 版本中添加的计量数据 |
|||||
alarm.evaluation_result |
Gauge |
evaluation_result_count |
告警 ID |
Pollster |
每个告警的评估结果总数 |