From 0f6ffff37ebf24dcbfe78dbccf8145eb707f5e91 Mon Sep 17 00:00:00 2001 From: Luke Repko Date: Thu, 12 Sep 2024 17:32:37 -0500 Subject: [PATCH] fix(ceilometer): process event_update msgs (#438) * fix(ceilometer): process event_update messages Ceilometer does not keep certain aspects about instances up-to-date. Adding a list of events to process for event_update will ensure we apply updated event_attributes to instance resources in gnocchi. This has the benefit of versioning instances which is great[1]. [1] - https://gnocchi.osci.io/rest.html#history * fix(ceilometer): separate out update events This is necessary so that during updates we don't try to modify the resources associated to the instance. We only want to update the instance resource itself. There may be situations whereby we want to update associated resources, but right now we're not trying to do that. --- .../ceilometer/ceilometer-helm-overrides.yaml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/base-helm-configs/ceilometer/ceilometer-helm-overrides.yaml b/base-helm-configs/ceilometer/ceilometer-helm-overrides.yaml index ade2d50b..7da3e7b2 100644 --- a/base-helm-configs/ceilometer/ceilometer-helm-overrides.yaml +++ b/base-helm-configs/ceilometer/ceilometer-helm-overrides.yaml @@ -902,6 +902,56 @@ conf: instance_network_interface: '{"=": {"instance_id": "%s"}}' instance_disk: '{"=": {"instance_id": "%s"}}' + - resource_type: instance + metrics: + memory: + memory.usage: + memory.resident: + memory.swap.in: + memory.swap.out: + memory.bandwidth.total: + memory.bandwidth.local: + vcpus: + cpu: + archive_policy_name: ceilometer-low-rate + cpu_l3_cache: + disk.root.size: + disk.ephemeral.size: + disk.latency: + disk.iops: + disk.capacity: + disk.allocation: + disk.usage: + compute.instance.booting.time: + perf.cpu.cycles: + perf.instructions: + perf.cache.references: + perf.cache.misses: + 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) + server_group: resource_metadata.user_metadata.server_group + event_update: + - compute.instance.update + - compute.instance.exists + - compute.instance.resize_confirm.end + - compute.instance.resize_revert.end + event_attributes: + id: instance_id + display_name: display_name + host: host + availability_zone: availability_zone + flavor_id: instance_type_id + flavor_name: instance_type + user_id: user_id + project_id: project_id + - resource_type: instance_network_interface metrics: network.outgoing.packets: