From 36414e1cebe3a43d962f8d2adfe7cc34742e9057 Mon Sep 17 00:00:00 2001 From: Mehdi Abaakouk Date: Sun, 10 Dec 2017 22:37:58 +0100 Subject: [PATCH] Add new attributes to instance This change adds launched_at/started_at/deleted_at attribute to instance. Rely on started_at/ended_at of Gnocchi to known when the operation have done is not precise. Nova records the exact time of this event, just copy them to Gnocchi. Change-Id: If7870fd525d1ef58e4c2dbbbf93525bab3623b0f --- ceilometer/data/meters.d/meters.yaml | 3 +++ ceilometer/gnocchi_client.py | 13 ++++++++++++- ceilometer/publisher/data/gnocchi_resources.yaml | 3 +++ ...d-launched-created-deleted-d7f44df3bbcf0790.yaml | 4 ++++ 4 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/instance-record-launched-created-deleted-d7f44df3bbcf0790.yaml diff --git a/ceilometer/data/meters.d/meters.yaml b/ceilometer/data/meters.d/meters.yaml index 0141269735..4d0d081b92 100644 --- a/ceilometer/data/meters.d/meters.yaml +++ b/ceilometer/data/meters.d/meters.yaml @@ -195,6 +195,9 @@ metric: flavor_name: $.payload.instance_type display_name: $.payload.display_name image_ref: $.payload.image_meta.base_image_ref + launched_at: $.payload.launched_at + created_at: $.payload.created_at + deleted_at: $.payload.deleted_at - name: 'vcpus' event_type: *instance_events diff --git a/ceilometer/gnocchi_client.py b/ceilometer/gnocchi_client.py index 563db64df5..953aebd6dd 100644 --- a/ceilometer/gnocchi_client.py +++ b/ceilometer/gnocchi_client.py @@ -204,11 +204,22 @@ resources_update_operations = [ "attributes": {"node": {"type": "string", "min_length": 0, "max_length": 255, "required": True}} }]}, + {"desc": "add launched_at to instance", + "type": "update_attribute_type", + "resource_type": "instance", + "data": [ + {"op": "add", "path": "/attributes/launched_at", + "value": {"type": "datetime", "required": False}}, + {"op": "add", "path": "/attributes/created_at", + "value": {"type": "datetime", "required": False}}, + {"op": "add", "path": "/attributes/deleted_at", + "value": {"type": "datetime", "required": False}}, + ]}, ] # NOTE(sileht): We use LooseVersion because pbr can generate invalid # StrictVersion like 9.0.1.dev226 -REQUIRED_VERSION = version.LooseVersion("4.0.0") +REQUIRED_VERSION = version.LooseVersion("4.2.0") def upgrade_resource_types(conf): diff --git a/ceilometer/publisher/data/gnocchi_resources.yaml b/ceilometer/publisher/data/gnocchi_resources.yaml index 55ddafca29..cb102af72b 100644 --- a/ceilometer/publisher/data/gnocchi_resources.yaml +++ b/ceilometer/publisher/data/gnocchi_resources.yaml @@ -69,6 +69,9 @@ resources: attributes: host: resource_metadata.(instance_host|host) image_ref: resource_metadata.image_ref + launched_at: resource_metadata.launched_at + created_at: resource_metadata.created_at + deleted_at: resource_metadata.deleted_at display_name: resource_metadata.display_name flavor_id: resource_metadata.(instance_flavor_id|(flavor.id)|flavor_id) flavor_name: resource_metadata.(instance_type|(flavor.name)|flavor_name) diff --git a/releasenotes/notes/instance-record-launched-created-deleted-d7f44df3bbcf0790.yaml b/releasenotes/notes/instance-record-launched-created-deleted-d7f44df3bbcf0790.yaml new file mode 100644 index 0000000000..fecbaa2e02 --- /dev/null +++ b/releasenotes/notes/instance-record-launched-created-deleted-d7f44df3bbcf0790.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + `launched_at`/`created_at`/`deleted_at` of Nova instances are now tracked.