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

2024-09-27 00:21:19 发布

您现在位置:Python中文网/ 问答频道 /正文

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

现在我想知道虚拟机的启动时间。在

有什么好方法可以从OpenStackPythonAPI中获取它吗?在

如果你也能粘贴代码那就太好了。在


Tags: 实例方法内存代码信息openstack粘贴报告
3条回答

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

  • 我创建了一台新的机器,机器正在运行,我得到了一些更新值;这个值增加得很好
  • 然后我停止机器并再次发出请求:响应正确地报告了“state”:“stopped”,但是正常运行时间属性。仍在增加。==>;在此扩展中,它不是正常运行时间,而是从创建开始的时间

请求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
    }
}

因此,尽管它的名字是正常运行时间,但自服务器创建以来,它只是时间。在

为什么不直接使用metadata

Custom server metadata can also be supplied at launch time.

在创建时,您可以保存一个日期时间,然后当它启动时,您可以计算一个差异。在

(我从china-openstack community得到了答案,并在这里分享)

novaclient usage module中,所有实例(活动的或终止的)都可以通过listAPI获取,详细信息通过getAPI获取,不清楚通过这个python文档公开了哪些信息。在

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

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

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

相关问题 更多 >

    热门问题