commit c8b9c7dbb669ef40ad6c7edb1564958c90a0e4be
parent ffe33fa3dfc65212a9f80f19c3f853c7618a47e4
Author: florin.bilt <fbilt@mozilla.com>
Date: Mon, 13 Oct 2025 15:07:31 +0000
Bug 1970636 -Add new fields to performance data to track OS, and OS version. r=perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D265810
Diffstat:
3 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/testing/mozharness/external_tools/performance-artifact-schema.json b/testing/mozharness/external_tools/performance-artifact-schema.json
@@ -30,6 +30,23 @@
"required": ["name"],
"type": "object"
},
+ "os_schema": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "title": "Operating system name",
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 100
+ },
+ "platform_version": {
+ "title": "Operating system version",
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 100
+ }
+ }
+ },
"framework_schema": {
"properties": {
"name": {
@@ -222,6 +239,9 @@
"application": {
"$ref": "#/definitions/application_schema"
},
+ "os": {
+ "$ref": "#/definitions/os_schema"
+ },
"framework": {
"$ref": "#/definitions/framework_schema"
},
diff --git a/testing/raptor/raptor/cmdline.py b/testing/raptor/raptor/cmdline.py
@@ -22,6 +22,8 @@ from mozlog.commandline import add_logging_group
"chrome-m",
"cstm-car-m",
]
+ANDROID_APPS = FIREFOX_ANDROID_APPS + CHROME_ANDROID_APPS
+
FIREFOX_APPS = FIREFOX_ANDROID_APPS + [FIREFOX]
CHROMIUM_DISTROS = [CHROME, CHROMIUM_RELEASE]
diff --git a/testing/raptor/raptor/output.py b/testing/raptor/raptor/output.py
@@ -8,11 +8,13 @@
import copy
import json
import os
+import platform
import warnings
from abc import ABCMeta, abstractmethod
from collections.abc import Iterable
import filters
+from cmdline import ANDROID_APPS
from logger.logger import RaptorLogger
from utils import flatten
@@ -55,6 +57,8 @@ class PerftestOutput(metaclass=ABCMeta):
self.subtest_alert_on = subtest_alert_on
self.browser_name = None
self.browser_version = None
+ self.os_name = platform.system()
+ self.os_platform_version = None
self.extra_summary_methods = extra_summary_methods
@abstractmethod
@@ -66,6 +70,14 @@ class PerftestOutput(metaclass=ABCMeta):
self.browser_name = browser_name
self.browser_version = browser_version
+ def _set_platform_version(self):
+ if self.os_name == "Windows":
+ self.os_platform_version = platform.uname().version
+ elif self.os_name == "Darwin":
+ self.os_platform_version = platform.mac_ver()[0]
+ else: # Linux
+ self.os_platform_version = platform.release()
+
def summarize_supporting_data(self):
"""
Supporting data was gathered outside of the main raptor test; it will be kept
@@ -186,6 +198,13 @@ class PerftestOutput(metaclass=ABCMeta):
data["application"] = {"name": self.browser_name}
if self.browser_version:
data["application"]["version"] = self.browser_version
+
+ # Add os info only for desktop
+ if self.app not in ANDROID_APPS and self.os_name:
+ data["os"] = {"name": self.os_name}
+ self._set_platform_version()
+ if self.os_platform_version:
+ self.data["os"]["platform_version"] = self.os_platform_version
self.summarized_supporting_data.append(data)
return
@@ -273,6 +292,15 @@ class PerftestOutput(metaclass=ABCMeta):
if self.browser_version:
self.summarized_results["application"]["version"] = self.browser_version
+ # Add os info only for desktop
+ if self.app not in ANDROID_APPS and self.os_name:
+ self.summarized_results["os"] = {"name": self.os_name}
+ self._set_platform_version()
+ if self.os_platform_version:
+ self.summarized_results["os"][
+ "platform_version"
+ ] = self.os_platform_version
+
total_perfdata = 0
if output_perf_data:
# if we have supporting data i.e. power, we ONLY want those measurements