build api metrics: add metrics reporting for unit tests
This will propagate timings for any emerge phases during tests up to the
analytics server.
BUG=None
TEST=./run_tests
Cq-Depend: chromium:1912766
Change-Id: I5a9fef310b8fd5dcf66b9b2e460a321d446ada6f
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1912769
Tested-by: Will Bradley <wbbradley@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/api/controller/test.py b/api/controller/test.py
index 3b88757..2e8892c 100644
--- a/api/controller/test.py
+++ b/api/controller/test.py
@@ -15,6 +15,7 @@
from chromite.api import controller
from chromite.api import faux
from chromite.api import validate
+from chromite.api.metrics import deserialize_metrics_log
from chromite.api.controller import controller_util
from chromite.api.gen.chromite.api import test_pb2
from chromite.cbuildbot import goma_util
@@ -27,6 +28,7 @@
from chromite.scripts import cros_set_lsb_release
from chromite.service import test
from chromite.utils import key_value_store
+from chromite.utils import metrics
@faux.all_empty
@@ -60,6 +62,7 @@
@validate.require('build_target.name', 'result_path')
@validate.exists('result_path')
@validate.validation_complete
+@metrics.collect_metrics
def BuildTargetUnitTest(input_proto, output_proto, _config):
"""Run a build target's ebuild unit tests."""
# Required args.
@@ -98,6 +101,7 @@
tarball = test.BuildTargetUnitTestTarball(chroot, sysroot, result_path)
if tarball:
output_proto.tarball_path = tarball
+ deserialize_metrics_log(output_proto.events, prefix=build_target.name)
@faux.all_empty