使用dotnetapi如何找到cpu&;vmware环境中的内存利用率?

使用dotnetapi如何找到cpu&;vmware环境中的内存利用率?,vmware,vsphere,Vmware,Vsphere,我们有我们的vmware环境,从中我们可以通过dot net API找到分配的内存和CPU,我们还希望找到它的CPU和内存利用率(最大、最小、平均)。 但是,我们无法在dotnetapi(VCloudSDK_V5_5)中找到任何方法或属性 所以,我需要一个dotnet代码示例来了解vmware环境中的cpu和内存利用率。 我到处找,但找不到 有C代码示例吗 我们正在尝试使用以下代码: 我们使用VimService dll实现了一个示例,但我们无法通过它进行连接 我们收到错误:请求失败,错误消息

我们有我们的vmware环境,从中我们可以通过dot net API找到分配的内存和CPU,我们还希望找到它的CPU和内存利用率(最大、最小、平均)。 但是,我们无法在dotnetapi(VCloudSDK_V5_5)中找到任何方法或属性 所以,我需要一个dotnet代码示例来了解vmware环境中的cpu和内存利用率。 我到处找,但找不到

有C代码示例吗

我们正在尝试使用以下代码:

我们使用VimService dll实现了一个示例,但我们无法通过它进行连接

我们收到错误:请求失败,错误消息

第行(_-sic=_-service.RetrieveServiceContent(_-svcRef);)中的以下方法出错

但是,没有错误消息。
有人能帮上忙吗?

您可能应该看看,在这里您可以找到执行此类监视的功能。您可以使用该方法来别名
vmGuestLib.dll
中记录的方法。要了解如何从C#访问这些方法,请阅读并查看的文档

以下是
VMGuestLib_OpenHandle
VMGuestLib_GetMemActiveMB
VMGuestLib_CloseHandle
函数的定义示例:

using System.Runtime.InteropServices;
public enum VMGuestLibError {
    VMGUESTLIB_ERROR_SUCCESS = 0,
    VMGUESTLIB_ERROR_OTHER,
    VMGUESTLIB_ERROR_NOT_RUNNING_IN_VM,
    VMGUESTLIB_ERROR_NOT_ENABLED,
    VMGUESTLIB_ERROR_NOT_AVAILABLE,
    VMGUESTLIB_ERROR_NO_INFO,
    VMGUESTLIB_ERROR_MEMORY,
    VMGUESTLIB_ERROR_BUFFER_TOO_SMALL,
    VMGUESTLIB_ERROR_INVALID_HANDLE,
    VMGUESTLIB_ERROR_INVALID_ARG,
    VMGUESTLIB_ERROR_UNSUPPORTED_VERSION
};
[DllImport("vmGuestLib.dll")] public static extern VMGuestLibError VMGuestLib_OpenHandle(ref IntPtr handle);
[DllImport("vmGuestLib.dll")] public static extern VMGuestLibError VMGuestLib_GetMemActiveMB(IntPtr handle, ref UInt32 memActiveMB);
[DllImport("vmGuestLib.dll")] public static extern VMGuestLibError VMGuestLib_CloseHandle(IntPtr handle);

事实上,我自己也刚刚开始一个类似的项目,我可以用它作为起点。用户Coffeetocode提供了一个关于启动和运行.NETAPI的非常简单的演练

从这里,使用前面提到的API文档查找各种成员名称

例如:

           string provisioned_disk_space = "" + ((vm.Summary.Storage.Uncommitted + vm.Summary.Storage.Committed) / 1073741824);
           string used_disk_space = "" + (vm.Summary.Storage.Committed / 1073741824);
           string number_of_cpus = "" + vm.Summary.Config.NumCpu;
           string total_ram = "" + (vm.Summary.Config.MemorySizeMB/1024);
我想你要找的成员是

            VirtualMachine.Summary.QuickStats.GuestMemoryUsage;
            VirtualMachine.Summary.QuickStats.OverallCpuUsage;

我们没有发现任何有用的东西。你能提供一些C#代码示例吗?API文档或使用C#来使用API,你没有发现什么有用的地方吗?@Preston--我们找不到任何关于使用C#来使用API的信息,或者我遗漏了什么?
            VirtualMachine.Summary.QuickStats.GuestMemoryUsage;
            VirtualMachine.Summary.QuickStats.OverallCpuUsage;