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

Unified Diff: net/cert/multi_threaded_cert_verifier.cc

Issue 225583009: Add Net.CertVerifier_First_Job_Latency metric. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sleevi comments. Created 6 years, 8 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/cert/multi_threaded_cert_verifier.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/cert/multi_threaded_cert_verifier.cc
diff --git a/net/cert/multi_threaded_cert_verifier.cc b/net/cert/multi_threaded_cert_verifier.cc
index 4b2f37fbc55b5295e771477c24bef172fd97c0fe..f1b9bb8d1faf19c95a9b231314bebeb6528bc3fd 100644
--- a/net/cert/multi_threaded_cert_verifier.cc
+++ b/net/cert/multi_threaded_cert_verifier.cc
@@ -348,14 +348,23 @@ class CertVerifierJob {
}
void HandleResult(
- const MultiThreadedCertVerifier::CachedResult& verify_result) {
+ const MultiThreadedCertVerifier::CachedResult& verify_result,
+ bool is_first_job) {
worker_ = NULL;
net_log_.EndEvent(NetLog::TYPE_CERT_VERIFIER_JOB);
+ base::TimeDelta latency = base::TimeTicks::Now() - start_time_;
UMA_HISTOGRAM_CUSTOM_TIMES("Net.CertVerifier_Job_Latency",
- base::TimeTicks::Now() - start_time_,
+ latency,
base::TimeDelta::FromMilliseconds(1),
base::TimeDelta::FromMinutes(10),
100);
+ if (is_first_job) {
+ UMA_HISTOGRAM_CUSTOM_TIMES("Net.CertVerifier_First_Job_Latency",
+ latency,
+ base::TimeDelta::FromMilliseconds(1),
+ base::TimeDelta::FromMinutes(10),
+ 100);
+ }
PostAll(verify_result);
}
@@ -391,6 +400,7 @@ class CertVerifierJob {
MultiThreadedCertVerifier::MultiThreadedCertVerifier(
CertVerifyProc* verify_proc)
: cache_(kMaxCacheEntries),
+ first_job_(NULL),
requests_(0),
cache_hits_(0),
inflight_joins_(0),
@@ -474,6 +484,10 @@ int MultiThreadedCertVerifier::Verify(X509Certificate* cert,
return ERR_INSUFFICIENT_RESOURCES; // Just a guess.
}
inflight_.insert(std::make_pair(key, job));
+ if (requests_ == 1) {
+ // Cleared in HandleResult.
+ first_job_ = job;
+ }
}
CertVerifierRequest* request =
@@ -551,8 +565,13 @@ void MultiThreadedCertVerifier::HandleResult(
}
CertVerifierJob* job = j->second;
inflight_.erase(j);
+ bool is_first_job = false;
+ if (first_job_ == job) {
+ is_first_job = true;
+ first_job_ = NULL;
+ }
- job->HandleResult(cached_result);
+ job->HandleResult(cached_result, is_first_job);
delete job;
}
« no previous file with comments | « net/cert/multi_threaded_cert_verifier.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698