Add missing export to the perf output file

Bug: b/246095034
Change-Id: I53f327bd9d36c6cda814cead9493b21a3757d784
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276622
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38220}
diff --git a/audio/BUILD.gn b/audio/BUILD.gn
index bb31ca0..e42a122 100644
--- a/audio/BUILD.gn
+++ b/audio/BUILD.gn
@@ -224,12 +224,14 @@
         "../api:peer_connection_quality_test_fixture_api",
         "../api:simulated_network_api",
         "../api:time_controller",
+        "../api/test/metrics:chrome_perf_dashboard_metrics_exporter",
         "../api/test/metrics:global_metrics_logger_and_exporter",
+        "../api/test/metrics:metrics_exporter",
+        "../api/test/metrics:stdout_metrics_exporter",
         "../call:simulated_network",
         "../common_audio",
         "../system_wrappers",
         "../test:fileutils",
-        "../test:perf_test",
         "../test:test_common",
         "../test:test_main",
         "../test:test_support",
diff --git a/audio/test/pc_low_bandwidth_audio_test.cc b/audio/test/pc_low_bandwidth_audio_test.cc
index 8ce3836..4fab15b 100644
--- a/audio/test/pc_low_bandwidth_audio_test.cc
+++ b/audio/test/pc_low_bandwidth_audio_test.cc
@@ -15,7 +15,10 @@
 #include "absl/strings/string_view.h"
 #include "api/test/create_network_emulation_manager.h"
 #include "api/test/create_peerconnection_quality_test_fixture.h"
+#include "api/test/metrics/chrome_perf_dashboard_metrics_exporter.h"
 #include "api/test/metrics/global_metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_exporter.h"
+#include "api/test/metrics/stdout_metrics_exporter.h"
 #include "api/test/network_emulation_manager.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/simulated_network.h"
@@ -24,7 +27,6 @@
 #include "test/gtest.h"
 #include "test/pc/e2e/network_quality_metrics_reporter.h"
 #include "test/testsupport/file_utils.h"
-#include "test/testsupport/perf_test.h"
 
 ABSL_DECLARE_FLAG(std::string, test_case_prefix);
 ABSL_DECLARE_FLAG(int, sample_rate_hz);
@@ -99,7 +101,12 @@
 
 void LogTestResults() {
   std::string perf_results_output_file = PerfResultsOutputFile();
-  EXPECT_TRUE(webrtc::test::WritePerfResults(perf_results_output_file));
+  std::vector<std::unique_ptr<MetricsExporter>> exporters;
+  exporters.push_back(std::make_unique<StdoutMetricsExporter>());
+  exporters.push_back(std::make_unique<ChromePerfDashboardMetricsExporter>(
+      perf_results_output_file));
+  EXPECT_TRUE(
+      ExportPerfMetric(*GetGlobalMetricsLogger(), std::move(exporters)));
 
   const ::testing::TestInfo* const test_info =
       ::testing::UnitTest::GetInstance()->current_test_info();
diff --git a/rtc_tools/BUILD.gn b/rtc_tools/BUILD.gn
index 21dc736..19b885d 100644
--- a/rtc_tools/BUILD.gn
+++ b/rtc_tools/BUILD.gn
@@ -140,9 +140,11 @@
     ":video_quality_analysis",
     "../api:make_ref_counted",
     "../api:scoped_refptr",
+    "../api/test/metrics:chrome_perf_dashboard_metrics_exporter",
     "../api/test/metrics:global_metrics_logger_and_exporter",
+    "../api/test/metrics:metrics_exporter",
+    "../api/test/metrics:stdout_metrics_exporter",
     "../rtc_base:stringutils",
-    "../test:perf_test",
     "//third_party/abseil-cpp/absl/flags:flag",
     "//third_party/abseil-cpp/absl/flags:parse",
     "//third_party/abseil-cpp/absl/strings",
diff --git a/rtc_tools/frame_analyzer/frame_analyzer.cc b/rtc_tools/frame_analyzer/frame_analyzer.cc
index 2224f48..501a614 100644
--- a/rtc_tools/frame_analyzer/frame_analyzer.cc
+++ b/rtc_tools/frame_analyzer/frame_analyzer.cc
@@ -19,7 +19,10 @@
 #include "absl/flags/parse.h"
 #include "absl/strings/match.h"
 #include "api/scoped_refptr.h"
+#include "api/test/metrics/chrome_perf_dashboard_metrics_exporter.h"
 #include "api/test/metrics/global_metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_exporter.h"
+#include "api/test/metrics/stdout_metrics_exporter.h"
 #include "rtc_base/strings/string_builder.h"
 #include "rtc_tools/frame_analyzer/video_color_aligner.h"
 #include "rtc_tools/frame_analyzer/video_geometry_aligner.h"
@@ -27,7 +30,6 @@
 #include "rtc_tools/frame_analyzer/video_temporal_aligner.h"
 #include "rtc_tools/video_file_reader.h"
 #include "rtc_tools/video_file_writer.h"
-#include "test/testsupport/perf_test.h"
 
 ABSL_FLAG(int32_t, width, -1, "The width of the reference and test files");
 ABSL_FLAG(int32_t, height, -1, "The height of the reference and test files");
@@ -163,12 +165,18 @@
   webrtc::test::PrintAnalysisResults(absl::GetFlag(FLAGS_label), results,
                                      *webrtc::test::GetGlobalMetricsLogger());
 
+  std::vector<std::unique_ptr<webrtc::test::MetricsExporter>> exporters;
+  exporters.push_back(std::make_unique<webrtc::test::StdoutMetricsExporter>());
   std::string chartjson_result_file =
       absl::GetFlag(FLAGS_chartjson_result_file);
   if (!chartjson_result_file.empty()) {
-    if (!webrtc::test::WritePerfResults(chartjson_result_file)) {
-      return 1;
-    }
+    exporters.push_back(
+        std::make_unique<webrtc::test::ChromePerfDashboardMetricsExporter>(
+            chartjson_result_file));
+  }
+  if (!webrtc::test::ExportPerfMetric(*webrtc::test::GetGlobalMetricsLogger(),
+                                      std::move(exporters))) {
+    return 1;
   }
   std::string aligned_output_file = absl::GetFlag(FLAGS_aligned_output_file);
   if (!aligned_output_file.empty()) {