1

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

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

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

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

4

3 回答 3

1

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

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

对os-simple-tenant-usage扩展的请求(在获得 auth.token 之后):( 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
    }
}

因此,尽管它的名称为uptime,但它只是服务器创建以来的时间

于 2014-02-25T15:31:34.120 回答
1

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

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

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

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

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

于 2013-08-11T14:16:03.743 回答
0

为什么不只使用元数据

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

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

于 2013-08-09T05:12:23.913 回答