1

停止後の openstack 内の VM の使用に関する小さな請求レポートが必要です。これまでのところ、インスタンス名からフレーバー情報 (vCPU、ディスク、メモリ) を取得する方法を見つけています。

そして、今計算する VM の起動時間を知りたいです。

openstack python API から取得する良い方法はありますか?

コードも貼り付けていただけると助かります。

4

3 に答える 3

1

(私はchina-openstack communityから回答を得て、ここで共有しました)

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 に答える
1

サーバーの稼働時間を取得したかっただけです。サーバーが作成されてからではなく、サーバーが稼働している間の実際の稼働時間を意味します。

  • 新しいマシンを作成しました。マシンは実行中で、更新値を取得していました。これは見事に伸びました
  • 次に、マシンを停止し、再度要求を発行しました。応答は"state": "stopped"を正しく報告しますが、uptime属性は. はまだ増加中です。==> 繰り返しますが、この拡張機能ではアップタ​​イムではなく、作成からの時間です

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

したがって、アップタイムという名前にもかかわらず、サーバーの作成からの時間です。

于 2014-02-25T15:31:34.120 に答える
0

メタデータだけを使用しない理由:

カスタム サーバー メタデータは、起動時に提供することもできます。

作成時に日時を保存し、起動時に差を計算できます。

于 2013-08-09T05:12:23.913 に答える