[PCLF] Replace MetricsLoggerAndExporter with MetricsLogger

Bug: b/246095034
Change-Id: I06b3b4eb43a3555b359e3c1aee332d5d05d1e567
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276601
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38181}
diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn
index c62e8f7..3a7114b 100644
--- a/test/pc/e2e/BUILD.gn
+++ b/test/pc/e2e/BUILD.gn
@@ -409,6 +409,7 @@
         "../../../api/rtc_event_log",
         "../../../api/task_queue",
         "../../../api/test/metrics:metric",
+        "../../../api/test/metrics:metrics_logger",
         "../../../api/test/metrics:metrics_logger_and_exporter",
         "../../../api/units:time_delta",
         "../../../api/units:timestamp",
@@ -525,6 +526,7 @@
         "../../../api:create_peer_connection_quality_test_frame_generator",
         "../../../api:network_emulation_manager_api",
         "../../../api:peer_connection_quality_test_fixture_api",
+        "../../../api/test/metrics:metrics_logger",
         "../../../api/test/metrics:metrics_logger_and_exporter",
         "../../../api/test/metrics:stdout_metrics_exporter",
         "../../../api/units:time_delta",
@@ -598,6 +600,7 @@
         "../../../api:create_frame_generator",
         "../../../api:rtp_packet_info",
         "../../../api/test/metrics:metric",
+        "../../../api/test/metrics:metrics_logger",
         "../../../api/test/metrics:metrics_logger_and_exporter",
         "../../../api/test/metrics:stdout_metrics_exporter",
         "../../../api/video:encoded_image",
@@ -690,6 +693,7 @@
       "../../../api:track_id_stream_info_map",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:time_delta",
       "../../../api/units:timestamp",
@@ -736,6 +740,7 @@
       "../../../api:track_id_stream_info_map",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:data_rate",
       "../../../api/units:data_size",
@@ -765,6 +770,7 @@
       "../../../api:video_quality_analyzer_api",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:data_size",
       "../../../api/units:time_delta",
@@ -875,6 +881,7 @@
       "../../../api:rtc_stats_api",
       "../../../api:track_id_stream_info_map",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:data_size",
       "../../../rtc_base:criticalsection",
@@ -901,6 +908,7 @@
       "../../../api:scoped_refptr",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/test/network_emulation",
       "../../../api/units:data_rate",
@@ -931,6 +939,7 @@
       "../../../api:track_id_stream_info_map",
       "../../../api/numerics",
       "../../../api/test/metrics:metric",
+      "../../../api/test/metrics:metrics_logger",
       "../../../api/test/metrics:metrics_logger_and_exporter",
       "../../../api/units:timestamp",
       "../../../rtc_base:criticalsection",
diff --git a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h
index 673f907..c08e740 100644
--- a/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h
+++ b/test/pc/e2e/analyzer/audio/default_audio_quality_analyzer.h
@@ -17,7 +17,7 @@
 #include "absl/strings/string_view.h"
 #include "api/numerics/samples_stats_counter.h"
 #include "api/test/audio_quality_analyzer_interface.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/track_id_stream_info_map.h"
 #include "api/units/time_delta.h"
 #include "rtc_base/synchronization/mutex.h"
@@ -40,7 +40,7 @@
   DefaultAudioQualityAnalyzer()
       : DefaultAudioQualityAnalyzer(/*metrics_logger=*/nullptr) {}
   explicit DefaultAudioQualityAnalyzer(
-      test::MetricsLoggerAndExporter* const metrics_logger)
+      test::MetricsLogger* const metrics_logger)
       : metrics_logger_(metrics_logger) {}
 
   void Start(std::string test_case_name,
@@ -72,7 +72,7 @@
                     const std::string& unit,
                     webrtc::test::ImproveDirection improve_direction) const;
 
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_case_name_;
   TrackIdStreamInfoMap* analyzer_helper_;
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 fb294fb..95a73b3 100644
--- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
+++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc
@@ -133,7 +133,7 @@
 
 DefaultVideoQualityAnalyzer::DefaultVideoQualityAnalyzer(
     webrtc::Clock* clock,
-    test::MetricsLoggerAndExporter* metrics_logger,
+    test::MetricsLogger* metrics_logger,
     DefaultVideoQualityAnalyzerOptions options)
     : options_(options),
       clock_(clock),
diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h
index c1b7fe8..e26d7b4 100644
--- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h
+++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h
@@ -22,7 +22,7 @@
 
 #include "api/array_view.h"
 #include "api/numerics/samples_stats_counter.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/video_quality_analyzer_interface.h"
 #include "api/units/data_size.h"
 #include "api/units/timestamp.h"
@@ -51,7 +51,7 @@
       webrtc::Clock* clock,
       DefaultVideoQualityAnalyzerOptions options = {});
   DefaultVideoQualityAnalyzer(webrtc::Clock* clock,
-                              test::MetricsLoggerAndExporter* metrics_logger,
+                              test::MetricsLogger* metrics_logger,
                               DefaultVideoQualityAnalyzerOptions options = {});
   ~DefaultVideoQualityAnalyzer() override;
 
@@ -152,7 +152,7 @@
 
   const DefaultVideoQualityAnalyzerOptions options_;
   webrtc::Clock* const clock_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_label_;
 
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 a54bf2f..6929145 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
@@ -16,7 +16,7 @@
 #include "api/rtp_packet_infos.h"
 #include "api/test/create_frame_generator.h"
 #include "api/test/metrics/metric.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/metrics/stdout_metrics_exporter.h"
 #include "api/video/encoded_image.h"
 #include "api/video/i420_buffer.h"
@@ -35,10 +35,10 @@
 using ::testing::SizeIs;
 using ::testing::UnorderedElementsAre;
 
+using ::webrtc::test::DefaultMetricsLogger;
 using ::webrtc::test::ImprovementDirection;
 using ::webrtc::test::Metric;
 using ::webrtc::test::MetricsExporter;
-using ::webrtc::test::MetricsLoggerAndExporter;
 using ::webrtc::test::StdoutMetricsExporter;
 using ::webrtc::test::Unit;
 
@@ -165,10 +165,7 @@
                                        /*num_squares=*/absl::nullopt);
 
   DefaultVideoQualityAnalyzerOptions options = AnalyzerOptionsForTest();
-  std::vector<std::unique_ptr<MetricsExporter>> exporters;
-  exporters.push_back(std::make_unique<StdoutMetricsExporter>());
-  MetricsLoggerAndExporter metrics_logger(Clock::GetRealTimeClock(),
-                                          std::move(exporters));
+  DefaultMetricsLogger metrics_logger(Clock::GetRealTimeClock());
   DefaultVideoQualityAnalyzer analyzer(Clock::GetRealTimeClock(),
                                        &metrics_logger, options);
   analyzer.Start("test_case", std::vector<std::string>{"alice", "bob"},
@@ -329,10 +326,7 @@
                                        /*num_squares=*/absl::nullopt);
 
   DefaultVideoQualityAnalyzerOptions options = AnalyzerOptionsForTest();
-  std::vector<std::unique_ptr<MetricsExporter>> exporters;
-  exporters.push_back(std::make_unique<StdoutMetricsExporter>());
-  MetricsLoggerAndExporter metrics_logger(Clock::GetRealTimeClock(),
-                                          std::move(exporters));
+  DefaultMetricsLogger metrics_logger(Clock::GetRealTimeClock());
   DefaultVideoQualityAnalyzer analyzer(Clock::GetRealTimeClock(),
                                        &metrics_logger, options);
   analyzer.Start("test_case",
@@ -628,10 +622,7 @@
                                        /*num_squares=*/absl::nullopt);
 
   DefaultVideoQualityAnalyzerOptions options = AnalyzerOptionsForTest();
-  std::vector<std::unique_ptr<MetricsExporter>> exporters;
-  exporters.push_back(std::make_unique<StdoutMetricsExporter>());
-  MetricsLoggerAndExporter metrics_logger(Clock::GetRealTimeClock(),
-                                          std::move(exporters));
+  DefaultMetricsLogger metrics_logger(Clock::GetRealTimeClock());
   DefaultVideoQualityAnalyzer analyzer(Clock::GetRealTimeClock(),
                                        &metrics_logger, options);
   analyzer.Start("test_case",
diff --git a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h
index bab97e9..5d3d2ad 100644
--- a/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h
+++ b/test/pc/e2e/analyzer/video/video_quality_metrics_reporter.h
@@ -16,7 +16,7 @@
 
 #include "absl/strings/string_view.h"
 #include "api/numerics/samples_stats_counter.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/track_id_stream_info_map.h"
 #include "api/units/data_size.h"
@@ -40,7 +40,7 @@
       : VideoQualityMetricsReporter(clock, /*metrics_logger=*/nullptr) {}
   explicit VideoQualityMetricsReporter(
       Clock* const clock,
-      test::MetricsLoggerAndExporter* const metrics_logger)
+      test::MetricsLogger* const metrics_logger)
       : clock_(clock), metrics_logger_(metrics_logger) {}
   ~VideoQualityMetricsReporter() override = default;
 
@@ -73,7 +73,7 @@
   Timestamp Now() const { return clock_->CurrentTime(); }
 
   Clock* const clock_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_case_name_;
   absl::optional<Timestamp> start_time_;
diff --git a/test/pc/e2e/cross_media_metrics_reporter.h b/test/pc/e2e/cross_media_metrics_reporter.h
index fbb90b2..f43d80b 100644
--- a/test/pc/e2e/cross_media_metrics_reporter.h
+++ b/test/pc/e2e/cross_media_metrics_reporter.h
@@ -17,7 +17,7 @@
 #include "absl/strings/string_view.h"
 #include "absl/types/optional.h"
 #include "api/numerics/samples_stats_counter.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/track_id_stream_info_map.h"
 #include "api/units/timestamp.h"
@@ -32,8 +32,7 @@
  public:
   CrossMediaMetricsReporter()
       : CrossMediaMetricsReporter(/*metrics_logger=*/nullptr) {}
-  explicit CrossMediaMetricsReporter(
-      test::MetricsLoggerAndExporter* metrics_logger)
+  explicit CrossMediaMetricsReporter(test::MetricsLogger* metrics_logger)
       : metrics_logger_(metrics_logger) {}
   ~CrossMediaMetricsReporter() override = default;
 
@@ -62,7 +61,7 @@
   std::string GetTestCaseName(const std::string& stream_label,
                               const std::string& sync_group) const;
 
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_case_name_;
   const TrackIdStreamInfoMap* reporter_helper_;
diff --git a/test/pc/e2e/network_quality_metrics_reporter.h b/test/pc/e2e/network_quality_metrics_reporter.h
index 63b35e9..db62c26 100644
--- a/test/pc/e2e/network_quality_metrics_reporter.h
+++ b/test/pc/e2e/network_quality_metrics_reporter.h
@@ -15,7 +15,7 @@
 #include <string>
 
 #include "absl/strings/string_view.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/network_emulation_manager.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/track_id_stream_info_map.h"
@@ -35,7 +35,7 @@
                                       /*metrics_logger=*/nullptr) {}
   NetworkQualityMetricsReporter(EmulatedNetworkManagerInterface* alice_network,
                                 EmulatedNetworkManagerInterface* bob_network,
-                                test::MetricsLoggerAndExporter* metrics_logger)
+                                test::MetricsLogger* metrics_logger)
       : alice_network_(alice_network),
         bob_network_(bob_network),
         metrics_logger_(metrics_logger) {}
@@ -73,7 +73,7 @@
 
   EmulatedNetworkManagerInterface* const alice_network_;
   EmulatedNetworkManagerInterface* const bob_network_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
   Mutex lock_;
   std::map<std::string, PCStats> pc_stats_ RTC_GUARDED_BY(lock_);
 };
diff --git a/test/pc/e2e/peer_connection_quality_test.cc b/test/pc/e2e/peer_connection_quality_test.cc
index 8b7e5c6..af38176 100644
--- a/test/pc/e2e/peer_connection_quality_test.cc
+++ b/test/pc/e2e/peer_connection_quality_test.cc
@@ -142,7 +142,7 @@
     TimeController& time_controller,
     std::unique_ptr<AudioQualityAnalyzerInterface> audio_quality_analyzer,
     std::unique_ptr<VideoQualityAnalyzerInterface> video_quality_analyzer,
-    test::MetricsLoggerAndExporter* metrics_logger)
+    test::MetricsLogger* metrics_logger)
     : time_controller_(time_controller),
       task_queue_factory_(time_controller_.CreateTaskQueueFactory()),
       test_case_name_(std::move(test_case_name)),
diff --git a/test/pc/e2e/peer_connection_quality_test.h b/test/pc/e2e/peer_connection_quality_test.h
index 94b2178..532cec3 100644
--- a/test/pc/e2e/peer_connection_quality_test.h
+++ b/test/pc/e2e/peer_connection_quality_test.h
@@ -18,7 +18,7 @@
 #include "absl/strings/string_view.h"
 #include "api/task_queue/task_queue_factory.h"
 #include "api/test/audio_quality_analyzer_interface.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
 #include "api/test/time_controller.h"
 #include "api/units/time_delta.h"
@@ -62,7 +62,7 @@
       TimeController& time_controller,
       std::unique_ptr<AudioQualityAnalyzerInterface> audio_quality_analyzer,
       std::unique_ptr<VideoQualityAnalyzerInterface> video_quality_analyzer,
-      test::MetricsLoggerAndExporter* metrics_logger);
+      test::MetricsLogger* metrics_logger);
 
   ~PeerConnectionE2EQualityTest() override = default;
 
@@ -124,7 +124,7 @@
   std::unique_ptr<EncodedImageDataPropagator> encoded_image_data_propagator_;
   std::unique_ptr<AudioQualityAnalyzerInterface> audio_quality_analyzer_;
   std::unique_ptr<TestActivitiesExecutor> executor_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::vector<std::unique_ptr<PeerConfigurerImpl>> peer_configurations_;
   std::vector<PeerHandleImpl> peer_handles_;
diff --git a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
index 804d089..b82850b 100644
--- a/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
+++ b/test/pc/e2e/peer_connection_quality_test_metric_names_test.cc
@@ -12,7 +12,7 @@
 
 #include "api/test/create_network_emulation_manager.h"
 #include "api/test/create_peer_connection_quality_test_frame_generator.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/metrics/stdout_metrics_exporter.h"
 #include "api/test/network_emulation_manager.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
@@ -28,10 +28,10 @@
 
 using ::testing::UnorderedElementsAre;
 
+using ::webrtc::test::DefaultMetricsLogger;
 using ::webrtc::test::ImprovementDirection;
 using ::webrtc::test::Metric;
 using ::webrtc::test::MetricsExporter;
-using ::webrtc::test::MetricsLoggerAndExporter;
 using ::webrtc::test::StdoutMetricsExporter;
 using ::webrtc::test::Unit;
 using RunParams =
@@ -103,10 +103,8 @@
      ExportedMetricsHasCorrectName) {
   std::unique_ptr<NetworkEmulationManager> network_emulation =
       CreateNetworkEmulationManager(TimeMode::kSimulated);
-  std::vector<std::unique_ptr<MetricsExporter>> exporters;
-  exporters.push_back(std::make_unique<StdoutMetricsExporter>());
-  MetricsLoggerAndExporter metrics_logger(
-      network_emulation->time_controller()->GetClock(), std::move(exporters));
+  DefaultMetricsLogger metrics_logger(
+      network_emulation->time_controller()->GetClock());
   PeerConnectionE2EQualityTest fixture(
       "test_case", *network_emulation->time_controller(),
       /*audio_quality_analyzer=*/nullptr, /*video_quality_analyzer=*/nullptr,
diff --git a/test/pc/e2e/stats_based_network_quality_metrics_reporter.h b/test/pc/e2e/stats_based_network_quality_metrics_reporter.h
index f362c76..e30dda4 100644
--- a/test/pc/e2e/stats_based_network_quality_metrics_reporter.h
+++ b/test/pc/e2e/stats_based_network_quality_metrics_reporter.h
@@ -21,7 +21,7 @@
 
 #include "absl/strings/string_view.h"
 #include "api/numerics/samples_stats_counter.h"
-#include "api/test/metrics/metrics_logger_and_exporter.h"
+#include "api/test/metrics/metrics_logger.h"
 #include "api/test/network_emulation/network_emulation_interfaces.h"
 #include "api/test/network_emulation_manager.h"
 #include "api/test/peerconnection_quality_test_fixture.h"
@@ -48,7 +48,7 @@
   StatsBasedNetworkQualityMetricsReporter(
       std::map<std::string, std::vector<EmulatedEndpoint*>> peer_endpoints,
       NetworkEmulationManager* network_emulation,
-      test::MetricsLoggerAndExporter* metrics_logger)
+      test::MetricsLogger* metrics_logger)
       : collector_(std::move(peer_endpoints), network_emulation),
         clock_(network_emulation->time_controller()->GetClock()),
         metrics_logger_(metrics_logger) {}
@@ -125,7 +125,7 @@
 
   NetworkLayerStatsCollector collector_;
   Clock* const clock_;
-  test::MetricsLoggerAndExporter* const metrics_logger_;
+  test::MetricsLogger* const metrics_logger_;
 
   std::string test_case_name_;
   Timestamp start_time_ = Timestamp::MinusInfinity();