commit c7ef36c36ab706855b9e3ecb606e7595120c86ef
parent 2465f82a89b53c371d07f23b2b51a008cb2254b0
Author: Florian Quèze <florian@queze.net>
Date: Thu, 23 Oct 2025 21:13:08 +0000
Bug 1995627 - use the structured log time field for begin_test and end_test in resourcemonitor.py, r=ahal.
Differential Revision: https://phabricator.services.mozilla.com/D269627
Diffstat:
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py b/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py
@@ -420,6 +420,18 @@ class SystemResourceMonitor:
def convert_to_monotonic_time(self, timestamp):
return timestamp - self.start_timestamp + self.start_time
+ def get_monotonic_time_from_data(self, data):
+ """Convert structured logging timestamp to monotonic time.
+
+ Args:
+ data: Dictionary with "time" field in milliseconds
+
+ Returns:
+ Monotonic timestamp
+ """
+ time_sec = data["time"] / 1000
+ return self.convert_to_monotonic_time(time_sec)
+
# Methods to control monitoring.
def start(self):
@@ -767,11 +779,13 @@ class SystemResourceMonitor:
"""Begin tracking a test with enhanced metadata support.
Args:
- data: Dictionary containing test data (e.g., {"test": "test_name"})
+ data: Dictionary containing test data (e.g., {"test": "test_name", "time": timestamp})
"""
if SystemResourceMonitor.instance and "test" in data:
test_name = data["test"]
- SystemResourceMonitor.instance._active_markers[test_name] = time.monotonic()
+ SystemResourceMonitor.instance._active_markers[test_name] = (
+ SystemResourceMonitor.instance.get_monotonic_time_from_data(data)
+ )
@staticmethod
def end_test(data):
@@ -792,7 +806,7 @@ class SystemResourceMonitor:
return
start = SystemResourceMonitor.instance._active_markers.pop(test_name)
- end = time.monotonic()
+ end = SystemResourceMonitor.instance.get_monotonic_time_from_data(data)
# Create marker data with test information
marker_data = {
@@ -848,8 +862,7 @@ class SystemResourceMonitor:
if not SystemResourceMonitor.instance:
return
- time_sec = data["time"] / 1000
- timestamp = SystemResourceMonitor.instance.convert_to_monotonic_time(time_sec)
+ timestamp = SystemResourceMonitor.instance.get_monotonic_time_from_data(data)
marker_data = {"type": "TestStatus"}
@@ -902,8 +915,7 @@ class SystemResourceMonitor:
if not SystemResourceMonitor.instance:
return
- time_sec = data["time"] / 1000
- timestamp = SystemResourceMonitor.instance.convert_to_monotonic_time(time_sec)
+ timestamp = SystemResourceMonitor.instance.get_monotonic_time_from_data(data)
marker_data = {
"type": "Crash",