aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWill Smith2020-03-21 17:30:16 -0600
committerWill Smith2020-03-21 17:37:22 -0600
commite85723a8891e3cd32eb295f773e32162caae97c7 (patch)
treed488aaea37defaa72f5e4ea218fb63a3b2adf733
parent132fb46f7ee28e83eeb1ec08ee873b04029d102f (diff)
downloadeventmq-e85723a8891e3cd32eb295f773e32162caae97c7.tar.gz
eventmq-e85723a8891e3cd32eb295f773e32162caae97c7.zip
Metrics Update
WHAT: * Update test to account for new get_status() results * Resolve flappy test based on time. WHY: They were broken, and needed fixing for Teem and Lindley White's changes.
-rw-r--r--eventmq/router.py5
-rw-r--r--eventmq/tests/test_router.py29
2 files changed, 20 insertions, 14 deletions
diff --git a/eventmq/router.py b/eventmq/router.py
index e1967bf..49ffb3a 100644
--- a/eventmq/router.py
+++ b/eventmq/router.py
@@ -936,7 +936,8 @@ class Router(HeartbeatMixin):
936 936
937 for queue in queue_latency_list: 937 for queue in queue_latency_list:
938 queue_latency_list[queue] = int( 938 queue_latency_list[queue] = int(
939 (now - (queue_latency_list[queue] / max(queue_latency_count[queue], 1))) * 1000) 939 (now - (queue_latency_list[queue] /
940 max(queue_latency_count[queue], 1))) * 1000)
940 941
941 for queue in queue_max_latency_list: 942 for queue in queue_max_latency_list:
942 queue_max_latency_list[queue] = int( 943 queue_max_latency_list[queue] = int(
@@ -951,7 +952,7 @@ class Router(HeartbeatMixin):
951 'max_latency_messages_by_queue': queue_max_latency_list, 952 'max_latency_messages_by_queue': queue_max_latency_list,
952 'waiting_messages_by_queue': queue_waiting_list, 953 'waiting_messages_by_queue': queue_waiting_list,
953 'processed_messages_by_queue': self.processed_message_counts, 954 'processed_messages_by_queue': self.processed_message_counts,
954 'processed_messages_by_worker': self.processed_message_counts_by_worker 955 'processed_messages_by_worker': self.processed_message_counts_by_worker # noqa
955 }) 956 })
956 957
957 def get_workers_status(self): 958 def get_workers_status(self):
diff --git a/eventmq/tests/test_router.py b/eventmq/tests/test_router.py
index 0a315e3..73612e7 100644
--- a/eventmq/tests/test_router.py
+++ b/eventmq/tests/test_router.py
@@ -464,6 +464,8 @@ class TestCase(unittest.TestCase):
464 queue2_id = 'jimjam' 464 queue2_id = 'jimjam'
465 nonexistent_queue1 = 'nonexistent' 465 nonexistent_queue1 = 'nonexistent'
466 466
467 t = monotonic()
468
467 # To ensure the value was changed later because monotonic() is hard to 469 # To ensure the value was changed later because monotonic() is hard to
468 # mock 470 # mock
469 self.assertEqual(self.router._meta['last_worker_cleanup'], 0) 471 self.assertEqual(self.router._meta['last_worker_cleanup'], 0)
@@ -479,20 +481,20 @@ class TestCase(unittest.TestCase):
479 # 3 in the future 481 # 3 in the future
480 worker1_id: { 482 worker1_id: {
481 'queues': [(10, queue1_id), ], 483 'queues': [(10, queue1_id), ],
482 'hb': monotonic() + 3, 484 'hb': t + 3,
483 'available_slots': 0, 485 'available_slots': 0,
484 }, 486 },
485 # below the timeout 487 # below the timeout
486 488
487 worker2_id: { 489 worker2_id: {
488 'queues': [(10, queue2_id), (0, queue1_id)], 490 'queues': [(10, queue2_id), (0, queue1_id)],
489 'hb': 0, 491 'hb': t - 2,
490 'available_slots': 2, 492 'available_slots': 2,
491 }, 493 },
492 # below the timeout and a queue missing from self.router.queues 494 # below the timeout and a queue missing from self.router.queues
493 worker3_id: { 495 worker3_id: {
494 'queues': [(10, queue2_id), (3, nonexistent_queue1)], 496 'queues': [(10, queue2_id), (3, nonexistent_queue1)],
495 'hb': 0, 497 'hb': t - 2,
496 'available_slots': 0, 498 'available_slots': 0,
497 }, 499 },
498 } 500 }
@@ -778,16 +780,19 @@ class TestCase(unittest.TestCase):
778 780
779 # hacky, but the serialize/deserialize converts the keys to unicode 781 # hacky, but the serialize/deserialize converts the keys to unicode
780 # correctly and what not. 782 # correctly and what not.
783 expected_object = {
784 'inflight_messages_by_queue': {},
785 'latency_messages_by_queue': {},
786 'max_latency_messages_by_queue': {},
787 'processed_messages_by_queue': {},
788 'processed_messages_by_worker': {},
789 'waiting_messages_by_queue': {
790 q: len(self.router.waiting_messages[q])
791 for q in self.router.waiting_messages
792 }
793 }
781 self.assertEqual( 794 self.assertEqual(
782 json.loads(json.dumps({ 795 json.loads(json.dumps(expected_object)),
783 'job_latencies_count': len(self.router.job_latencies),
784 'processed_messages': {},
785 'processed_messages_by_worker': {},
786 'waiting_message_counts': [
787 '{}: {}'.format(
788 q,
789 len(self.router.waiting_messages[q])) for q in self.router.waiting_messages] # noqa
790 })),
791 json.loads(self.router.get_status())) 796 json.loads(self.router.get_status()))
792 797
793 self.assertEqual( 798 self.assertEqual(