[PCLF] Add possibility to use new perf metrics api in VideoQualityMetricsReporter
Bug: b/246095034 Change-Id: Ia7a50404750538a65042562bd80f0cb88f78ab90 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276102 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/main@{#38142}
This commit is contained in:
parent
a5d2c7ecd6
commit
164bb2fcca
@ -49,7 +49,7 @@ class MetricsLoggerAndExporter {
|
||||
double value,
|
||||
Unit unit,
|
||||
ImprovementDirection improvement_direction,
|
||||
std::map<std::string, std::string> metadata);
|
||||
std::map<std::string, std::string> metadata = {});
|
||||
|
||||
// Adds metrics with a time series created based on the provided `values`.
|
||||
// `metadata` - metric's level metadata to add.
|
||||
@ -58,7 +58,7 @@ class MetricsLoggerAndExporter {
|
||||
const SamplesStatsCounter& values,
|
||||
Unit unit,
|
||||
ImprovementDirection improvement_direction,
|
||||
std::map<std::string, std::string> metadata);
|
||||
std::map<std::string, std::string> metadata = {});
|
||||
|
||||
// Adds metric with a time series with only stats object and without actual
|
||||
// collected values.
|
||||
@ -68,7 +68,7 @@ class MetricsLoggerAndExporter {
|
||||
const Metric::Stats& metric_stats,
|
||||
Unit unit,
|
||||
ImprovementDirection improvement_direction,
|
||||
std::map<std::string, std::string> metadata);
|
||||
std::map<std::string, std::string> metadata = {});
|
||||
|
||||
// Returns all metrics collected by this logger.
|
||||
std::vector<Metric> GetCollectedMetrics() const {
|
||||
|
||||
@ -688,6 +688,8 @@ if (!build_with_chromium) {
|
||||
"../../../api:rtc_stats_api",
|
||||
"../../../api:track_id_stream_info_map",
|
||||
"../../../api/numerics",
|
||||
"../../../api/test/metrics:metric",
|
||||
"../../../api/test/metrics:metrics_logger_and_exporter",
|
||||
"../../../api/units:data_rate",
|
||||
"../../../api/units:data_size",
|
||||
"../../../api/units:time_delta",
|
||||
|
||||
@ -12,12 +12,23 @@
|
||||
|
||||
#include "api/stats/rtc_stats.h"
|
||||
#include "api/stats/rtcstats_objects.h"
|
||||
#include "api/test/metrics/metric.h"
|
||||
#include "api/units/data_rate.h"
|
||||
#include "api/units/time_delta.h"
|
||||
#include "api/units/timestamp.h"
|
||||
|
||||
namespace webrtc {
|
||||
namespace webrtc_pc_e2e {
|
||||
namespace {
|
||||
|
||||
using ::webrtc::test::ImprovementDirection;
|
||||
using ::webrtc::test::Unit;
|
||||
|
||||
SamplesStatsCounter BytesPerSecondToKbps(const SamplesStatsCounter& counter) {
|
||||
return counter * 0.008;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
void VideoQualityMetricsReporter::Start(
|
||||
absl::string_view test_case_name,
|
||||
@ -111,12 +122,27 @@ std::string VideoQualityMetricsReporter::GetTestCaseName(
|
||||
void VideoQualityMetricsReporter::ReportVideoBweResults(
|
||||
const std::string& test_case_name,
|
||||
const VideoBweStats& video_bwe_stats) {
|
||||
ReportResult("available_send_bandwidth", test_case_name,
|
||||
video_bwe_stats.available_send_bandwidth, "bytesPerSecond");
|
||||
ReportResult("transmission_bitrate", test_case_name,
|
||||
video_bwe_stats.transmission_bitrate, "bytesPerSecond");
|
||||
ReportResult("retransmission_bitrate", test_case_name,
|
||||
video_bwe_stats.retransmission_bitrate, "bytesPerSecond");
|
||||
if (metrics_logger_ == nullptr) {
|
||||
ReportResult("available_send_bandwidth", test_case_name,
|
||||
video_bwe_stats.available_send_bandwidth, "bytesPerSecond");
|
||||
ReportResult("transmission_bitrate", test_case_name,
|
||||
video_bwe_stats.transmission_bitrate, "bytesPerSecond");
|
||||
ReportResult("retransmission_bitrate", test_case_name,
|
||||
video_bwe_stats.retransmission_bitrate, "bytesPerSecond");
|
||||
} else {
|
||||
metrics_logger_->LogMetric(
|
||||
"available_send_bandwidth", test_case_name,
|
||||
BytesPerSecondToKbps(video_bwe_stats.available_send_bandwidth),
|
||||
Unit::kKilobitsPerSecond, ImprovementDirection::kNeitherIsBetter);
|
||||
metrics_logger_->LogMetric(
|
||||
"transmission_bitrate", test_case_name,
|
||||
BytesPerSecondToKbps(video_bwe_stats.transmission_bitrate),
|
||||
Unit::kKilobitsPerSecond, ImprovementDirection::kNeitherIsBetter);
|
||||
metrics_logger_->LogMetric(
|
||||
"retransmission_bitrate", test_case_name,
|
||||
BytesPerSecondToKbps(video_bwe_stats.retransmission_bitrate),
|
||||
Unit::kKilobitsPerSecond, ImprovementDirection::kNeitherIsBetter);
|
||||
}
|
||||
}
|
||||
|
||||
void VideoQualityMetricsReporter::ReportResult(
|
||||
|
||||
@ -16,6 +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/peerconnection_quality_test_fixture.h"
|
||||
#include "api/test/track_id_stream_info_map.h"
|
||||
#include "api/units/data_size.h"
|
||||
@ -35,7 +36,12 @@ struct VideoBweStats {
|
||||
class VideoQualityMetricsReporter
|
||||
: public PeerConnectionE2EQualityTestFixture::QualityMetricsReporter {
|
||||
public:
|
||||
VideoQualityMetricsReporter(Clock* const clock) : clock_(clock) {}
|
||||
explicit VideoQualityMetricsReporter(Clock* const clock)
|
||||
: VideoQualityMetricsReporter(clock, /*metrics_logger=*/nullptr) {}
|
||||
explicit VideoQualityMetricsReporter(
|
||||
Clock* const clock,
|
||||
test::MetricsLoggerAndExporter* const metrics_logger)
|
||||
: clock_(clock), metrics_logger_(metrics_logger) {}
|
||||
~VideoQualityMetricsReporter() override = default;
|
||||
|
||||
void Start(absl::string_view test_case_name,
|
||||
@ -55,8 +61,8 @@ class VideoQualityMetricsReporter
|
||||
};
|
||||
|
||||
std::string GetTestCaseName(const std::string& stream_label) const;
|
||||
static void ReportVideoBweResults(const std::string& test_case_name,
|
||||
const VideoBweStats& video_bwe_stats);
|
||||
void ReportVideoBweResults(const std::string& test_case_name,
|
||||
const VideoBweStats& video_bwe_stats);
|
||||
// Report result for single metric for specified stream.
|
||||
static void ReportResult(const std::string& metric_name,
|
||||
const std::string& test_case_name,
|
||||
@ -67,6 +73,7 @@ class VideoQualityMetricsReporter
|
||||
Timestamp Now() const { return clock_->CurrentTime(); }
|
||||
|
||||
Clock* const clock_;
|
||||
test::MetricsLoggerAndExporter* const metrics_logger_;
|
||||
|
||||
std::string test_case_name_;
|
||||
absl::optional<Timestamp> start_time_;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user