summaryrefslogtreecommitdiff
path: root/site_scons/site_tools
diff options
context:
space:
mode:
authorDaniel Moody <daniel.moody@mongodb.com>2022-09-22 14:45:49 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-09-22 16:09:39 +0000
commit0e1fc9235a8aea220f10bacb76ef44fecd98bdfd (patch)
treec922fa9b27e1bd7e62e2d7ae6e98dc5b02b6a7ba /site_scons/site_tools
parent03714079f41a7d41a466316fd8486ee0215d2bc9 (diff)
downloadmongo-0e1fc9235a8aea220f10bacb76ef44fecd98bdfd.tar.gz
SERVER-69811 don't use pythons mac_ver
Diffstat (limited to 'site_scons/site_tools')
-rw-r--r--site_scons/site_tools/build_metrics/per_action_metrics.py14
-rw-r--r--site_scons/site_tools/build_metrics/util.py19
2 files changed, 23 insertions, 10 deletions
diff --git a/site_scons/site_tools/build_metrics/per_action_metrics.py b/site_scons/site_tools/build_metrics/per_action_metrics.py
index 95028a661bf..18a93345b8d 100644
--- a/site_scons/site_tools/build_metrics/per_action_metrics.py
+++ b/site_scons/site_tools/build_metrics/per_action_metrics.py
@@ -1,13 +1,13 @@
import functools
import time
import psutil
-import platform
+import subprocess
import memory_profiler
import SCons
import sys
-from .util import fullname
+from .util import fullname, mem_adjustment
from .protocol import BuildMetricsCollector
@@ -180,14 +180,8 @@ class PerActionMetrics(BuildMetricsCollector):
task_metrics['end_time'] = time.time_ns()
task_metrics['cpu_time'] = int(cpu_usage * (10.0**9.0))
- # apparently macos big sur (11) changed some of the api for getting memory,
- # so the memory comes up a bit larger than expected:
- # https://github.com/giampaolo/psutil/issues/1908
- if sys.platform == "darwin" and platform.mac_ver()[0] and int(
- platform.mac_ver()[0].split('.')[0]) > 10:
- task_metrics['mem_usage'] = int(mem_usage / 1024.0)
- else:
- task_metrics['mem_usage'] = int(mem_usage)
+ task_metrics['mem_usage'] = mem_adjustment(int(mem_usage))
+
self.build_tasks_metrics.append(task_metrics)
task_metrics['array_index'] = self.build_tasks_metrics.index(task_metrics)
diff --git a/site_scons/site_tools/build_metrics/util.py b/site_scons/site_tools/build_metrics/util.py
index 5762033f007..db61782a963 100644
--- a/site_scons/site_tools/build_metrics/util.py
+++ b/site_scons/site_tools/build_metrics/util.py
@@ -1,4 +1,6 @@
import time
+import sys
+import subprocess
_BUILD_METRIC_DATA = {}
@@ -35,6 +37,23 @@ class CaptureAtexits:
return False
+def mem_adjustment(mem_usage):
+ # apparently macos big sur (11) changed some of the api for getting memory,
+ # so the memory comes up a bit larger than expected. Testing shows it about
+ # 10 times large then what native macos tools report, so we will do some
+ # adjustment in the mean time until its fixed:
+ # https://github.com/giampaolo/psutil/issues/1908
+ try:
+ if sys.platform == "darwin":
+ mem_adjust_version = subprocess.run(['sw_vers', '-productVersion'], capture_output=True,
+ text=True, check=False).stdout.split('.')[0]
+ if int(mem_adjust_version) > 10:
+ return int(mem_usage / 10)
+ except (IndexError, ValueError):
+ pass
+ return mem_usage
+
+
def get_build_metric_dict():
global _BUILD_METRIC_DATA
return _BUILD_METRIC_DATA