From 1b4807ff65c6bdd4b8f7f634a20edc12b5b33329 Mon Sep 17 00:00:00 2001 From: Philipp Hancke Date: Fri, 11 Jun 2021 11:49:54 +0200 Subject: [PATCH] count webrtc pranswer usage count webrtc pranswer usage for connected connections BUG=chromium:1006079 Change-Id: I83b819f481d02ed2c71807aa10dd6fb12c8b4faf Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/221740 Reviewed-by: Johannes Kron Reviewed-by: Harald Alvestrand Commit-Queue: Philipp Hancke Cr-Commit-Position: refs/heads/master@{#34269} --- api/uma_metrics.h | 11 +++++++++++ pc/peer_connection.cc | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/api/uma_metrics.h b/api/uma_metrics.h index 3e0deb0093..a975b82aeb 100644 --- a/api/uma_metrics.h +++ b/api/uma_metrics.h @@ -202,6 +202,17 @@ enum BundlePolicyUsage { kBundlePolicyUsageMax }; +// Metrics for provisional answers as described in +// https://datatracker.ietf.org/doc/html/rfc8829#section-4.1.10.1 +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +enum ProvisionalAnswerUsage { + kProvisionalAnswerNotUsed = 0, + kProvisionalAnswerLocal = 1, + kProvisionalAnswerRemote = 2, + kProvisionalAnswerMax +}; + // 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 // instead of the legacy enums used above. diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc index 54b49340ba..276af1787d 100644 --- a/pc/peer_connection.cc +++ b/pc/peer_connection.cc @@ -1883,6 +1883,16 @@ void PeerConnection::SetConnectionState( configuration_.ice_candidate_pool_size, 0, 255, 256); break; } + + // Record whether there was a local or remote provisional answer. + ProvisionalAnswerUsage pranswer = kProvisionalAnswerNotUsed; + if (local_description()->GetType() == SdpType::kPrAnswer) { + pranswer = kProvisionalAnswerLocal; + } else if (remote_description()->GetType() == SdpType::kPrAnswer) { + pranswer = kProvisionalAnswerRemote; + } + RTC_HISTOGRAM_ENUMERATION("WebRTC.PeerConnection.ProvisionalAnswer", + pranswer, kProvisionalAnswerMax); } }