diff options
author | Zuul <zuul@review.opendev.org> | 2019-05-20 14:42:37 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2019-05-20 14:42:37 +0000 |
commit | 9daaf671c34e2aefaa6f1f8e1ad29c73fa7ed54c (patch) | |
tree | 967a75aa1487589b57b14205113e00b9925f1655 | |
parent | 1f8ec3facda98a395975c330a7e197228fd047f1 (diff) | |
parent | fd000b8c131b3b5d23d2c45233353107536565e1 (diff) | |
download | ceilometer-9daaf671c34e2aefaa6f1f8e1ad29c73fa7ed54c.tar.gz |
Merge "metering data lost randomly"
-rw-r--r-- | ceilometer/publisher/messaging.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ceilometer/publisher/messaging.py b/ceilometer/publisher/messaging.py index d6a3ed2a..a4e9f8a3 100644 --- a/ceilometer/publisher/messaging.py +++ b/ceilometer/publisher/messaging.py @@ -112,9 +112,11 @@ class MessagingPublisher(publisher.ConfigPublisherBase): for sample in samples ] topic = self.conf.publisher_notifier.metering_topic - self.local_queue.append((topic, meters)) + with self.queue_lock: + self.local_queue.append((topic, meters)) if self.per_meter_topic: + queue_per_meter_topic = [] for meter_name, meter_list in itertools.groupby( sorted(meters, key=operator.itemgetter('counter_name')), operator.itemgetter('counter_name')): @@ -122,7 +124,9 @@ class MessagingPublisher(publisher.ConfigPublisherBase): topic_name = topic + '.' + meter_name LOG.debug('Publishing %(m)d samples on %(n)s', {'m': len(meter_list), 'n': topic_name}) - self.local_queue.append((topic_name, meter_list)) + queue_per_meter_topic.append((topic_name, meter_list)) + with self.queue_lock: + self.local_queue.extend(queue_per_meter_topic) self.flush() @@ -180,7 +184,8 @@ class MessagingPublisher(publisher.ConfigPublisherBase): event, self.conf.publisher.telemetry_secret) for event in events] topic = self.conf.publisher_notifier.event_topic - self.local_queue.append((topic, ev_list)) + with self.queue_lock: + self.local_queue.append((topic, ev_list)) self.flush() @abc.abstractmethod |