summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-01 22:58:57 +0000
committerrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-01 22:58:57 +0000
commit3a5ab8b7a9f2c0af4a416641a1f3a117540804c7 (patch)
treef8b6e03b5605fbd41944b9e7821c872b7e46ed53
parentc9555bb95e8317ab3db6d4f57b7d4dee814bca55 (diff)
downloadchromium_src-3a5ab8b7a9f2c0af4a416641a1f3a117540804c7.zip
chromium_src-3a5ab8b7a9f2c0af4a416641a1f3a117540804c7.tar.gz
chromium_src-3a5ab8b7a9f2c0af4a416641a1f3a117540804c7.tar.bz2
Add a histogram to track the causes of QUIC connection shutdowns.
Review URL: https://chromiumcodereview.appspot.com/18226002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209530 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--net/quic/quic_client_session.cc4
-rw-r--r--tools/metrics/histograms/histograms.xml62
2 files changed, 66 insertions, 0 deletions
diff --git a/net/quic/quic_client_session.cc b/net/quic/quic_client_session.cc
index 99b471b..b92f365 100644
--- a/net/quic/quic_client_session.cc
+++ b/net/quic/quic_client_session.cc
@@ -7,6 +7,7 @@
#include "base/callback_helpers.h"
#include "base/message_loop.h"
#include "base/metrics/histogram.h"
+#include "base/metrics/sparse_histogram.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/values.h"
@@ -157,6 +158,8 @@ void QuicClientSession::OnCryptoHandshakeEvent(CryptoHandshakeEvent event) {
}
void QuicClientSession::ConnectionClose(QuicErrorCode error, bool from_peer) {
+ UMA_HISTOGRAM_SPARSE_SLOWLY("Net.QuicSession.ConnectionCloseErrorCode",
+ error);
if (!callback_.is_null()) {
base::ResetAndReturn(&callback_).Run(ERR_QUIC_PROTOCOL_ERROR);
}
@@ -187,6 +190,7 @@ void QuicClientSession::StartReading() {
}
void QuicClientSession::CloseSessionOnError(int error) {
+ UMA_HISTOGRAM_SPARSE_SLOWLY("Net.QuicSession.CloseSessionOnError", -error);
CloseSessionOnErrorInner(error);
NotifyFactoryOfSessionClose();
}
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 3616b6e..785ae74 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -5694,6 +5694,19 @@ other types of suffix sets.
</summary>
</histogram>
+<histogram name="Net.QuicSession.CloseSessionOnError" enum="NetErrorCodes">
+ <summary>
+ The network error code which resulted in the session being closed.
+ </summary>
+</histogram>
+
+<histogram name="Net.QuicSession.ConnectionCloseErrorCode"
+ enum="QuicErrorCodes">
+ <summary>
+ The QUIC error code which resulted in the connection being closed.
+ </summary>
+</histogram>
+
<histogram name="Net.RenegotiationExtensionSupported">
<summary>
True if the HTTP request was sent to a server which supports the TLS
@@ -17966,6 +17979,55 @@ other types of suffix sets.
<int value="22" label="DOMAIN_NUM_EVENTS"/>
</enum>
+<enum name="QuicErrorCodes" type="int">
+ <int value="0" label="NO_ERROR"/>
+ <int value="1" label="INTERNAL_ERROR"/>
+ <int value="2" label="STREAM_DATA_AFTER_TERMINATION"/>
+ <int value="3" label="INVALID_PACKET_HEADER"/>
+ <int value="4" label="INVALID_FRAME_DATA"/>
+ <int value="5" label="INVALID_FEC_DATA"/>
+ <int value="6" label="INVALID_RST_STREAM_DATA"/>
+ <int value="7" label="INVALID_CONNECTION_CLOSE_DATA"/>
+ <int value="8" label="INVALID_GOAWAY_DATA"/>
+ <int value="9" label="INVALID_ACK_DATA"/>
+ <int value="10" label="INVALID_VERSION_NEGOTIATION_PACKET"/>
+ <int value="11" label="INVALID_PUBLIC_RST_PACKET"/>
+ <int value="12" label="DECRYPTION_FAILURE"/>
+ <int value="13" label="ENCRYPTION_FAILURE"/>
+ <int value="14" label="PACKET_TOO_LARGE"/>
+ <int value="15" label="PACKET_FOR_NONEXISTENT_STREAM"/>
+ <int value="16" label="PEER_GOING_AWAY"/>
+ <int value="17" label="INVALID_STREAM_ID"/>
+ <int value="18" label="TOO_MANY_OPEN_STREAMS"/>
+ <int value="19" label="PUBLIC_RESET"/>
+ <int value="20" label="INVALID_VERSION"/>
+ <int value="21" label="STREAM_RST_BEFORE_HEADERS_DECOMPRESSED"/>
+ <int value="22" label="INVALID_HEADER_ID"/>
+ <int value="23" label="INVALID_NEGOTIATED_VALUE"/>
+ <int value="24" label="DECOMPRESSION_FAILURE"/>
+ <int value="25" label="CONNECTION_TIMED_OUT"/>
+ <int value="26" label="ERROR_MIGRATING_ADDRESS"/>
+ <int value="27" label="PACKET_WRITE_ERROR"/>
+ <int value="28" label="HANDSHAKE_FAILED"/>
+ <int value="29" label="CRYPTO_TAGS_OUT_OF_ORDER"/>
+ <int value="30" label="CRYPTO_TOO_MANY_ENTRIES"/>
+ <int value="31" label="CRYPTO_INVALID_VALUE_LENGTH"/>
+ <int value="32" label="CRYPTO_MESSAGE_AFTER_HANDSHAKE_COMPLETE"/>
+ <int value="33" label="INVALID_CRYPTO_MESSAGE_TYPE"/>
+ <int value="34" label="INVALID_CRYPTO_MESSAGE_PARAMETER"/>
+ <int value="35" label="CRYPTO_MESSAGE_PARAMETER_NOT_FOUND"/>
+ <int value="36" label="CRYPTO_MESSAGE_PARAMETER_NO_OVERLAP"/>
+ <int value="37" label="CRYPTO_MESSAGE_INDEX_NOT_FOUND"/>
+ <int value="38" label="CRYPTO_INTERNAL_ERROR"/>
+ <int value="39" label="CRYPTO_VERSION_NOT_SUPPORTED"/>
+ <int value="40" label="CRYPTO_NO_SUPPORT"/>
+ <int value="41" label="CRYPTO_TOO_MANY_REJECTS"/>
+ <int value="42" label="PROOF_INVALID"/>
+ <int value="43" label="CRYPTO_DUPLICATE_TAG"/>
+ <int value="44" label="CRYPTO_ENCRYPTION_LEVEL_INCORRECT"/>
+ <int value="45" label="CRYPTO_SERVER_CONFIG_EXPIRED"/>
+</enum>
+
<enum name="QuicHandshakeState" type="int">
<int value="0" label="STARTED"/>
<int value="1" label="ENCRYPTION_ESTABLISHED"/>