Bug 1438896 : New test Patch , r?chutten draft
authorakriti <akriti.v10@gmail.com>
Fri, 13 Apr 2018 21:03:17 +0530
changeset 781741 e172d9b5cc12d4ccbd70666eae467f1549138eaf
parent 779723 a8061a09cd7064a8783ca9e67979d77fb52e001e
push id106406
push userbmo:akriti.v10@gmail.com
push dateFri, 13 Apr 2018 15:35:22 +0000
reviewerschutten
bugs1438896
milestone61.0a1
Bug 1438896 : New test Patch , r?chutten MozReview-Commit-ID: Eq6PVOO4o0x
toolkit/components/telemetry/Histograms.json
toolkit/components/telemetry/TelemetrySend.jsm
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -7108,16 +7108,36 @@
       "eRedirect",
       "abort",
       "timeout",
       "eTooLate",
       "eTerminated"
     ],
     "description": "Counts of the different ways sending a Telemetry ping can fail."
   },
+  "TELEMETRY_SEND_FAILURE_TYPE_PER_PING" : {
+    "record_in_processes": ["main"],
+    "alert_emails": ["telemetry-client-dev@mozilla.com", "chutten@mozilla.com"],
+    "bug_numbers": [1438896],
+    "expires_in_version": "66",
+    "kind": "categorical",
+    "keyed": true,
+    "labels": [
+      "eOK",
+      "eRequest",
+      "eUnreachable",
+      "eChannelOpen",
+      "eRedirect",
+      "abort",
+      "timeout",
+      "eTooLate",
+      "eTerminated"
+    ],
+    "description": "Counts the number of times a failure occures while sending a Telemetry ping. It is a keyed histogram where the type of ping will serve as the key and may include the following ping types : {common, main, deletion, crash, sync, new-profile, core, modules, environment, health, heartbeat, malware-addon-states, activation, saved-session, backgroundhangmonitor, first-shutdown, anonymous, uitour-tag}."
+  },
   "TELEMETRY_STRINGIFY" : {
     "record_in_processes": ["main"],
     "alert_emails": ["telemetry-client-dev@mozilla.com"],
     "expires_in_version": "never",
     "kind": "exponential",
     "high": 3000,
     "n_buckets": 10,
     "description": "Time to stringify telemetry object (ms)"
--- a/toolkit/components/telemetry/TelemetrySend.jsm
+++ b/toolkit/components/telemetry/TelemetrySend.jsm
@@ -1103,16 +1103,17 @@ var TelemetrySendImpl = {
       this._log.trace("_doPing - Can't send ping " + ping.id);
       return Promise.resolve();
     }
 
     if (this._tooLateToSend) {
       // Too late to send now. Reject so we pend the ping to send it next time.
       this._log.trace("_doPing - Too late to send ping " + ping.id);
       Telemetry.getHistogramById("TELEMETRY_SEND_FAILURE_TYPE").add("eTooLate");
+      Telemetry.getHistogramById("TELEMETRY_SEND_FAILURE_TYPE_PER_PING").add("eTooLate", ping.type);
       return Promise.reject();
     }
 
     this._log.trace("_doPing - server: " + this._server + ", persisted: " + isPersisted +
                     ", id: " + id);
 
     const url = this._buildSubmissionURL(ping);
 
@@ -1158,16 +1159,17 @@ var TelemetrySendImpl = {
     let errorhandler = (event) => {
       let failure = event.type;
       if (failure === "error") {
         failure = XHR_ERROR_TYPE[request.errorCode];
       }
 
       TelemetryHealthPing.recordSendFailure(failure);
       Telemetry.getHistogramById("TELEMETRY_SEND_FAILURE_TYPE").add(failure);
+      Telemetry.getHistogramById("TELEMETRY_SEND_FAILURE_TYPE_PER_PING").add(failure, ping.type);
 
       this._log.error("_doPing - error making request to " + url + ": " + failure);
       onRequestFinished(false, event);
     };
     request.onerror = errorhandler;
     request.ontimeout = errorhandler;
     request.onabort = errorhandler;