Add metadata key to export test name in PCLF generated metrics.

This metadata key is temporary, as explained in bugs.webrtc.org/14757,
this information will be at some point directly accessible via the
webrtc.test_metrics.Metric.test_case field.

Bug: b/237982523, webrtc:14757
Change-Id: Ie77875a33db5961f8a5572bd1b7066ad8ba17291
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/287221
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38858}
This commit is contained in:
Mirko Bonadei 2022-12-09 11:08:47 +01:00 committed by WebRTC LUCI CQ
parent f72bc5f1e2
commit fecbec261b
10 changed files with 355 additions and 102 deletions

View File

@ -10,7 +10,11 @@ import("../../../webrtc.gni")
rtc_library("metric_metadata_keys") {
testonly = true
sources = [ "metric_metadata_keys.h" ]
sources = [
"metric_metadata_keys.cc",
"metric_metadata_keys.h",
]
deps = [ "../..:test_support" ]
}
if (!build_with_chromium) {

View File

@ -131,10 +131,13 @@ void DefaultAudioQualityAnalyzer::Stop() {
for (auto& item : streams_stats_) {
const TrackIdStreamInfoMap::StreamInfo& stream_info =
stream_info_[item.first];
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
std::map<std::string, std::string> metric_metadata{
{MetricMetadataKey::kAudioStreamMetadataKey, item.first},
{MetricMetadataKey::kPeerMetadataKey, stream_info.receiver_peer},
{MetricMetadataKey::kReceiverMetadataKey, stream_info.receiver_peer}};
{MetricMetadataKey::kReceiverMetadataKey, stream_info.receiver_peer},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}};
metrics_logger_->LogMetric("expand_rate", GetTestCaseName(item.first),
item.second.expand_rate, Unit::kUnitless,

View File

@ -936,9 +936,12 @@ void DefaultVideoQualityAnalyzer::ReportResults() {
ReportResults(item.first, item.second,
stream_frame_counters_.at(item.first));
}
metrics_logger_->LogSingleValueMetric("cpu_usage_%", test_label_,
GetCpuUsagePercent(), Unit::kUnitless,
ImprovementDirection::kSmallerIsBetter);
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
metrics_logger_->LogSingleValueMetric(
"cpu_usage_%", test_label_, GetCpuUsagePercent(), Unit::kUnitless,
ImprovementDirection::kSmallerIsBetter,
{{MetricMetadataKey::kExperimentalTestNameMetadataKey,
webrtc_pc_e2e::GetCurrentTestName()}});
LogFrameCounters("Global", frame_counters_);
if (!unknown_sender_frame_counters_.empty()) {
RTC_LOG(LS_INFO) << "Received frame counters with unknown frame id:";
@ -1030,11 +1033,14 @@ void DefaultVideoQualityAnalyzer::ReportResults(
const FrameCounters& frame_counters) {
TimeDelta test_duration = Now() - start_time_;
std::string test_case_name = GetTestCaseName(ToMetricName(key));
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
std::map<std::string, std::string> metric_metadata{
{MetricMetadataKey::kPeerMetadataKey, peers_->name(key.sender)},
{MetricMetadataKey::kVideoStreamMetadataKey, streams_.name(key.stream)},
{MetricMetadataKey::kSenderMetadataKey, peers_->name(key.sender)},
{MetricMetadataKey::kReceiverMetadataKey, peers_->name(key.receiver)}};
{MetricMetadataKey::kReceiverMetadataKey, peers_->name(key.receiver)},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
webrtc_pc_e2e::GetCurrentTestName()}};
double sum_squared_interframe_delays_secs = 0;
Timestamp video_start_time = Timestamp::PlusInfinity();

View File

@ -136,8 +136,11 @@ void VideoQualityMetricsReporter::ReportVideoBweResults(
const std::string& peer_name,
const VideoBweStats& video_bwe_stats) {
std::string test_case_name = GetTestCaseName(peer_name);
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
std::map<std::string, std::string> metric_metadata{
{MetricMetadataKey::kPeerMetadataKey, peer_name}};
{MetricMetadataKey::kPeerMetadataKey, peer_name},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}};
metrics_logger_->LogMetric(
"available_send_bandwidth", test_case_name,

View File

@ -114,6 +114,7 @@ void CrossMediaMetricsReporter::StopAndReportResults() {
MutexLock lock(&mutex_);
for (const auto& pair : stats_info_) {
const std::string& sync_group = pair.first;
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
std::map<std::string, std::string> audio_metric_metadata{
{MetricMetadataKey::kPeerSyncGroupMetadataKey, sync_group},
{MetricMetadataKey::kAudioStreamMetadataKey,
@ -121,7 +122,9 @@ void CrossMediaMetricsReporter::StopAndReportResults() {
{MetricMetadataKey::kPeerMetadataKey,
pair.second.audio_stream_info.receiver_peer},
{MetricMetadataKey::kReceiverMetadataKey,
pair.second.audio_stream_info.receiver_peer}};
pair.second.audio_stream_info.receiver_peer},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}};
metrics_logger_->LogMetric(
"audio_ahead_ms",
GetTestCaseName(pair.second.audio_stream_info.stream_label, sync_group),
@ -129,6 +132,7 @@ void CrossMediaMetricsReporter::StopAndReportResults() {
webrtc::test::ImprovementDirection::kSmallerIsBetter,
std::move(audio_metric_metadata));
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
std::map<std::string, std::string> video_metric_metadata{
{MetricMetadataKey::kPeerSyncGroupMetadataKey, sync_group},
{MetricMetadataKey::kAudioStreamMetadataKey,
@ -136,7 +140,9 @@ void CrossMediaMetricsReporter::StopAndReportResults() {
{MetricMetadataKey::kPeerMetadataKey,
pair.second.video_stream_info.receiver_peer},
{MetricMetadataKey::kReceiverMetadataKey,
pair.second.video_stream_info.receiver_peer}};
pair.second.video_stream_info.receiver_peer},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}};
metrics_logger_->LogMetric(
"video_ahead_ms",
GetTestCaseName(pair.second.video_stream_info.stream_label, sync_group),

View File

@ -0,0 +1,27 @@
/*
* Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "test/pc/e2e/metric_metadata_keys.h"
#include <string>
#include "test/gtest.h"
namespace webrtc {
namespace webrtc_pc_e2e {
std::string GetCurrentTestName() {
const testing::TestInfo* test_info =
testing::UnitTest::GetInstance()->current_test_info();
return test_info->name();
}
} // namespace webrtc_pc_e2e
} // namespace webrtc

View File

@ -10,9 +10,17 @@
#ifndef TEST_PC_E2E_METRIC_METADATA_KEYS_H_
#define TEST_PC_E2E_METRIC_METADATA_KEYS_H_
#include <string>
namespace webrtc {
namespace webrtc_pc_e2e {
// TODO(bugs.webrtc.org/14757): Move this function to a better location once
// kExperimentalTestNameMetadataKey has been removed (this is here just for
// convenience since it is the value of the kExperimentalTestNameMetadataKey
// metadata entries).
std::string GetCurrentTestName();
// All metadata fields are present only if applicable for particular metric.
class MetricMetadataKey {
public:
@ -28,6 +36,13 @@ class MetricMetadataKey {
static constexpr char kVideoStreamMetadataKey[] = "video_stream";
// Represents name of the sync group to which stream belongs.
static constexpr char kPeerSyncGroupMetadataKey[] = "peer_sync_group";
// Represents the test name (without any peer and stream data appended to it
// as it currently happens with the webrtc.test_metrics.Metric.test_case
// field). This metadata is temporary and it will be removed once this
// information is moved to webrtc.test_metrics.Metric.test_case.
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
static constexpr char kExperimentalTestNameMetadataKey[] =
"experimental_test_name";
private:
MetricMetadataKey() = default;

View File

@ -741,14 +741,20 @@ void PeerConnectionE2EQualityTest::TearDownCall() {
}
void PeerConnectionE2EQualityTest::ReportGeneralTestResults() {
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
metrics_logger_->LogSingleValueMetric(
*alice_->params().name + "_connected", test_case_name_, alice_connected_,
Unit::kUnitless, ImprovementDirection::kBiggerIsBetter,
{{MetricMetadataKey::kPeerMetadataKey, *alice_->params().name}});
{{MetricMetadataKey::kPeerMetadataKey, *alice_->params().name},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}});
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
metrics_logger_->LogSingleValueMetric(
*bob_->params().name + "_connected", test_case_name_, bob_connected_,
Unit::kUnitless, ImprovementDirection::kBiggerIsBetter,
{{MetricMetadataKey::kPeerMetadataKey, *bob_->params().name}});
{{MetricMetadataKey::kPeerMetadataKey, *bob_->params().name},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}});
}
Timestamp PeerConnectionE2EQualityTest::Now() const {

View File

@ -157,13 +157,17 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.name = "alice_connected",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kBiggerIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case",
.name = "bob_connected",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kBiggerIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
// Metrics from DefaultAudioQualityAnalyzer
MetricValidationInfo{
@ -174,7 +178,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"alice_audio"},
{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_audio",
.name = "accelerate_rate",
@ -183,7 +189,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"alice_audio"},
{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_audio",
.name = "preemptive_rate",
@ -192,7 +200,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"alice_audio"},
{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_audio",
.name = "speech_expand_rate",
@ -201,7 +211,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"alice_audio"},
{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_audio",
.name = "average_jitter_buffer_delay_ms",
@ -210,7 +222,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"alice_audio"},
{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_audio",
.name = "preferred_buffer_size_ms",
@ -219,7 +233,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"alice_audio"},
{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_audio",
.name = "expand_rate",
@ -228,7 +244,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"bob_audio"},
{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_audio",
.name = "accelerate_rate",
@ -237,7 +255,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"bob_audio"},
{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_audio",
.name = "preemptive_rate",
@ -246,7 +266,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"bob_audio"},
{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_audio",
.name = "speech_expand_rate",
@ -255,7 +277,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"bob_audio"},
{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_audio",
.name = "average_jitter_buffer_delay_ms",
@ -264,7 +288,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"bob_audio"},
{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_audio",
.name = "preferred_buffer_size_ms",
@ -273,7 +299,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.metadata = {{MetricMetadataKey::kAudioStreamMetadataKey,
"bob_audio"},
{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
// Metrics from DefaultVideoQualityAnalyzer
MetricValidationInfo{
@ -285,7 +313,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "ssim",
@ -295,7 +325,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "transport_time",
@ -305,7 +337,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "total_delay_incl_transport",
@ -315,7 +349,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "time_between_rendered_frames",
@ -325,7 +361,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "harmonic_framerate",
@ -335,7 +373,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "encode_frame_rate",
@ -345,7 +385,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "encode_time",
@ -355,7 +397,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "time_between_freezes",
@ -365,7 +409,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "freeze_time_ms",
@ -375,7 +421,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "pixels_per_frame",
@ -385,7 +433,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "min_psnr_dB",
@ -395,7 +445,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "decode_time",
@ -405,7 +457,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "receive_to_render_time",
@ -415,7 +469,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "dropped_frames",
@ -425,7 +481,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "frames_in_flight",
@ -435,7 +493,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "rendered_frames",
@ -445,7 +505,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "max_skipped",
@ -455,7 +517,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "target_encode_bitrate",
@ -465,7 +529,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "qp",
@ -475,7 +541,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_video",
.name = "actual_encode_bitrate",
@ -485,7 +553,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"alice_video"},
{MetricMetadataKey::kSenderMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "psnr_dB",
@ -495,7 +565,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "ssim",
@ -505,7 +577,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "transport_time",
@ -515,7 +589,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "total_delay_incl_transport",
@ -525,7 +601,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "time_between_rendered_frames",
@ -535,7 +613,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "harmonic_framerate",
@ -545,7 +625,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "encode_frame_rate",
@ -555,7 +637,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "encode_time",
@ -565,7 +649,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "time_between_freezes",
@ -575,7 +661,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "freeze_time_ms",
@ -585,7 +673,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "pixels_per_frame",
@ -595,7 +685,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "min_psnr_dB",
@ -605,7 +697,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "decode_time",
@ -615,7 +709,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "receive_to_render_time",
@ -625,7 +721,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "dropped_frames",
@ -635,7 +733,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "frames_in_flight",
@ -645,7 +745,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "rendered_frames",
@ -655,7 +757,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "max_skipped",
@ -665,7 +769,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "target_encode_bitrate",
@ -675,7 +781,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "actual_encode_bitrate",
@ -685,7 +793,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_video",
.name = "qp",
@ -695,13 +805,16 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kVideoStreamMetadataKey,
"bob_video"},
{MetricMetadataKey::kSenderMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case",
.name = "cpu_usage_%",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kSmallerIsBetter,
.metadata = {}},
.metadata = {{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
// Metrics from StatsBasedNetworkQualityMetricsReporter
MetricValidationInfo{
@ -709,133 +822,177 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.name = "bytes_discarded_no_receiver",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "packets_discarded_no_receiver",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "payload_bytes_received",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "payload_bytes_sent",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "bytes_sent",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "packets_sent",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "average_send_rate",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "bytes_received",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "packets_received",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "average_receive_rate",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "sent_packets_loss",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "bytes_discarded_no_receiver",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "packets_discarded_no_receiver",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "payload_bytes_received",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "payload_bytes_sent",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "bytes_sent",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "packets_sent",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "average_send_rate",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "bytes_received",
.unit = Unit::kBytes,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "packets_received",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "average_receive_rate",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "sent_packets_loss",
.unit = Unit::kUnitless,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
// Metrics from VideoQualityMetricsReporter
MetricValidationInfo{
@ -843,37 +1000,49 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
.name = "available_send_bandwidth",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "transmission_bitrate",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice",
.name = "retransmission_bitrate",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "available_send_bandwidth",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "transmission_bitrate",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob",
.name = "retransmission_bitrate",
.unit = Unit::kKilobitsPerSecond,
.improvement_direction = ImprovementDirection::kNeitherIsBetter,
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"}}},
.metadata = {{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
// Metrics from CrossMediaMetricsReporter
MetricValidationInfo{
@ -885,7 +1054,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{{MetricMetadataKey::kAudioStreamMetadataKey, "alice_audio"},
{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kPeerSyncGroupMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/alice_alice_video",
.name = "video_ahead_ms",
@ -895,7 +1066,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{{MetricMetadataKey::kAudioStreamMetadataKey, "alice_video"},
{MetricMetadataKey::kPeerMetadataKey, "bob"},
{MetricMetadataKey::kPeerSyncGroupMetadataKey, "alice"},
{MetricMetadataKey::kReceiverMetadataKey, "bob"}}},
{MetricMetadataKey::kReceiverMetadataKey, "bob"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_bob_audio",
.name = "audio_ahead_ms",
@ -905,7 +1078,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{{MetricMetadataKey::kAudioStreamMetadataKey, "bob_audio"},
{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kPeerSyncGroupMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}},
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}},
MetricValidationInfo{
.test_case = "test_case/bob_bob_video",
.name = "video_ahead_ms",
@ -915,7 +1090,9 @@ TEST(PeerConnectionE2EQualityTestMetricNamesTest,
{MetricMetadataKey::kAudioStreamMetadataKey, "bob_video"},
{MetricMetadataKey::kPeerMetadataKey, "alice"},
{MetricMetadataKey::kPeerSyncGroupMetadataKey, "bob"},
{MetricMetadataKey::kReceiverMetadataKey, "alice"}}}));
{MetricMetadataKey::kReceiverMetadataKey, "alice"},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}}}));
}
} // namespace

View File

@ -370,8 +370,11 @@ void StatsBasedNetworkQualityMetricsReporter::ReportStats(
const NetworkLayerStats& network_layer_stats,
int64_t packet_loss,
const Timestamp& end_time) {
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
std::map<std::string, std::string> metric_metadata{
{MetricMetadataKey::kPeerMetadataKey, pc_label}};
{MetricMetadataKey::kPeerMetadataKey, pc_label},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}};
metrics_logger_->LogSingleValueMetric(
"bytes_discarded_no_receiver", GetTestCaseName(pc_label),
network_layer_stats.endpoints_stats.overall_incoming_stats
@ -438,8 +441,11 @@ void StatsBasedNetworkQualityMetricsReporter::LogNetworkLayerStats(
stats.endpoints_stats.overall_incoming_stats.packets_received >= 2
? stats.endpoints_stats.overall_incoming_stats.AverageReceiveRate()
: DataRate::Zero();
// TODO(bugs.webrtc.org/14757): Remove kExperimentalTestNameMetadataKey.
std::map<std::string, std::string> metric_metadata{
{MetricMetadataKey::kPeerMetadataKey, peer_name}};
{MetricMetadataKey::kPeerMetadataKey, peer_name},
{MetricMetadataKey::kExperimentalTestNameMetadataKey,
GetCurrentTestName()}};
rtc::StringBuilder log;
log << "Raw network layer statistic for [" << peer_name << "]:\n"
<< "Local IPs:\n";