peerconnection: measure bundle policy usage

measured in the connectionstatechange event to connected which usually
happens once per connection.

BUG=webrtc:12383

Change-Id: Ida136c44bfe65e922627390747f8bee384603715
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/204301
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Cr-Commit-Position: refs/heads/master@{#33207}
This commit is contained in:
Philipp Hancke
2021-02-04 21:50:50 +01:00
committed by Commit Bot
parent 6d17602e70
commit bb8f32f541
2 changed files with 32 additions and 0 deletions

View File

@ -191,6 +191,17 @@ enum BundleUsage {
kBundleUsageMax kBundleUsageMax
}; };
// Metrics for reporting configured BUNDLE policy, mapping directly to
// https://w3c.github.io/webrtc-pc/#rtcbundlepolicy-enum
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum BundlePolicyUsage {
kBundlePolicyUsageBalanced = 0,
kBundlePolicyUsageMaxBundle = 1,
kBundlePolicyUsageMaxCompat = 2,
kBundlePolicyUsageMax
};
// When adding new metrics please consider using the style described in // When adding new metrics please consider using the style described in
// https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md#usage // https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md#usage
// instead of the legacy enums used above. // instead of the legacy enums used above.

View File

@ -1738,6 +1738,27 @@ void PeerConnection::SetConnectionState(
return; return;
connection_state_ = new_state; connection_state_ = new_state;
Observer()->OnConnectionChange(new_state); Observer()->OnConnectionChange(new_state);
// The connection state change to connected usually happens once per
// connection which makes it a good point to report metrics.
if (new_state == PeerConnectionState::kConnected) {
// Record bundle-policy from configuration. Done here from
// connectionStateChange to limit to actually established connections.
BundlePolicyUsage policy = kBundlePolicyUsageMax;
switch (configuration_.bundle_policy) {
case kBundlePolicyBalanced:
policy = kBundlePolicyUsageBalanced;
break;
case kBundlePolicyMaxBundle:
policy = kBundlePolicyUsageMaxBundle;
break;
case kBundlePolicyMaxCompat:
policy = kBundlePolicyUsageMaxCompat;
break;
}
RTC_HISTOGRAM_ENUMERATION("WebRTC.PeerConnection.BundlePolicy", policy,
kBundlePolicyUsageMax);
}
} }
void PeerConnection::OnIceGatheringChange( void PeerConnection::OnIceGatheringChange(