summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorholte@chromium.org <holte@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-07 15:29:50 +0000
committerholte@chromium.org <holte@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-07 15:29:50 +0000
commitf30f48309343391319624595ad49575cabd76d52 (patch)
tree134614851a0baee2e9547d2b3c3c46a84e7c92d8
parente29b2ef005154d7c582e4db3b8dbb55db1c918a0 (diff)
downloadchromium_src-f30f48309343391319624595ad49575cabd76d52.zip
chromium_src-f30f48309343391319624595ad49575cabd76d52.tar.gz
chromium_src-f30f48309343391319624595ad49575cabd76d52.tar.bz2
Check for error and log error codes on Rappor Uploads
BUG=370575 Review URL: https://codereview.chromium.org/272463004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268780 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--components/rappor/log_uploader.cc16
-rw-r--r--tools/metrics/histograms/histograms.xml9
2 files changed, 21 insertions, 4 deletions
diff --git a/components/rappor/log_uploader.cc b/components/rappor/log_uploader.cc
index ead1a97..8f1c4d6 100644
--- a/components/rappor/log_uploader.cc
+++ b/components/rappor/log_uploader.cc
@@ -7,6 +7,7 @@
#include "base/metrics/histogram.h"
#include "base/metrics/sparse_histogram.h"
#include "net/base/load_flags.h"
+#include "net/base/net_errors.h"
#include "net/url_request/url_fetcher.h"
namespace {
@@ -102,10 +103,21 @@ void LogUploader::OnURLFetchComplete(const net::URLFetcher* source) {
DCHECK_EQ(current_fetch_.get(), source);
scoped_ptr<net::URLFetcher> fetch(current_fetch_.Pass());
+ const net::URLRequestStatus& request_status = source->GetStatus();
+
const int response_code = source->GetResponseCode();
- // Log a histogram to track response success vs. failure rates.
- UMA_HISTOGRAM_SPARSE_SLOWLY("Rappor.UploadResponseCode", response_code);
+ if (request_status.status() != net::URLRequestStatus::SUCCESS) {
+ UMA_HISTOGRAM_SPARSE_SLOWLY("Rappor.FailedUploadErrorCode",
+ -request_status.error());
+ DVLOG(1) << "Rappor server upload failed with error: "
+ << request_status.error() << ": "
+ << net::ErrorToString(request_status.error());
+ DCHECK_EQ(-1, response_code);
+ } else {
+ // Log a histogram to track response success vs. failure rates.
+ UMA_HISTOGRAM_SPARSE_SLOWLY("Rappor.UploadResponseCode", response_code);
+ }
const bool upload_succeeded = response_code == 200;
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 7aac519..b94d38b 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -20927,14 +20927,19 @@ Therefore, the affected-histogram name has to have at least one dot in it.
</histogram>
<histogram name="Rappor.DiscardReason" enum="RapporDiscardReason">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <owner>holte@chromium.org</owner>
<summary>
For each Rappor log that is discarded, the reason that it was discarded.
</summary>
</histogram>
+<histogram name="Rappor.FailedUploadErrorCode" enum="NetErrorCodes">
+ <owner>holte@chromium.org</owner>
+ <summary>Net error codes for failed Rappor uploads.</summary>
+</histogram>
+
<histogram name="Rappor.UploadResponseCode" enum="HttpResponseCode">
- <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
+ <owner>holte@chromium.org</owner>
<summary>
For each upload to the Rappor server, log the response received from the
server.