UMA: Add Net.WebSocket.DeflateMode
Counts the number of successful handshake completion with
permessage-deflate enabled for each negotiated context_takeover
parameter value.
BUG=128156,359926
Review URL: https://codereview.chromium.org/244933003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266444 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/websockets/websocket_basic_handshake_stream.cc b/net/websockets/websocket_basic_handshake_stream.cc
index d4ed6f8..6c5e849 100644
--- a/net/websockets/websocket_basic_handshake_stream.cc
+++ b/net/websockets/websocket_basic_handshake_stream.cc
@@ -14,6 +14,7 @@
#include "base/basictypes.h"
#include "base/bind.h"
#include "base/containers/hash_tables.h"
+#include "base/metrics/histogram.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_piece.h"
@@ -505,6 +506,11 @@
extensions_));
DCHECK(extension_params_.get());
if (extension_params_->deflate_enabled) {
+ UMA_HISTOGRAM_ENUMERATION(
+ "Net.WebSocket.DeflateMode",
+ extension_params_->deflate_mode,
+ WebSocketDeflater::NUM_CONTEXT_TAKEOVER_MODE_TYPES);
+
return scoped_ptr<WebSocketStream>(
new WebSocketDeflateStream(basic_stream.Pass(),
extension_params_->deflate_mode,
diff --git a/net/websockets/websocket_deflater.h b/net/websockets/websocket_deflater.h
index da85bfec..1b631e26 100644
--- a/net/websockets/websocket_deflater.h
+++ b/net/websockets/websocket_deflater.h
@@ -21,9 +21,12 @@
class NET_EXPORT_PRIVATE WebSocketDeflater {
public:
+ // Do not reorder or remove entries of this enum. The values of them are used
+ // in UMA.
enum ContextTakeOverMode {
DO_NOT_TAKE_OVER_CONTEXT,
TAKE_OVER_CONTEXT,
+ NUM_CONTEXT_TAKEOVER_MODE_TYPES,
};
explicit WebSocketDeflater(ContextTakeOverMode mode);
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 32f96c62..ca250c6 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -13989,6 +13989,18 @@
<summary>The time spent in closesocket call in UDPSocketWin::Close.</summary>
</histogram>
+<histogram name="Net.WebSocket.DeflateMode"
+ enum="WebSocketNewPerMessageDeflateContextTakeoverMode">
+ <owner>[email protected]</owner>
+ <owner>[email protected]</owner>
+ <owner>[email protected]</owner>
+ <summary>
+ Count the number of WebSockets that accepted permessage-deflate extension
+ for each context take over mode. Used by the new Chromium-based WebSocket
+ implementation.
+ </summary>
+</histogram>
+
<histogram name="Net.WebSocket.Duration" units="milliseconds">
<owner>[email protected]</owner>
<owner>[email protected]</owner>
@@ -29795,10 +29807,13 @@
<histogram name="WebCore.WebSocket.PerMessageDeflateContextTakeOverMode"
enum="WebSocketPerMessageDeflateContextTakeOverMode">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <owner>[email protected]</owner>
+ <owner>[email protected]</owner>
+ <owner>[email protected]</owner>
<summary>
Count the number of WebSockets that accepted permessage-deflate extension
- for each context take over mode.
+ for each context take over mode. Used by the old Blink-based WebSocket
+ implementation.
</summary>
</histogram>
@@ -42208,9 +42223,14 @@
<int value="2" label="FAILED">Failed</int>
</enum>
+<enum name="WebSocketNewPerMessageDeflateContextTakeoverMode" type="int">
+ <int value="0" label="Do not take over"/>
+ <int value="1" label="Take over"/>
+</enum>
+
<enum name="WebSocketPerMessageDeflateContextTakeOverMode" type="int">
- <int value="0" label="DoNotTakeOverContext"/>
- <int value="1" label="TakeOverContext"/>
+ <int value="0" label="Do not take over"/>
+ <int value="1" label="Take over"/>
</enum>
<enum name="WebSocketSendType" type="int">