繁体   English   中英

如何通过python API在openstack中获得VM实例的运行时间?

[英]How can I get VM instance running time in openstack via python API?

停止后,我需要一份小的账单报告以了解openstack中VM的使用情况,到目前为止,我已经找到了从实例名称获取风味信息(vCPU,磁盘,内存)的方法。

我想知道虚拟机的启动时间,现在就可以计算出来。

有什么好的方法可以从openstack python API获取它吗?

如果您也可以粘贴代码,那就太好了。

(我从china-openstack社区获得了答案,并在这里分享)

novaclient用法模块中 ,所有实例(活动或已终止)都可以通过list API来获取,详细信息是通过get API来get ,尚不清楚通过此python文档公开哪些信息。

幸运的是, openstack api:os-simple-tenant-usage告诉数据结构, uptime是我想要的。

 "tenant_usage": {
    "server_usages": [
        {
            ... (skipped)
            "uptime": 3600,
            "vcpus": 1
        }
    ],

openstack仪表板(至少为Folsom版本)也使用此API。

我只是想找回服务器的正常运行时间。 我指的是服务器启动后的实际正常运行时间,而不是自服务器创建以来。

  • 我创建了一个新计算机,该计算机正在运行,并且获得了一些更新值。 这很好地增加了
  • 然后,我停止了机器并再次发出了请求:响应正确地报告了“状态”:“已停止” ,但是正常运行时间为 attr。 仍在增加。 ==>同样,在此扩展中,它不是正常运行时间,而是从创建开始的时间

要求os-simple-tenant-usage扩展(获取身份验证令牌后): GET http://rdo:8774/v2/4e1900cf21924a098709c23480e157c0/os-simple-tenant-usage/4e1900cf21924a098709c23480e157c0 (具有正确的租户ID)

响应(注意机器已停止并且正常运行时间为非零值):

{
    "tenant_usage": {
        "total_memory_mb_usage": 0.000007111111111111112,
        "total_vcpus_usage": 1.388888888888889e-8,
        "start": "2014-02-25T14:20:19.660179",
        "tenant_id": "4e1900cf21924a098709c23480e157c0",
        "stop": "2014-02-25T14:20:19.660184",
        "server_usages": [
            {
                "instance_id": "ca4465a8-38ca-40de-b138-82efcc88c7cf",
                "uptime": 1199,
                "started_at": "2014-02-25T14:00:20.000000",
                "ended_at": null,
                "memory_mb": 512,
                "tenant_id": "4e1900cf21924a098709c23480e157c0",
                "state": "stopped",
                "hours": 1.388888888888889e-8,
                "vcpus": 1,
                "flavor": "m1.tiny",
                "local_gb": 1,
                "name": "m1"
            }
        ],
        "total_hours": 1.388888888888889e-8,
        "total_local_gb_usage": 1.388888888888889e-8
    }
}

因此,尽管它具有正常运行时间的功能,但这只是服务器创建以来的时间

为什么不只使用元数据

自定义服务器元数据也可以在启动时提供。

在创建时,您可以保存日期时间,然后在启动时可以计算差值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM