Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3915)

Unified Diff: content/browser/renderer_host/p2p/socket_host.cc

Issue 677473002: Implement UMA and internal data structure for tracking EWOULDBLOCK. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/p2p/socket_host.cc
diff --git a/content/browser/renderer_host/p2p/socket_host.cc b/content/browser/renderer_host/p2p/socket_host.cc
index 1693918bd32854572a8b085efa8b434cb61a3238..bb60c769def89500871d7bc3badf3d9b199059ce 100644
--- a/content/browser/renderer_host/p2p/socket_host.cc
+++ b/content/browser/renderer_host/p2p/socket_host.cc
@@ -4,6 +4,7 @@
#include "content/browser/renderer_host/p2p/socket_host.h"
+#include "base/metrics/histogram.h"
#include "base/sys_byteorder.h"
#include "content/browser/renderer_host/p2p/socket_host_tcp.h"
#include "content/browser/renderer_host/p2p/socket_host_tcp_server.h"
@@ -460,10 +461,36 @@ P2PSocketHost::P2PSocketHost(IPC::Sender* message_sender, int socket_id)
state_(STATE_UNINITIALIZED),
dump_incoming_rtp_packet_(false),
dump_outgoing_rtp_packet_(false),
- weak_ptr_factory_(this) {
+ weak_ptr_factory_(this),
+ protocol_type_(P2PSocketHost::UNKNOWN),
+ send_packets_delayed_total_(0),
+ send_packets_total_(0),
+ send_bytes_delayed_max_(0),
+ send_bytes_delayed_cur_(0) {
}
-P2PSocketHost::~P2PSocketHost() { }
+P2PSocketHost::~P2PSocketHost() {
+ DCHECK(protocol_type_ != P2PSocketHost::UNKNOWN);
davidben 2014/10/27 23:20:26 Nit: DCHECK_NE(protocol_type_, P2pSocketHost::UNKN
davidben 2014/10/27 23:20:26 Seems this should be a parameter to P2PSocketHost'
guoweis2 2014/10/27 23:48:49 Done.
+
+ if (protocol_type_ == P2PSocketHost::UDP) {
+ UMA_HISTOGRAM_COUNTS_10000("WebRTC.SystemMaxConsecutiveBytesDelayed_UDP",
+ send_bytes_delayed_max_);
+ } else {
+ UMA_HISTOGRAM_COUNTS_10000("WebRTC.SystemMaxConsecutiveBytesDelayed_TCP",
+ send_bytes_delayed_max_);
+ }
+
+ if (send_packets_total_ > 0) {
+ int delay_rate = (send_packets_delayed_total_ * 100) / send_packets_total_;
+ if (protocol_type_ == P2PSocketHost::UDP) {
+ UMA_HISTOGRAM_PERCENTAGE("WebRTC.SystemPercentPacketsDelayed_UDP",
+ delay_rate);
+ } else {
+ UMA_HISTOGRAM_PERCENTAGE("WebRTC.SystemPercentPacketsDelayed_TCP",
+ delay_rate);
+ }
+ }
+}
// Verifies that the packet |data| has a valid STUN header.
// static
@@ -644,4 +671,24 @@ void P2PSocketHost::DumpRtpPacketOnIOThread(scoped_ptr<uint8[]> packet_header,
incoming));
}
+void P2PSocketHost::IncrementDelayedPackets() {
+ send_packets_delayed_total_++;
+}
+
+void P2PSocketHost::IncrementTotalSentPackets() {
+ send_packets_total_++;
+}
+
+void P2PSocketHost::IncrementDelayedBytes(uint32 size) {
+ send_bytes_delayed_cur_ += size;
+ if (send_bytes_delayed_cur_ > send_bytes_delayed_max_) {
+ send_bytes_delayed_max_ = send_bytes_delayed_cur_;
+ }
+}
+
+void P2PSocketHost::DecrementDelayedBytes(uint32 size) {
+ send_bytes_delayed_cur_ -= size;
+ DCHECK_GE(send_bytes_delayed_cur_, 0);
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698