From 3993aa9524f64c6e37de73ea097c6a7fd2db3a54 Mon Sep 17 00:00:00 2001 From: Seth Foster Date: Wed, 9 Feb 2022 21:57:01 -0500 Subject: [PATCH] Add metric for number of events emitted over websocket broadcast --- awx/main/analytics/subsystem_metrics.py | 1 + awx/main/dispatch/worker/callback.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/awx/main/analytics/subsystem_metrics.py b/awx/main/analytics/subsystem_metrics.py index b5ecf39e90..1c2dfbe6ac 100644 --- a/awx/main/analytics/subsystem_metrics.py +++ b/awx/main/analytics/subsystem_metrics.py @@ -160,6 +160,7 @@ class Metrics: IntM('callback_receiver_batch_events_errors', 'Number of times batch insertion failed'), FloatM('callback_receiver_events_insert_db_seconds', 'Time spent saving events to database'), IntM('callback_receiver_events_insert_db', 'Number of events batch inserted into database'), + IntM('callback_receiver_emit_event_detail', 'Number of events broadcast to other control plane nodes'), HistogramM( 'callback_receiver_batch_events_insert_db', 'Number of events batch inserted into database', settings.SUBSYSTEM_METRICS_BATCH_INSERT_BUCKETS ), diff --git a/awx/main/dispatch/worker/callback.py b/awx/main/dispatch/worker/callback.py index ccf3b063d1..7c9e635bac 100644 --- a/awx/main/dispatch/worker/callback.py +++ b/awx/main/dispatch/worker/callback.py @@ -119,6 +119,7 @@ class CallbackBrokerWorker(BaseWorker): bulk_events_saved = 0 singular_events_saved = 0 metrics_events_batch_save_errors = 0 + emitted_events = 0 for cls, events in self.buff.items(): logger.debug(f'{cls.__name__}.objects.bulk_create({len(events)})') for e in events: @@ -143,6 +144,7 @@ class CallbackBrokerWorker(BaseWorker): duration_to_save = time.perf_counter() - duration_to_save for e in events: if not getattr(e, '_skip_websocket_message', False): + emitted_events += 1 emit_event_detail(e) self.buff = {} self.last_flush = time.time() @@ -153,6 +155,7 @@ class CallbackBrokerWorker(BaseWorker): self.subsystem_metrics.inc('callback_receiver_events_insert_db', bulk_events_saved + singular_events_saved) self.subsystem_metrics.observe('callback_receiver_batch_events_insert_db', bulk_events_saved) self.subsystem_metrics.inc('callback_receiver_events_in_memory', -(bulk_events_saved + singular_events_saved)) + self.subsystem_metrics.inc('callback_receiver_emit_event_detail', emitted_events) if self.subsystem_metrics.should_pipe_execute() is True: self.subsystem_metrics.pipe_execute()