Reland "Reland "Replace the usage of MetricsObserverInterface by RTC_HISTOGRAM_*.""
This is a reland of 1a2cc0acba6a66f89249455d8e5775849b56f755
Original change's description:
> Reland "Replace the usage of MetricsObserverInterface by RTC_HISTOGRAM_*."
>
> This is a reland of 870bca1f418a1abf445169a638a61f9a649d557f
>
> Original change's description:
> > Replace the usage of MetricsObserverInterface by RTC_HISTOGRAM_*.
> >
> > We now use RTC_HISTOGRAM_* macros in system_wrappers/include/metrics.h
> > to report the metrics in pc/ and p2p/ that are currently been reported
> > using MetricsObserverInterface.
> >
> > TBR=tommi@webrtc.org
> >
> > Bug: webrtc:9409
> > Change-Id: I47c9975402293c72250203fa1ec19eb1668766f6
> > Reviewed-on: https://webrtc-review.googlesource.com/83782
> > Commit-Queue: Qingsi Wang <qingsi@google.com>
> > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> > Reviewed-by: Taylor (left Google) <deadbeef@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#23914}
>
> TBR=steveanton@webrtc.org,hta@webrtc.org,tommi@webrtc.org
>
> Bug: webrtc:9409
> Change-Id: I37fc95ced60dea25aa9b4f5ad44bdf7174c8bd5c
> Reviewed-on: https://webrtc-review.googlesource.com/88060
> Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
> Commit-Queue: Qingsi Wang <qingsi@google.com>
> Cr-Commit-Position: refs/heads/master@{#23919}
TBR=steveanton@webrtc.org,tommi@webrtc.org
Bug: webrtc:9409
Change-Id: Ib55f0b6c9bcb9d9585924a4dfac5cf643ff4d76b
Reviewed-on: https://webrtc-review.googlesource.com/88343
Commit-Queue: Qingsi Wang <qingsi@google.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23957}
diff --git a/pc/peerconnection_histogram_unittest.cc b/pc/peerconnection_histogram_unittest.cc
index beb989e..049d4c5 100644
--- a/pc/peerconnection_histogram_unittest.cc
+++ b/pc/peerconnection_histogram_unittest.cc
@@ -11,7 +11,6 @@
#include <tuple>
#include "absl/memory/memory.h"
-#include "api/fakemetricsobserver.h"
#include "api/jsep.h"
#include "api/peerconnectionproxy.h"
#include "media/base/fakemediaengine.h"
@@ -23,6 +22,7 @@
#include "pc/test/fakesctptransport.h"
#include "rtc_base/gunit.h"
#include "rtc_base/virtualsocketserver.h"
+#include "system_wrappers/include/metrics_default.h"
namespace webrtc {
@@ -160,6 +160,7 @@
PeerConnectionUsageHistogramTest()
: vss_(new rtc::VirtualSocketServer()), main_(vss_.get()) {
+ webrtc::metrics::Reset();
}
WrapperPtr CreatePeerConnection() {
@@ -208,14 +209,12 @@
TEST_F(PeerConnectionUsageHistogramTest, UsageFingerprintHistogramFromTimeout) {
auto pc = CreatePeerConnectionWithImmediateReport();
- // Register UMA observer before signaling begins.
- rtc::scoped_refptr<webrtc::FakeMetricsObserver> caller_observer =
- new rtc::RefCountedObject<webrtc::FakeMetricsObserver>();
- pc->GetInternalPeerConnection()->RegisterUMAObserver(caller_observer);
int expected_fingerprint = MakeUsageFingerprint({});
- ASSERT_TRUE_WAIT(caller_observer->ExpectOnlySingleEnumCount(
- webrtc::kEnumCounterUsagePattern, expected_fingerprint),
- kDefaultTimeout);
+ ASSERT_TRUE_WAIT(
+ 1u == webrtc::metrics::NumSamples("WebRTC.PeerConnection.UsagePattern"),
+ kDefaultTimeout);
+ EXPECT_EQ(1, webrtc::metrics::NumEvents("WebRTC.PeerConnection.UsagePattern",
+ expected_fingerprint));
}
#ifndef WEBRTC_ANDROID
@@ -226,9 +225,6 @@
TEST_F(PeerConnectionUsageHistogramTest, FingerprintAudioVideo) {
auto caller = CreatePeerConnection();
auto callee = CreatePeerConnection();
- // Register UMA observer before signaling begins.
- auto caller_observer = caller->RegisterFakeMetricsObserver();
- auto callee_observer = callee->RegisterFakeMetricsObserver();
caller->AddAudioTrack("audio");
caller->AddVideoTrack("video");
ASSERT_TRUE(caller->ConnectTo(callee.get()));
@@ -243,19 +239,16 @@
PeerConnection::UsageEvent::REMOTE_CANDIDATE_ADDED,
PeerConnection::UsageEvent::ICE_STATE_CONNECTED,
PeerConnection::UsageEvent::CLOSE_CALLED});
- EXPECT_TRUE(caller_observer->ExpectOnlySingleEnumCount(
- webrtc::kEnumCounterUsagePattern, expected_fingerprint));
- EXPECT_TRUE(callee_observer->ExpectOnlySingleEnumCount(
- webrtc::kEnumCounterUsagePattern, expected_fingerprint));
+ EXPECT_EQ(2,
+ webrtc::metrics::NumSamples("WebRTC.PeerConnection.UsagePattern"));
+ EXPECT_EQ(2, webrtc::metrics::NumEvents("WebRTC.PeerConnection.UsagePattern",
+ expected_fingerprint));
}
#ifdef HAVE_SCTP
TEST_F(PeerConnectionUsageHistogramTest, FingerprintDataOnly) {
auto caller = CreatePeerConnection();
auto callee = CreatePeerConnection();
- // Register UMA observer before signaling begins.
- auto caller_observer = caller->RegisterFakeMetricsObserver();
- auto callee_observer = callee->RegisterFakeMetricsObserver();
caller->CreateDataChannel("foodata");
ASSERT_TRUE(caller->ConnectTo(callee.get()));
ASSERT_TRUE_WAIT(callee->HaveDataChannel(), kDefaultTimeout);
@@ -269,10 +262,10 @@
PeerConnection::UsageEvent::REMOTE_CANDIDATE_ADDED,
PeerConnection::UsageEvent::ICE_STATE_CONNECTED,
PeerConnection::UsageEvent::CLOSE_CALLED});
- EXPECT_TRUE(caller_observer->ExpectOnlySingleEnumCount(
- webrtc::kEnumCounterUsagePattern, expected_fingerprint));
- EXPECT_TRUE(callee_observer->ExpectOnlySingleEnumCount(
- webrtc::kEnumCounterUsagePattern, expected_fingerprint));
+ EXPECT_EQ(2,
+ webrtc::metrics::NumSamples("WebRTC.PeerConnection.UsagePattern"));
+ EXPECT_EQ(2, webrtc::metrics::NumEvents("WebRTC.PeerConnection.UsagePattern",
+ expected_fingerprint));
}
#endif // HAVE_SCTP
#endif // WEBRTC_ANDROID
@@ -288,14 +281,15 @@
configuration.servers.push_back(server);
auto caller = CreatePeerConnection(configuration);
ASSERT_TRUE(caller);
- auto caller_observer = caller->RegisterFakeMetricsObserver();
caller->pc()->Close();
int expected_fingerprint =
MakeUsageFingerprint({PeerConnection::UsageEvent::STUN_SERVER_ADDED,
PeerConnection::UsageEvent::TURN_SERVER_ADDED,
PeerConnection::UsageEvent::CLOSE_CALLED});
- EXPECT_TRUE(caller_observer->ExpectOnlySingleEnumCount(
- webrtc::kEnumCounterUsagePattern, expected_fingerprint));
+ EXPECT_EQ(1,
+ webrtc::metrics::NumSamples("WebRTC.PeerConnection.UsagePattern"));
+ EXPECT_EQ(1, webrtc::metrics::NumEvents("WebRTC.PeerConnection.UsagePattern",
+ expected_fingerprint));
}
TEST_F(PeerConnectionUsageHistogramTest, FingerprintStunTurnInReconfiguration) {
@@ -309,7 +303,6 @@
configuration.servers.push_back(server);
auto caller = CreatePeerConnection();
ASSERT_TRUE(caller);
- auto caller_observer = caller->RegisterFakeMetricsObserver();
RTCError error;
caller->pc()->SetConfiguration(configuration, &error);
ASSERT_TRUE(error.ok());
@@ -318,8 +311,10 @@
MakeUsageFingerprint({PeerConnection::UsageEvent::STUN_SERVER_ADDED,
PeerConnection::UsageEvent::TURN_SERVER_ADDED,
PeerConnection::UsageEvent::CLOSE_CALLED});
- EXPECT_TRUE(caller_observer->ExpectOnlySingleEnumCount(
- webrtc::kEnumCounterUsagePattern, expected_fingerprint));
+ EXPECT_EQ(1,
+ webrtc::metrics::NumSamples("WebRTC.PeerConnection.UsagePattern"));
+ EXPECT_EQ(1, webrtc::metrics::NumEvents("WebRTC.PeerConnection.UsagePattern",
+ expected_fingerprint));
}
} // namespace webrtc