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

Unified Diff: net/quic/core/crypto/properties_based_quic_server_info.cc

Issue 2230503003: QUIC - Added histograms to track how cache ie performing when server (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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
« no previous file with comments | « net/quic/chromium/quic_stream_factory.cc ('k') | net/quic/core/crypto/quic_server_info.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/core/crypto/properties_based_quic_server_info.cc
diff --git a/net/quic/core/crypto/properties_based_quic_server_info.cc b/net/quic/core/crypto/properties_based_quic_server_info.cc
index 6fd9b2418a43eac10c7fe989cc3fcb6fa194f01f..0ab4f6cef1a4c9f5709484eea4eb69052ee8ce0a 100644
--- a/net/quic/core/crypto/properties_based_quic_server_info.cc
+++ b/net/quic/core/crypto/properties_based_quic_server_info.cc
@@ -5,11 +5,29 @@
#include "net/quic/core/crypto/properties_based_quic_server_info.h"
#include "base/base64.h"
+#include "base/metrics/histogram_macros.h"
#include "net/base/net_errors.h"
#include "net/http/http_server_properties.h"
using std::string;
+namespace {
+
+void RecordQuicServerInfoStatus(
+ net::QuicServerInfo::QuicServerInfoAPICall call) {
+ UMA_HISTOGRAM_ENUMERATION(
+ "Net.QuicDiskCache.APICall.PropertiesBasedCache", call,
+ net::QuicServerInfo::QUIC_SERVER_INFO_NUM_OF_API_CALLS);
+}
+
+void RecordQuicServerInfoFailure(net::QuicServerInfo::FailureReason failure) {
+ UMA_HISTOGRAM_ENUMERATION(
+ "Net.QuicDiskCache.FailureReason.PropertiesBasedCache", failure,
+ net::QuicServerInfo::NUM_OF_FAILURES);
+}
+
+} // namespace
+
namespace net {
PropertiesBasedQuicServerInfo::PropertiesBasedQuicServerInfo(
@@ -22,37 +40,58 @@ PropertiesBasedQuicServerInfo::PropertiesBasedQuicServerInfo(
PropertiesBasedQuicServerInfo::~PropertiesBasedQuicServerInfo() {}
-void PropertiesBasedQuicServerInfo::Start() {}
+void PropertiesBasedQuicServerInfo::Start() {
+ RecordQuicServerInfoStatus(QUIC_SERVER_INFO_START);
+}
int PropertiesBasedQuicServerInfo::WaitForDataReady(
const CompletionCallback& callback) {
+ RecordQuicServerInfoStatus(QUIC_SERVER_INFO_WAIT_FOR_DATA_READY);
const string* data = http_server_properties_->GetQuicServerInfo(server_id_);
string decoded;
- if (!data || !base::Base64Decode(*data, &decoded) || !Parse(decoded)) {
+ if (!data) {
+ RecordQuicServerInfoFailure(PARSE_NO_DATA_FAILURE);
+ return ERR_FAILED;
+ }
+ if (!base::Base64Decode(*data, &decoded)) {
+ RecordQuicServerInfoFailure(PARSE_DATA_DECODE_FAILURE);
+ return ERR_FAILED;
+ }
+ RecordQuicServerInfoStatus(QUIC_SERVER_INFO_PARSE);
+ if (!Parse(decoded)) {
+ RecordQuicServerInfoFailure(PARSE_FAILURE);
return ERR_FAILED;
}
return OK;
}
-void PropertiesBasedQuicServerInfo::ResetWaitForDataReadyCallback() {}
+void PropertiesBasedQuicServerInfo::ResetWaitForDataReadyCallback() {
+ RecordQuicServerInfoStatus(QUIC_SERVER_INFO_RESET_WAIT_FOR_DATA_READY);
+}
-void PropertiesBasedQuicServerInfo::CancelWaitForDataReadyCallback() {}
+void PropertiesBasedQuicServerInfo::CancelWaitForDataReadyCallback() {
+ RecordQuicServerInfoStatus(QUIC_SERVER_INFO_WAIT_FOR_DATA_READY_CANCEL);
+}
bool PropertiesBasedQuicServerInfo::IsDataReady() {
return true;
}
bool PropertiesBasedQuicServerInfo::IsReadyToPersist() {
+ RecordQuicServerInfoStatus(QUIC_SERVER_INFO_READY_TO_PERSIST);
return true;
}
void PropertiesBasedQuicServerInfo::Persist() {
+ RecordQuicServerInfoStatus(QUIC_SERVER_INFO_PERSIST);
string encoded;
base::Base64Encode(Serialize(), &encoded);
http_server_properties_->SetQuicServerInfo(server_id_, encoded);
}
-void PropertiesBasedQuicServerInfo::OnExternalCacheHit() {}
+void PropertiesBasedQuicServerInfo::OnExternalCacheHit() {
+ RecordQuicServerInfoStatus(QUIC_SERVER_INFO_EXTERNAL_CACHE_HIT);
+}
PropertiesBasedQuicServerInfoFactory::PropertiesBasedQuicServerInfoFactory(
HttpServerProperties* http_server_properties)
« no previous file with comments | « net/quic/chromium/quic_stream_factory.cc ('k') | net/quic/core/crypto/quic_server_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698