From e49349becf69ddf68e5e8c7329836e125b4367aa Mon Sep 17 00:00:00 2001 From: Ben Segall Date: Thu, 1 Jun 2023 02:54:56 +0000 Subject: [PATCH] Mark reclient build metrics with the tool that started reclient This will allow us to segment siso and ninja metrics for analysis Bug: b/281504726 Change-Id: If45b272004b236d634c717ea9e28e38e49c6231a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4568610 Commit-Queue: Ben Segall Auto-Submit: Ben Segall Reviewed-by: Junji Watanabe --- autosiso.py | 2 +- ninja_reclient.py | 2 +- reclient_helper.py | 10 +++++----- tests/ninja_reclient_test.py | 3 ++- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/autosiso.py b/autosiso.py index 751a32f5f..4edce58a9 100755 --- a/autosiso.py +++ b/autosiso.py @@ -45,7 +45,7 @@ def main(argv): file=sys.stderr) return 1 - with reclient_helper.build_context(argv) as ret_code: + with reclient_helper.build_context(argv, 'autosiso') as ret_code: if ret_code: return ret_code argv = [ diff --git a/ninja_reclient.py b/ninja_reclient.py index bef10ab17..bc4e79bab 100755 --- a/ninja_reclient.py +++ b/ninja_reclient.py @@ -14,7 +14,7 @@ import reclient_helper def main(argv): - with reclient_helper.build_context(argv) as ret_code: + with reclient_helper.build_context(argv, 'ninja_reclient') as ret_code: if ret_code: return ret_code try: diff --git a/reclient_helper.py b/reclient_helper.py index a65056132..29d7eb75d 100644 --- a/reclient_helper.py +++ b/reclient_helper.py @@ -91,14 +91,14 @@ def find_cache_dir(tmp_dir): return os.path.join(tmp_dir, 'cache') -def set_reproxy_metrics_flags(): +def set_reproxy_metrics_flags(tool): """Helper to setup metrics collection flags for reproxy. The following env vars are set if not already set: RBE_metrics_project=chromium-reclient-metrics RBE_invocation_id=$AUTONINJA_BUILD_ID RBE_metrics_table=rbe_metrics.builds - RBE_metrics_labels=source=developer + RBE_metrics_labels=source=developer,tool={tool} RBE_metrics_prefix=go.chromium.org """ autoninja_id = os.environ.get("AUTONINJA_BUILD_ID") @@ -106,7 +106,7 @@ def set_reproxy_metrics_flags(): os.environ.setdefault("RBE_invocation_id", autoninja_id) os.environ.setdefault("RBE_metrics_project", "chromium-reclient-metrics") os.environ.setdefault("RBE_metrics_table", "rbe_metrics.builds") - os.environ.setdefault("RBE_metrics_labels", "source=developer") + os.environ.setdefault("RBE_metrics_labels", "source=developer,tool=" + tool) os.environ.setdefault("RBE_metrics_prefix", "go.chromium.org") @@ -162,7 +162,7 @@ def set_reproxy_path_flags(out_dir, make_dirs=True): @contextlib.contextmanager -def build_context(argv): +def build_context(argv, tool): # If use_remoteexec is set, but the reclient binaries or configs don't # exist, display an error message and stop. Otherwise, the build will # attempt to run with rewrapper wrapping actions, but will fail with @@ -188,7 +188,7 @@ def build_context(argv): return if reclient_metrics.check_status(ninja_out): - set_reproxy_metrics_flags() + set_reproxy_metrics_flags(tool) reproxy_ret_code = start_reproxy(reclient_cfg, reclient_bin_dir) if reproxy_ret_code != 0: diff --git a/tests/ninja_reclient_test.py b/tests/ninja_reclient_test.py index 9ac382fc4..84d74d1d6 100755 --- a/tests/ninja_reclient_test.py +++ b/tests/ninja_reclient_test.py @@ -96,7 +96,8 @@ class NinjaReclientTest(trial_dir.TestCase): self.assertEqual(os.environ.get('RBE_metrics_project'), "chromium-reclient-metrics") self.assertEqual(os.environ.get('RBE_metrics_table'), "rbe_metrics.builds") - self.assertEqual(os.environ.get('RBE_metrics_labels'), "source=developer") + self.assertEqual(os.environ.get('RBE_metrics_labels'), + "source=developer,tool=ninja_reclient") self.assertEqual(os.environ.get('RBE_metrics_prefix'), "go.chromium.org") mock_metrics_status.assert_called_once_with("out/a")