Skip to content

Commit 637129a

Browse files
authored
[OASIS-7864] fix: update log level from debug to warning (#353)
* fix: update log levelfrom debug to warning * fix: add unit test * lint check w flake8 * fix typo * remove extra line * fix: address flakiness * fix: try adding typing lib * fix: remove typing lib * increase batch size relative to queue size * increase max batch size value * remove blank line * increase events
1 parent 4aad6b7 commit 637129a

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

Diff for: optimizely/event/event_processor.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ def process(self, user_event):
259259
try:
260260
self.event_queue.put_nowait(user_event)
261261
except queue.Full:
262-
self.logger.debug(
262+
self.logger.warning(
263263
'Payload not accepted by the queue. Current size: {}'.format(str(self.event_queue.qsize()))
264264
)
265265

Diff for: tests/test_event_processor.py

+30
Original file line numberDiff line numberDiff line change
@@ -494,6 +494,36 @@ def on_log_event(log_event):
494494
1, len(self.optimizely.notification_center.notification_listeners[enums.NotificationTypes.LOG_EVENT]),
495495
)
496496

497+
def test_warning_log_level_on_queue_overflow(self):
498+
""" Test that a warning log is created when events overflow the queue. """
499+
500+
# create scenario where the batch size (MAX_BATCH_SIZE) is significantly larger than the queue size
501+
# use smaller batch size and higher timeout to avoid test flakiness
502+
test_max_queue_size = 10
503+
self.MAX_BATCH_SIZE = 1000
504+
505+
event_dispatcher = CustomEventDispatcher()
506+
507+
with mock.patch.object(self.optimizely, 'logger') as mock_config_logging:
508+
self.event_processor = BatchEventProcessor(
509+
event_dispatcher,
510+
self.optimizely.logger,
511+
True,
512+
queue.Queue(maxsize=test_max_queue_size),
513+
)
514+
515+
for i in range(0, self.MAX_BATCH_SIZE):
516+
user_event = self._build_conversion_event(self.event_name)
517+
self.event_processor.process(user_event)
518+
event_dispatcher.expect_conversion(self.event_name, self.test_user_id)
519+
520+
time.sleep(self.TEST_TIMEOUT)
521+
522+
# queue is flushed, even though events overflow
523+
self.assertEqual(0, self.event_processor.event_queue.qsize())
524+
mock_config_logging.warning.assert_called_with('Payload not accepted by the queue. Current size: {}'
525+
.format(str(test_max_queue_size)))
526+
497527

498528
class CustomForwardingEventDispatcher(object):
499529
def __init__(self, is_updated=False):

0 commit comments

Comments
 (0)