dom*_*fer 3 metrics virtual-machine cpu-usage openstack ceilometer
在 stein 版本中,ceilometer 删除了对 cpu_util 的轮询。
请遵循此文档: https://docs.openstack.org/ceilometer/stein/admin/telemetry-measurements.html#openstack-compute
仅测量 cpu(使用的 CPU 时间)和 vcpus(分配给实例的虚拟 CPU 数量)。
并检查关于ceilometer的github提交https://github.com/openstack/ceilometer/blob/4ae919c96e4116ab83e5d83f2b726ed44d165278/releasenotes/notes/save-rate-in-gnocchi-66244262bc4b7842.yaml,
cpu_util 计量表已弃用。
这个关于云高计的提交删除了变压器支持。
根据提交消息,gnocchi 处理变压器数据。
那么,如何使用gnocchi聚合cpu和vcpu来计算cpu使用率呢?
虽然这个问题已经有三个月了,但我希望我的回答仍然对某人有所帮助。
看起来 Ceilometer 的管道处理从来没有正常工作过。正如原发帖者所注意到的,Ceilometer 开发团队采取了一些严厉的措施来弃用然后废弃此功能。因此, Ceilometer 库中保留的唯一 CPU 计量是实例的累积 CPU 时间(以纳秒表示)。
要根据此仪表计算单个实例的 CPU 利用率,您可以使用 Gnocchi 的速率聚合。如果rate:mean是归档策略中的聚合方法之一,您可以执行以下操作:
gnocchi measures show --resource-id <uuid> --aggregation rate:mean cpu
Run Code Online (Sandbox Code Playgroud)
或者使用动态聚合功能来获得相同的结果:
gnocchi aggregates '(metric cpu rate:mean)' id=<uuid>
Run Code Online (Sandbox Code Playgroud)
聚合命令的第一个参数是定义您想要的数字的操作。您可以在Gnocchi API 文档中找到对操作的解释,特别是列出支持的操作的部分和示例部分。第二个参数是一个搜索表达式,它将计算限制为具有该特定 UUID 的实例(当然,只有一个这样的实例)。
到目前为止,该命令仅从 Gnocchi 数据库中提取数据。但是,您可以从数据库中提取数据,然后动态聚合它们。这种技术被(或曾经被)称为重新聚合。这样,您就不需要在存档策略中包含rate:mean :
gnocchi aggregates '(aggregate rate:mean (metric cpu mean))' id=<uuid>
Run Code Online (Sandbox Code Playgroud)
这些数字以纳秒表示,有点笨拙。好消息:Gnocchi 聚合运算也支持算术。要将纳秒转换为秒,请将其除以十亿:
gnocchi aggregates '(/ (aggregate rate:mean (metric cpu mean)) 1000000000)' id=<uuid>
Run Code Online (Sandbox Code Playgroud)
要将它们转换为百分比,请将它们除以(粒度乘以 10 亿),然后将结果乘以 100。假设粒度为 60:
gnocchi aggregates '(* (/ (aggregate rate:mean (metric cpu mean)) 60000000000) 100)' id=<uuid>
Run Code Online (Sandbox Code Playgroud)