Commit 9c50b043 authored by tyoshino@chromium.org's avatar tyoshino@chromium.org

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
parent 65c1762f
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "base/basictypes.h" #include "base/basictypes.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/containers/hash_tables.h" #include "base/containers/hash_tables.h"
#include "base/metrics/histogram.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/strings/string_piece.h" #include "base/strings/string_piece.h"
...@@ -505,6 +506,11 @@ scoped_ptr<WebSocketStream> WebSocketBasicHandshakeStream::Upgrade() { ...@@ -505,6 +506,11 @@ scoped_ptr<WebSocketStream> WebSocketBasicHandshakeStream::Upgrade() {
extensions_)); extensions_));
DCHECK(extension_params_.get()); DCHECK(extension_params_.get());
if (extension_params_->deflate_enabled) { 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>( return scoped_ptr<WebSocketStream>(
new WebSocketDeflateStream(basic_stream.Pass(), new WebSocketDeflateStream(basic_stream.Pass(),
extension_params_->deflate_mode, extension_params_->deflate_mode,
......
...@@ -21,9 +21,12 @@ class IOBufferWithSize; ...@@ -21,9 +21,12 @@ class IOBufferWithSize;
class NET_EXPORT_PRIVATE WebSocketDeflater { class NET_EXPORT_PRIVATE WebSocketDeflater {
public: public:
// Do not reorder or remove entries of this enum. The values of them are used
// in UMA.
enum ContextTakeOverMode { enum ContextTakeOverMode {
DO_NOT_TAKE_OVER_CONTEXT, DO_NOT_TAKE_OVER_CONTEXT,
TAKE_OVER_CONTEXT, TAKE_OVER_CONTEXT,
NUM_CONTEXT_TAKEOVER_MODE_TYPES,
}; };
explicit WebSocketDeflater(ContextTakeOverMode mode); explicit WebSocketDeflater(ContextTakeOverMode mode);
......
...@@ -13989,6 +13989,18 @@ Therefore, the affected-histogram name has to have at least one dot in it. ...@@ -13989,6 +13989,18 @@ Therefore, the affected-histogram name has to have at least one dot in it.
<summary>The time spent in closesocket call in UDPSocketWin::Close.</summary> <summary>The time spent in closesocket call in UDPSocketWin::Close.</summary>
</histogram> </histogram>
<histogram name="Net.WebSocket.DeflateMode"
enum="WebSocketNewPerMessageDeflateContextTakeoverMode">
<owner>yhirano@chromium.org</owner>
<owner>ricea@chromium.org</owner>
<owner>tyoshino@chromium.org</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"> <histogram name="Net.WebSocket.Duration" units="milliseconds">
<owner>yhirano@chromium.org</owner> <owner>yhirano@chromium.org</owner>
<owner>ricea@chromium.org</owner> <owner>ricea@chromium.org</owner>
...@@ -29795,10 +29807,13 @@ Therefore, the affected-histogram name has to have at least one dot in it. ...@@ -29795,10 +29807,13 @@ Therefore, the affected-histogram name has to have at least one dot in it.
<histogram name="WebCore.WebSocket.PerMessageDeflateContextTakeOverMode" <histogram name="WebCore.WebSocket.PerMessageDeflateContextTakeOverMode"
enum="WebSocketPerMessageDeflateContextTakeOverMode"> enum="WebSocketPerMessageDeflateContextTakeOverMode">
<owner>Please list the metric's owners. Add more owner tags as needed.</owner> <owner>yhirano@chromium.org</owner>
<owner>ricea@chromium.org</owner>
<owner>tyoshino@chromium.org</owner>
<summary> <summary>
Count the number of WebSockets that accepted permessage-deflate extension 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> </summary>
</histogram> </histogram>
...@@ -42208,9 +42223,14 @@ Therefore, the affected-histogram name has to have at least one dot in it. ...@@ -42208,9 +42223,14 @@ Therefore, the affected-histogram name has to have at least one dot in it.
<int value="2" label="FAILED">Failed</int> <int value="2" label="FAILED">Failed</int>
</enum> </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"> <enum name="WebSocketPerMessageDeflateContextTakeOverMode" type="int">
<int value="0" label="DoNotTakeOverContext"/> <int value="0" label="Do not take over"/>
<int value="1" label="TakeOverContext"/> <int value="1" label="Take over"/>
</enum> </enum>
<enum name="WebSocketSendType" type="int"> <enum name="WebSocketSendType" type="int">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment