[DVQA] Fix: allow export cpu_usage through new perf metrics API

Bug: b/246095034
Change-Id: I646ec0b1adf6d1285eb7c39ff65c4a68395bd6aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276264
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38156}
diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
index 46d3270..e206a10 100644
--- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
+++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
@@ -898,8 +898,15 @@
     ReportResults(GetTestCaseName(ToMetricName(item.first)), item.second,
                   stream_frame_counters_.at(item.first));
   }
-  test::PrintResult("cpu_usage", "", test_label_.c_str(), GetCpuUsagePercent(),
-                    "%", false, ImproveDirection::kSmallerIsBetter);
+  if (metrics_logger_ == nullptr) {
+    test::PrintResult("cpu_usage", "", test_label_.c_str(),
+                      GetCpuUsagePercent(), "%", false,
+                      ImproveDirection::kSmallerIsBetter);
+  } else {
+    metrics_logger_->LogSingleValueMetric(
+        "cpu_usage", test_label_, GetCpuUsagePercent(), Unit::kPercent,
+        ImprovementDirection::kSmallerIsBetter);
+  }
   LogFrameCounters("Global", frame_counters_);
   if (!unknown_sender_frame_counters_.empty()) {
     RTC_LOG(LS_INFO) << "Received frame counters with unknown frame id:";
diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer_metric_names_test.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer_metric_names_test.cc
index f2ca603..560d589 100644
--- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer_metric_names_test.cc
+++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer_metric_names_test.cc
@@ -313,7 +313,12 @@
               .test_case = "test_case/alice_video",
               .name = "recv_delta_frame_size_bytes",
               .unit = Unit::kCount,
-              .improvement_direction = ImprovementDirection::kBiggerIsBetter}));
+              .improvement_direction = ImprovementDirection::kBiggerIsBetter},
+          MetricValidationInfo{.test_case = "test_case",
+                               .name = "cpu_usage",
+                               .unit = Unit::kPercent,
+                               .improvement_direction =
+                                   ImprovementDirection::kSmallerIsBetter}));
 }
 
 TEST(DefaultVideoQualityAnalyzerMetricNamesTest,
@@ -607,7 +612,12 @@
               .test_case = "test_case/alice_video_alice_charlie",
               .name = "recv_delta_frame_size_bytes",
               .unit = Unit::kCount,
-              .improvement_direction = ImprovementDirection::kBiggerIsBetter}));
+              .improvement_direction = ImprovementDirection::kBiggerIsBetter},
+          MetricValidationInfo{.test_case = "test_case",
+                               .name = "cpu_usage",
+                               .unit = Unit::kPercent,
+                               .improvement_direction =
+                                   ImprovementDirection::kSmallerIsBetter}));
 }
 
 TEST(DefaultVideoQualityAnalyzerMetricNamesTest,
@@ -639,10 +649,11 @@
 
   std::vector<std::string> metrics =
       ToTestCases(metrics_logger.GetCollectedMetrics());
-  EXPECT_THAT(metrics, SizeIs(52));
+  EXPECT_THAT(metrics, SizeIs(53));
   EXPECT_THAT(metrics, Contains("test_case/alice_video_alice_bob").Times(26));
   EXPECT_THAT(metrics,
               Contains("test_case/alice_video_alice_charlie").Times(26));
+  EXPECT_THAT(metrics, Contains("test_case").Times(1));
 }
 
 }  // namespace