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
