add missing instance meta

flavor_id, flavor_name, display_name and host are required... we need to
include them when we build sample from notification.

host does not exist in compute.instance.create.start messages because
(i assume) nova doesn't know which host to create on yet.

also, when multiple metrics missing same resource, only attempt to
create once.

Change-Id: Ia680ad23608f6712ebce619797e2968f8acc6310
(cherry picked from commit 48d9cb7793)
This commit is contained in:
gord chung 2017-02-16 20:55:25 +00:00 committed by Pradeep Kilambi
parent a5f78f8d96
commit 320d56c1b3
2 changed files with 17 additions and 2 deletions

View File

@ -392,8 +392,8 @@ class GnocchiDispatcher(dispatcher.MeterDispatcherBase,
@staticmethod
def _extract_resources_from_error(e, resource_infos):
resource_ids = [r['original_resource_id']
for r in e.message['detail']]
resource_ids = set([r['original_resource_id']
for r in e.message['detail']])
return [(resource_infos[rid]['resource_type'],
resource_infos[rid]['resource'])
for rid in resource_ids]

View File

@ -109,6 +109,13 @@ metric:
project_id: $.payload.tenant_id
resource_id: $.payload.instance_id
user_metadata: $.payload.metadata
metadata: &instance_meta
host: $.payload.host
flavor_id: $.payload.instance_flavor_id
flavor_name: $.payload.instance_type
display_name: $.payload.display_name
host: $.payload.host
image_ref: $.payload.image_meta.base_image_ref
- name: 'vcpus'
event_type: 'compute.instance.*'
@ -119,6 +126,8 @@ metric:
project_id: $.payload.tenant_id
resource_id: $.payload.instance_id
user_metadata: $.payload.metadata
metadata:
<<: *instance_meta
- name: 'compute.instance.booting.time'
event_type: 'compute.instance.create.end'
@ -130,6 +139,8 @@ metric:
project_id: $.payload.tenant_id
resource_id: $.payload.instance_id
user_metadata: $.payload.metadata
metadata:
<<: *instance_meta
- name: 'disk.root.size'
event_type: 'compute.instance.*'
@ -140,6 +151,8 @@ metric:
project_id: $.payload.tenant_id
resource_id: $.payload.instance_id
user_metadata: $.payload.metadata
metadata:
<<: *instance_meta
- name: 'disk.ephemeral.size'
event_type: 'compute.instance.*'
@ -150,6 +163,8 @@ metric:
project_id: $.payload.tenant_id
resource_id: $.payload.instance_id
user_metadata: $.payload.metadata
metadata:
<<: *instance_meta
- name: 'bandwidth'
event_type: 'l3.meter'