簡體   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