pyvmomi 获取 RAM/CPU 使用 VSphere SDK 5.5?

pyvmomi Get RAM/CPU Usage VSphere SDK 5.5?

我正在尝试通过 Python 从一些 ESXi 服务器获取一些信息。我找到了 pyvmomi(https://github.com/vmware/pyvmomi) which is a great and easy to understand tool for this purpose. However, I cannot seem to find a way to get "real-time" info on the CPU/RAM/Storage usage. I am going through the SDK of VMware (http://pubs.vmware.com/vsphere-55/topic/com.vmware.sdk.doc/GUID-19793BCA-9EAB-42E2-8B9F-F9F2129E7741.html) 但我只能找到主机有多少 cpu 或多少内存。

有没有人通过Python做过这个?

勾选pyvmomi-community-samples。那里有一个名为 esxi_perf_sample.py 的 python 脚本,其中包含一个关于如何在指定时间段内检索特定指标的示例。

连同该示例,检查 this 实施。

这里的技巧在于将 counterId 映射到当前在目标机器上实现的可用指标的人类可读名称。您应该先检索可用的计数器,然后再尝试检索它们的值。

在我看来,此 post 的第二个 link 的实现是您在此时基于 pyVmomi 找到的最好的 public 示例之一写作。仔细研究它,因为它可能会自己解答您所有的疑惑。

另请注意,尽管 Geeklee vminfo 实现是面向来宾的,但所有指标对主机仍然有效。您只需要在执行查询时调整脚本以指定 Host 实体而不是 Guest(或允许两者)。

最后,在执行查询调用时,可以通过时间间隔指定检索指标的 "real-time" 粒度。您应该根据需要指定时间间隔,但请注意,对于最新的 vSphere 版本,样本之间的最小(默认)时间间隔为 20 秒,因此您不应指定小于此值的时间间隔。

我添加了脚本来提取 cpu esxhosts 与多线程的用法。你可以在我的 github 上找到它 https://github.com/dograga/ESXPerfData