diff options
| author | Will Smith | 2020-03-21 17:30:16 -0600 |
|---|---|---|
| committer | Will Smith | 2020-03-21 17:37:22 -0600 |
| commit | e85723a8891e3cd32eb295f773e32162caae97c7 (patch) | |
| tree | d488aaea37defaa72f5e4ea218fb63a3b2adf733 | |
| parent | 132fb46f7ee28e83eeb1ec08ee873b04029d102f (diff) | |
| download | eventmq-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.py | 5 | ||||
| -rw-r--r-- | eventmq/tests/test_router.py | 29 |
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( |