1

在 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 计量器已弃用。

这个关于云高仪的提交删除了变压器支持。

https://github.com/openstack/ceilometer/commit/9db5c6c9bfc66018aeb78c4a262e1bfa9b326798#diff-4161ff0e1519a6226d1117b428fc831a

根据提交消息,gnocchi 处理变压器数据。

那么,如何使用gnocchi聚合cpu和vcpus来计算cpu使用率呢?

4

1 回答 1

4

尽管这个问题已经存在三个月了,但我希望我的回答仍然对某人有所帮助。

Ceilometer 的流水线处理似乎从未正常工作过。正如最初的发布者所注意到的那样,Ceilometer 开发团队采取了有点激进的措施来弃用并废弃此功能。因此, Ceilometer 库中唯一保留的 CPU 计量器是实例的累积 CPU 时间,以纳秒为单位。

要基于此计量器计算单个实例的 CPU 利用率,可以使用 Gnocchi 的速率聚合。如果rate:mean是归档策略中的聚合方法之一,您可以这样做:

gnocchi measures show --resource-id <uuid> --aggregation rate:mean cpu

或者使用动态聚合功能获得相同的结果:

gnocchi aggregates '(metric cpu rate:mean)' id=<uuid>

aggregates命令的第一个参数是定义您想要的数字的操作。您可以在Gnocchi API 文档中找到操作说明,尤其是列出支持的操作的部分和示例部分。第二个参数是一个搜索表达式,它将计算限制为具有此特定 UUID 的实例(当然,只有一个这样的实例)。

到目前为止,该命令只是从 Gnocchi 数据库中提取数字。但是,您可以从数据库中提取数据,然后即时聚合它们。这种技术被(或曾经)称为重新聚合。这样,您无需在归档策略中包含rate:mean :

gnocchi aggregates '(aggregate rate:mean (metric cpu mean))' id=<uuid>

这些数字以纳秒表示,这有点笨拙。好消息:Gnocchi 聚合操作也支持算术。要将纳秒转换为秒,请将它们除以十亿:

gnocchi aggregates '(/ (aggregate rate:mean (metric cpu mean)) 1000000000)' id=<uuid>

并将它们转换为百分比,将它们除以(粒度乘以十亿),然后将结果乘以 100。假设粒度为 60:

gnocchi aggregates '(* (/ (aggregate rate:mean (metric cpu mean)) 60000000000) 100)' id=<uuid>
于 2019-08-07T01:55:44.257 回答