diff options
-rw-r--r-- | buildscripts/metrics/tooling_metrics_utils.py | 12 | ||||
-rw-r--r-- | buildscripts/tests/tooling_metrics/test_tooling_metrics_utils.py | 14 |
2 files changed, 4 insertions, 22 deletions
diff --git a/buildscripts/metrics/tooling_metrics_utils.py b/buildscripts/metrics/tooling_metrics_utils.py index 4a99f90c0f0..29e4e475bc9 100644 --- a/buildscripts/metrics/tooling_metrics_utils.py +++ b/buildscripts/metrics/tooling_metrics_utils.py @@ -1,6 +1,5 @@ import logging import os -import asyncio from typing import Optional from git import Repo import pymongo @@ -24,6 +23,7 @@ def _get_internal_tooling_metrics_client(): serverSelectionTimeoutMS=1000, connectTimeoutMS=1000, waitQueueTimeoutMS=1000, + retryWrites=False, ) @@ -61,7 +61,7 @@ def should_collect_metrics() -> bool: return _is_virtual_workstation() and not _has_metrics_opt_out() -async def _save_metrics(metrics: ToolingMetrics) -> None: +def _save_metrics(metrics: ToolingMetrics) -> None: """Save tooling metrics data.""" client = _get_internal_tooling_metrics_client() client.metrics.tooling_metrics.insert_one(metrics.dict()) @@ -70,12 +70,8 @@ async def _save_metrics(metrics: ToolingMetrics) -> None: def save_tooling_metrics(tooling_metrics: ToolingMetrics) -> None: """Persist tooling metrics data to MongoDB Internal Atlas Cluster.""" try: - asyncio.run(asyncio.wait_for(_save_metrics(tooling_metrics), timeout=1.0)) - except asyncio.TimeoutError as exc: - logger.warning( - "%s\nTimeout: Tooling metrics collection is not available -- this is a non-issue.\nIf this message persists, feel free to reach out to #server-development-platform", - exc) + _save_metrics(tooling_metrics) except Exception as exc: # pylint: disable=broad-except logger.warning( - "%s\nUnexpected: Tooling metrics collection is not available -- this is a non-issue.\nIf this message persists, feel free to reach out to #server-development-platform", + "\n%s\n\nUnexpected: Tooling metrics collection is not available -- this is a non-issue.\nIf this message persists, feel free to reach out to #server-development-platform", exc) diff --git a/buildscripts/tests/tooling_metrics/test_tooling_metrics_utils.py b/buildscripts/tests/tooling_metrics/test_tooling_metrics_utils.py index 0b64c6bb05a..b540a529d78 100644 --- a/buildscripts/tests/tooling_metrics/test_tooling_metrics_utils.py +++ b/buildscripts/tests/tooling_metrics/test_tooling_metrics_utils.py @@ -16,11 +16,6 @@ import buildscripts.metrics.tooling_metrics_utils as under_test TEST_INTERNAL_TOOLING_METRICS_HOSTNAME = 'mongodb://testing:27017' CURRENT_DATE_TIME = datetime(2022, 10, 4) - -async def extended_sleep(arg): - await asyncio.sleep(2) - - # Metrics collection is not supported for Windows if os.name == "nt": sys.exit() @@ -46,15 +41,6 @@ class TestSaveToolingMetrics(unittest.TestCase): client = pymongo.MongoClient(host=TEST_INTERNAL_TOOLING_METRICS_HOSTNAME) assert not client.metrics.tooling_metrics.find_one() - @mongomock.patch(servers=((TEST_INTERNAL_TOOLING_METRICS_HOSTNAME), )) - @patch("buildscripts.metrics.tooling_metrics_utils._save_metrics", side_effect=extended_sleep) - def test_timeout_caught(self, mock_save_metrics): - with self.assertLogs('tooling_metrics_utils') as cm: - under_test.save_tooling_metrics(ToolingMetrics.get_resmoke_metrics(CURRENT_DATE_TIME)) - assert "Timeout: Tooling metrics collection is not available" in cm.output[0] - client = pymongo.MongoClient(host=TEST_INTERNAL_TOOLING_METRICS_HOSTNAME) - assert not client.metrics.tooling_metrics.find_one() - class TestIsVirtualWorkstation(unittest.TestCase): @patch("buildscripts.metrics.tooling_metrics_utils._toolchain_exists", return_value=False) |