Bug 1247985 - Convert DevTools open probes to count, enable for release. r=mratcliffe p=bsmedberg
authorJ. Ryan Stinnett <jryans@gmail.com>
Wed, 17 Feb 2016 09:57:57 -0600
changeset 285125 668e08174667f8b15e3c78710212dc2be1179193
parent 285124 1eefe1efe183078241b1401732e85550fbdcea94
child 285126 996485ab7306b5912dac387422a005651a01cea4
push id30023
push usercbook@mozilla.com
push dateTue, 23 Feb 2016 15:55:08 +0000
treeherdermozilla-central@a9e33d8c48b5 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmratcliffe
bugs1247985
milestone47.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1247985 - Convert DevTools open probes to count, enable for release. r=mratcliffe p=bsmedberg MozReview-Commit-ID: Eq5gEqyJhPZ
devtools/client/inspector/rules/test/browser_rules_eyedropper.js
devtools/client/shared/telemetry.js
devtools/client/shared/test/browser_telemetry_button_eyedropper.js
devtools/client/shared/test/browser_telemetry_button_paintflashing.js
devtools/client/shared/test/browser_telemetry_button_responsive.js
devtools/client/shared/test/browser_telemetry_button_scratchpad.js
devtools/client/shared/test/browser_telemetry_button_tilt.js
devtools/client/shared/test/browser_telemetry_sidebar.js
devtools/client/shared/test/head.js
devtools/client/webide/test/test_telemetry.html
toolkit/components/telemetry/Histograms.json
--- a/devtools/client/inspector/rules/test/browser_rules_eyedropper.js
+++ b/devtools/client/inspector/rules/test/browser_rules_eyedropper.js
@@ -5,20 +5,20 @@
 "use strict";
 
 // So we can test collecting telemetry on the eyedropper
 var oldCanRecord = Services.telemetry.canRecordExtended;
 Services.telemetry.canRecordExtended = true;
 registerCleanupFunction(function() {
   Services.telemetry.canRecordExtended = oldCanRecord;
 });
-const HISTOGRAM_ID = "DEVTOOLS_PICKER_EYEDROPPER_OPENED_BOOLEAN";
+const HISTOGRAM_ID = "DEVTOOLS_PICKER_EYEDROPPER_OPENED_COUNT";
 const FLAG_HISTOGRAM_ID = "DEVTOOLS_PICKER_EYEDROPPER_OPENED_PER_USER_FLAG";
 const EXPECTED_TELEMETRY = {
-  "DEVTOOLS_PICKER_EYEDROPPER_OPENED_BOOLEAN": 2,
+  "DEVTOOLS_PICKER_EYEDROPPER_OPENED_COUNT": 2,
   "DEVTOOLS_PICKER_EYEDROPPER_OPENED_PER_USER_FLAG": 1
 };
 
 const TEST_URI = `
   <style type="text/css">
     body {
       background-color: white;
       padding: 0px
@@ -117,17 +117,17 @@ function clearTelemetry() {
 }
 
 function checkTelemetry() {
   for (let histogramId in EXPECTED_TELEMETRY) {
     let expected = EXPECTED_TELEMETRY[histogramId];
     let histogram = Services.telemetry.getHistogramById(histogramId);
     let snapshot = histogram.snapshot();
 
-    is(snapshot.counts[1], expected,
+    is(snapshot.sum, expected,
       "eyedropper telemetry value correct for " + histogramId);
   }
 }
 
 /* Helpers */
 
 function openEyedropper(view, swatch) {
   let deferred = promise.defer();
--- a/devtools/client/shared/telemetry.js
+++ b/devtools/client/shared/telemetry.js
@@ -2,24 +2,24 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /**
  * Telemetry.
  *
  * To add metrics for a tool:
  *
- * 1. Create boolean, flag and exponential entries in
+ * 1. Create count, flag, and exponential entries in
  *    toolkit/components/telemetry/Histograms.json. Each type is optional but it
  *    is best if all three can be included.
  *
  * 2. Add your chart entries to devtools/client/shared/telemetry.js
  *    (Telemetry.prototype._histograms):
  *    mytoolname: {
- *      histogram: "DEVTOOLS_MYTOOLNAME_OPENED_BOOLEAN",
+ *      histogram: "DEVTOOLS_MYTOOLNAME_OPENED_COUNT",
  *      userHistogram: "DEVTOOLS_MYTOOLNAME_OPENED_PER_USER_FLAG",
  *      timerHistogram: "DEVTOOLS_MYTOOLNAME_TIME_ACTIVE_SECONDS"
  *    },
  *
  * 3. Include this module at the top of your tool. Use:
  *      let Telemetry = require("devtools/client/shared/telemetry")
  *
  * 4. Create a telemetry instance in your tool's constructor:
@@ -56,186 +56,186 @@ module.exports = Telemetry;
 
 var {Cc, Ci, Cu} = require("chrome");
 var {Services} = Cu.import("resource://gre/modules/Services.jsm", {});
 var {XPCOMUtils} = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {});
 
 Telemetry.prototype = {
   _histograms: {
     toolbox: {
-      histogram: "DEVTOOLS_TOOLBOX_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_TOOLBOX_OPENED_COUNT",
       userHistogram: "DEVTOOLS_TOOLBOX_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_TOOLBOX_TIME_ACTIVE_SECONDS"
     },
     options: {
-      histogram: "DEVTOOLS_OPTIONS_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_OPTIONS_OPENED_COUNT",
       userHistogram: "DEVTOOLS_OPTIONS_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_OPTIONS_TIME_ACTIVE_SECONDS"
     },
     webconsole: {
-      histogram: "DEVTOOLS_WEBCONSOLE_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_WEBCONSOLE_OPENED_COUNT",
       userHistogram: "DEVTOOLS_WEBCONSOLE_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_WEBCONSOLE_TIME_ACTIVE_SECONDS"
     },
     browserconsole: {
-      histogram: "DEVTOOLS_BROWSERCONSOLE_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_BROWSERCONSOLE_OPENED_COUNT",
       userHistogram: "DEVTOOLS_BROWSERCONSOLE_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_BROWSERCONSOLE_TIME_ACTIVE_SECONDS"
     },
     inspector: {
-      histogram: "DEVTOOLS_INSPECTOR_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_INSPECTOR_OPENED_COUNT",
       userHistogram: "DEVTOOLS_INSPECTOR_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_INSPECTOR_TIME_ACTIVE_SECONDS"
     },
     ruleview: {
-      histogram: "DEVTOOLS_RULEVIEW_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_RULEVIEW_OPENED_COUNT",
       userHistogram: "DEVTOOLS_RULEVIEW_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_RULEVIEW_TIME_ACTIVE_SECONDS"
     },
     computedview: {
-      histogram: "DEVTOOLS_COMPUTEDVIEW_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_COMPUTEDVIEW_OPENED_COUNT",
       userHistogram: "DEVTOOLS_COMPUTEDVIEW_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_COMPUTEDVIEW_TIME_ACTIVE_SECONDS"
     },
     layoutview: {
-      histogram: "DEVTOOLS_LAYOUTVIEW_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_LAYOUTVIEW_OPENED_COUNT",
       userHistogram: "DEVTOOLS_LAYOUTVIEW_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_LAYOUTVIEW_TIME_ACTIVE_SECONDS"
     },
     fontinspector: {
-      histogram: "DEVTOOLS_FONTINSPECTOR_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_FONTINSPECTOR_OPENED_COUNT",
       userHistogram: "DEVTOOLS_FONTINSPECTOR_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_FONTINSPECTOR_TIME_ACTIVE_SECONDS"
     },
     animationinspector: {
-      histogram: "DEVTOOLS_ANIMATIONINSPECTOR_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_ANIMATIONINSPECTOR_OPENED_COUNT",
       userHistogram: "DEVTOOLS_ANIMATIONINSPECTOR_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_ANIMATIONINSPECTOR_TIME_ACTIVE_SECONDS"
     },
     jsdebugger: {
-      histogram: "DEVTOOLS_JSDEBUGGER_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_JSDEBUGGER_OPENED_COUNT",
       userHistogram: "DEVTOOLS_JSDEBUGGER_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_JSDEBUGGER_TIME_ACTIVE_SECONDS"
     },
     jsbrowserdebugger: {
-      histogram: "DEVTOOLS_JSBROWSERDEBUGGER_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_JSBROWSERDEBUGGER_OPENED_COUNT",
       userHistogram: "DEVTOOLS_JSBROWSERDEBUGGER_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_JSBROWSERDEBUGGER_TIME_ACTIVE_SECONDS"
     },
     styleeditor: {
-      histogram: "DEVTOOLS_STYLEEDITOR_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_STYLEEDITOR_OPENED_COUNT",
       userHistogram: "DEVTOOLS_STYLEEDITOR_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_STYLEEDITOR_TIME_ACTIVE_SECONDS"
     },
     shadereditor: {
-      histogram: "DEVTOOLS_SHADEREDITOR_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_SHADEREDITOR_OPENED_COUNT",
       userHistogram: "DEVTOOLS_SHADEREDITOR_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_SHADEREDITOR_TIME_ACTIVE_SECONDS"
     },
     webaudioeditor: {
-      histogram: "DEVTOOLS_WEBAUDIOEDITOR_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_WEBAUDIOEDITOR_OPENED_COUNT",
       userHistogram: "DEVTOOLS_WEBAUDIOEDITOR_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_WEBAUDIOEDITOR_TIME_ACTIVE_SECONDS"
     },
     canvasdebugger: {
-      histogram: "DEVTOOLS_CANVASDEBUGGER_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_CANVASDEBUGGER_OPENED_COUNT",
       userHistogram: "DEVTOOLS_CANVASDEBUGGER_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_CANVASDEBUGGER_TIME_ACTIVE_SECONDS"
     },
     performance: {
-      histogram: "DEVTOOLS_JSPROFILER_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_JSPROFILER_OPENED_COUNT",
       userHistogram: "DEVTOOLS_JSPROFILER_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_JSPROFILER_TIME_ACTIVE_SECONDS"
     },
     memory: {
-      histogram: "DEVTOOLS_MEMORY_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_MEMORY_OPENED_COUNT",
       userHistogram: "DEVTOOLS_MEMORY_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_MEMORY_TIME_ACTIVE_SECONDS"
     },
     netmonitor: {
-      histogram: "DEVTOOLS_NETMONITOR_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_NETMONITOR_OPENED_COUNT",
       userHistogram: "DEVTOOLS_NETMONITOR_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_NETMONITOR_TIME_ACTIVE_SECONDS"
     },
     storage: {
-      histogram: "DEVTOOLS_STORAGE_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_STORAGE_OPENED_COUNT",
       userHistogram: "DEVTOOLS_STORAGE_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_STORAGE_TIME_ACTIVE_SECONDS"
     },
     tilt: {
-      histogram: "DEVTOOLS_TILT_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_TILT_OPENED_COUNT",
       userHistogram: "DEVTOOLS_TILT_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_TILT_TIME_ACTIVE_SECONDS"
     },
     paintflashing: {
-      histogram: "DEVTOOLS_PAINTFLASHING_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_PAINTFLASHING_OPENED_COUNT",
       userHistogram: "DEVTOOLS_PAINTFLASHING_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_PAINTFLASHING_TIME_ACTIVE_SECONDS"
     },
     scratchpad: {
-      histogram: "DEVTOOLS_SCRATCHPAD_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_SCRATCHPAD_OPENED_COUNT",
       userHistogram: "DEVTOOLS_SCRATCHPAD_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_SCRATCHPAD_TIME_ACTIVE_SECONDS"
     },
     "scratchpad-window": {
-      histogram: "DEVTOOLS_SCRATCHPAD_WINDOW_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_SCRATCHPAD_WINDOW_OPENED_COUNT",
       userHistogram: "DEVTOOLS_SCRATCHPAD_WINDOW_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_SCRATCHPAD_WINDOW_TIME_ACTIVE_SECONDS"
     },
     responsive: {
-      histogram: "DEVTOOLS_RESPONSIVE_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_RESPONSIVE_OPENED_COUNT",
       userHistogram: "DEVTOOLS_RESPONSIVE_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_RESPONSIVE_TIME_ACTIVE_SECONDS"
     },
     eyedropper: {
-      histogram: "DEVTOOLS_EYEDROPPER_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_EYEDROPPER_OPENED_COUNT",
       userHistogram: "DEVTOOLS_EYEDROPPER_OPENED_PER_USER_FLAG",
     },
     menueyedropper: {
-      histogram: "DEVTOOLS_MENU_EYEDROPPER_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_MENU_EYEDROPPER_OPENED_COUNT",
       userHistogram: "DEVTOOLS_MENU_EYEDROPPER_OPENED_PER_USER_FLAG",
     },
     pickereyedropper: {
-      histogram: "DEVTOOLS_PICKER_EYEDROPPER_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_PICKER_EYEDROPPER_OPENED_COUNT",
       userHistogram: "DEVTOOLS_PICKER_EYEDROPPER_OPENED_PER_USER_FLAG",
     },
     developertoolbar: {
-      histogram: "DEVTOOLS_DEVELOPERTOOLBAR_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_DEVELOPERTOOLBAR_OPENED_COUNT",
       userHistogram: "DEVTOOLS_DEVELOPERTOOLBAR_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_DEVELOPERTOOLBAR_TIME_ACTIVE_SECONDS"
     },
     aboutdebugging: {
-      histogram: "DEVTOOLS_ABOUTDEBUGGING_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_ABOUTDEBUGGING_OPENED_COUNT",
       userHistogram: "DEVTOOLS_ABOUTDEBUGGING_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_ABOUTDEBUGGING_TIME_ACTIVE_SECONDS"
     },
     webide: {
-      histogram: "DEVTOOLS_WEBIDE_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_WEBIDE_OPENED_COUNT",
       userHistogram: "DEVTOOLS_WEBIDE_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_WEBIDE_TIME_ACTIVE_SECONDS"
     },
     webideProjectEditor: {
-      histogram: "DEVTOOLS_WEBIDE_PROJECT_EDITOR_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_WEBIDE_PROJECT_EDITOR_OPENED_COUNT",
       userHistogram: "DEVTOOLS_WEBIDE_PROJECT_EDITOR_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_WEBIDE_PROJECT_EDITOR_TIME_ACTIVE_SECONDS"
     },
     webideProjectEditorSave: {
-      histogram: "DEVTOOLS_WEBIDE_PROJECT_EDITOR_SAVE_BOOLEAN",
+      histogram: "DEVTOOLS_WEBIDE_PROJECT_EDITOR_SAVE_COUNT",
       userHistogram: "DEVTOOLS_WEBIDE_PROJECT_EDITOR_SAVE_PER_USER_FLAG",
     },
     webideNewProject: {
-      histogram: "DEVTOOLS_WEBIDE_NEW_PROJECT_BOOLEAN",
+      histogram: "DEVTOOLS_WEBIDE_NEW_PROJECT_COUNT",
       userHistogram: "DEVTOOLS_WEBIDE_NEW_PROJECT_PER_USER_FLAG",
     },
     webideImportProject: {
-      histogram: "DEVTOOLS_WEBIDE_IMPORT_PROJECT_BOOLEAN",
+      histogram: "DEVTOOLS_WEBIDE_IMPORT_PROJECT_COUNT",
       userHistogram: "DEVTOOLS_WEBIDE_IMPORT_PROJECT_PER_USER_FLAG",
     },
     custom: {
-      histogram: "DEVTOOLS_CUSTOM_OPENED_BOOLEAN",
+      histogram: "DEVTOOLS_CUSTOM_OPENED_COUNT",
       userHistogram: "DEVTOOLS_CUSTOM_OPENED_PER_USER_FLAG",
       timerHistogram: "DEVTOOLS_CUSTOM_TIME_ACTIVE_SECONDS"
     }
   },
 
   /**
    * Add an entry to a histogram.
    *
--- a/devtools/client/shared/test/browser_telemetry_button_eyedropper.js
+++ b/devtools/client/shared/test/browser_telemetry_button_eyedropper.js
@@ -46,16 +46,16 @@ function checkResults(histIdFocus, Telem
       // browser_telemetry_toolboxtabs_{toolname}.js so we skip them here
       // because we only open the inspector once for this test.
       continue;
     }
 
     if (histId.endsWith("OPENED_PER_USER_FLAG")) {
       ok(value.length === 1 && value[0] === true,
          "Per user value " + histId + " has a single value of true");
-    } else if (histId.endsWith("OPENED_BOOLEAN")) {
+    } else if (histId.endsWith("OPENED_COUNT")) {
       is(value.length, 1, histId + " has one entry");
 
       let okay = value.every(element => element === true);
       ok(okay, "All " + histId + " entries are === true");
     }
   }
 }
--- a/devtools/client/shared/test/browser_telemetry_button_paintflashing.js
+++ b/devtools/client/shared/test/browser_telemetry_button_paintflashing.js
@@ -66,17 +66,17 @@ function checkResults(histIdFocus, Telem
       // browser_telemetry_toolboxtabs_{toolname}.js so we skip them here
       // because we only open the inspector once for this test.
       continue;
     }
 
     if (histId.endsWith("OPENED_PER_USER_FLAG")) {
       ok(value.length === 1 && value[0] === true,
          "Per user value " + histId + " has a single value of true");
-    } else if (histId.endsWith("OPENED_BOOLEAN")) {
+    } else if (histId.endsWith("OPENED_COUNT")) {
       ok(value.length > 1, histId + " has more than one entry");
 
       let okay = value.every(function(element) {
         return element === true;
       });
 
       ok(okay, "All " + histId + " entries are === true");
     } else if (histId.endsWith("TIME_ACTIVE_SECONDS")) {
--- a/devtools/client/shared/test/browser_telemetry_button_responsive.js
+++ b/devtools/client/shared/test/browser_telemetry_button_responsive.js
@@ -69,17 +69,17 @@ function checkResults(histIdFocus, Telem
       // browser_telemetry_toolboxtabs_{toolname}.js so we skip them here
       // because we only open the inspector once for this test.
       continue;
     }
 
     if (histId.endsWith("OPENED_PER_USER_FLAG")) {
       ok(value.length === 1 && value[0] === true,
          "Per user value " + histId + " has a single value of true");
-    } else if (histId.endsWith("OPENED_BOOLEAN")) {
+    } else if (histId.endsWith("OPENED_COUNT")) {
       ok(value.length > 1, histId + " has more than one entry");
 
       let okay = value.every(function(element) {
         return element === true;
       });
 
       ok(okay, "All " + histId + " entries are === true");
     } else if (histId.endsWith("TIME_ACTIVE_SECONDS")) {
--- a/devtools/client/shared/test/browser_telemetry_button_scratchpad.js
+++ b/devtools/client/shared/test/browser_telemetry_button_scratchpad.js
@@ -101,17 +101,17 @@ function checkResults(histIdFocus, Telem
       // browser_telemetry_toolboxtabs_{toolname}.js so we skip them here
       // because we only open the inspector once for this test.
       continue;
     }
 
     if (histId.endsWith("OPENED_PER_USER_FLAG")) {
       ok(value.length === 1 && value[0] === true,
          "Per user value " + histId + " has a single value of true");
-    } else if (histId.endsWith("OPENED_BOOLEAN")) {
+    } else if (histId.endsWith("OPENED_COUNT")) {
       ok(value.length > 1, histId + " has more than one entry");
 
       let okay = value.every(function(element) {
         return element === true;
       });
 
       ok(okay, "All " + histId + " entries are === true");
     } else if (histId.endsWith("TIME_ACTIVE_SECONDS")) {
--- a/devtools/client/shared/test/browser_telemetry_button_tilt.js
+++ b/devtools/client/shared/test/browser_telemetry_button_tilt.js
@@ -84,17 +84,17 @@ function checkResults(histIdFocus, Telem
       // browser_telemetry_toolboxtabs_{toolname}.js so we skip them here
       // because we only open the inspector once for this test.
       continue;
     }
 
     if (histId.endsWith("OPENED_PER_USER_FLAG")) {
       ok(value.length === 1 && value[0] === true,
          "Per user value " + histId + " has a single value of true");
-    } else if (histId.endsWith("OPENED_BOOLEAN")) {
+    } else if (histId.endsWith("OPENED_COUNT")) {
       ok(value.length > 1, histId + " has more than one entry");
 
       let okay = value.every(function(element) {
         return element === true;
       });
 
       ok(okay, "All " + histId + " entries are === true");
     } else if (histId.endsWith("TIME_ACTIVE_SECONDS")) {
--- a/devtools/client/shared/test/browser_telemetry_sidebar.js
+++ b/devtools/client/shared/test/browser_telemetry_sidebar.js
@@ -57,19 +57,19 @@ function checkResults(Telemetry) {
       // Inspector stats are tested in browser_telemetry_toolboxtabs.js so we
       // skip them here because we only open the inspector once for this test.
       continue;
     }
 
     if (histId.endsWith("OPENED_PER_USER_FLAG")) {
       ok(value.length === 1 && value[0] === true,
          "Per user value " + histId + " has a single value of true");
-    } else if (histId === "DEVTOOLS_TOOLBOX_OPENED_BOOLEAN") {
+    } else if (histId === "DEVTOOLS_TOOLBOX_OPENED_COUNT") {
       is(value.length, 1, histId + " has only one entry");
-    } else if (histId.endsWith("OPENED_BOOLEAN")) {
+    } else if (histId.endsWith("OPENED_COUNT")) {
       ok(value.length > 1, histId + " has more than one entry");
 
       let okay = value.every(function(element) {
         return element === true;
       });
 
       ok(okay, "All " + histId + " entries are === true");
     } else if (histId.endsWith("TIME_ACTIVE_SECONDS")) {
--- a/devtools/client/shared/test/head.js
+++ b/devtools/client/shared/test/head.js
@@ -163,17 +163,17 @@ function stopRecordingTelemetryLogs(Tele
  */
 function checkTelemetryResults(Telemetry) {
   let result = Telemetry.prototype.telemetryInfo;
 
   for (let [histId, value] of Iterator(result)) {
     if (histId.endsWith("OPENED_PER_USER_FLAG")) {
       ok(value.length === 1 && value[0] === true,
          "Per user value " + histId + " has a single value of true");
-    } else if (histId.endsWith("OPENED_BOOLEAN")) {
+    } else if (histId.endsWith("OPENED_COUNT")) {
       ok(value.length > 1, histId + " has more than one entry");
 
       let okay = value.every(function(element) {
         return element === true;
       });
 
       ok(okay, "All " + histId + " entries are === true");
     } else if (histId.endsWith("TIME_ACTIVE_SECONDS")) {
--- a/devtools/client/webide/test/test_telemetry.html
+++ b/devtools/client/webide/test/test_telemetry.html
@@ -167,20 +167,20 @@
         for (let [histId, value] of Iterator(result)) {
           if (histId.endsWith("_PER_USER_FLAG")) {
             ok(value.length === 1 && !!value[0],
                "Per user value " + histId + " has a single value of true");
           } else if (histId === "DEVTOOLS_WEBIDE_IMPORT_PROJECT_BOOLEAN") {
             ok(value.length === 1 && !!value[0],
                histId + " has 1 successful entry");
           } else if (histId ===
-                     "DEVTOOLS_WEBIDE_PROJECT_EDITOR_OPENED_BOOLEAN") {
+                     "DEVTOOLS_WEBIDE_PROJECT_EDITOR_OPENED_COUNT") {
             ok(value.length === 1 && !!value[0],
                histId + " has 1 successful entry");
-          } else if (histId === "DEVTOOLS_WEBIDE_OPENED_BOOLEAN") {
+          } else if (histId === "DEVTOOLS_WEBIDE_OPENED_COUNT") {
             ok(value.length > 1, histId + " has more than one entry");
 
             let okay = value.every(function(element) {
               return !!element;
             });
 
             ok(okay, "All " + histId + " entries are true");
           } else if (histId.endsWith("WEBIDE_TIME_ACTIVE_SECONDS")) {
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -6795,381 +6795,486 @@
   },
   "DEVTOOLS_DEBUGGER_RDP_REMOTE_ASSIGN_MS": {
     "expires_in_version": "never",
     "kind": "exponential",
     "high": 10000,
     "n_buckets": 1000,
     "description": "The time (in milliseconds) that it took an 'assign' request to go round trip."
   },
-  "DEVTOOLS_TOOLBOX_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's toolbox been opened?"
-  },
-  "DEVTOOLS_OPTIONS_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Options panel been opened?"
-  },
-  "DEVTOOLS_WEBCONSOLE_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Web Console been opened?"
-  },
-  "DEVTOOLS_BROWSERCONSOLE_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Browser Console been opened?"
-  },
-  "DEVTOOLS_INSPECTOR_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Inspector been opened?"
-  },
-  "DEVTOOLS_RULEVIEW_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Rule View been opened?"
-  },
-  "DEVTOOLS_COMPUTEDVIEW_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Computed View been opened?"
-  },
-  "DEVTOOLS_LAYOUTVIEW_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Layout View been opened?"
-  },
-  "DEVTOOLS_FONTINSPECTOR_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Font Inspector been opened?"
-  },
-  "DEVTOOLS_ANIMATIONINSPECTOR_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Animation Inspector been opened?"
-  },
-  "DEVTOOLS_JSDEBUGGER_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Debugger been opened?"
-  },
-  "DEVTOOLS_JSBROWSERDEBUGGER_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Browser Debugger been opened?"
-  },
-  "DEVTOOLS_STYLEEDITOR_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Style Editor been opened?"
-  },
-  "DEVTOOLS_SHADEREDITOR_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Shader Editor been opened?"
-  },
-  "DEVTOOLS_WEBAUDIOEDITOR_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Web Audio Editor been opened?"
-  },
-  "DEVTOOLS_CANVASDEBUGGER_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Canvas Debugger been opened?"
-  },
-  "DEVTOOLS_JSPROFILER_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's JS Profiler been opened?"
-  },
-  "DEVTOOLS_MEMORY_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Memory Tool been opened?"
-  },
-  "DEVTOOLS_NETMONITOR_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Network Monitor been opened?"
-  },
-  "DEVTOOLS_STORAGE_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the Storage Inspector been opened?"
-  },
-  "DEVTOOLS_PAINTFLASHING_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Paint Flashing been opened via the toolbox button?"
-  },
-  "DEVTOOLS_TILT_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Tilt been opened via the toolbox button?"
-  },
-  "DEVTOOLS_SCRATCHPAD_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Scratchpad been opened via the toolbox button?"
-  },
-  "DEVTOOLS_SCRATCHPAD_WINDOW_OPENED_BOOLEAN": {
+  "DEVTOOLS_TOOLBOX_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools toolbox has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_OPTIONS_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools options panel has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_WEBCONSOLE_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Web Console has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_BROWSERCONSOLE_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Browser Console has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_INSPECTOR_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Inspector has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_RULEVIEW_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Rule View has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_COMPUTEDVIEW_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Computed View has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_LAYOUTVIEW_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Layout View has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_FONTINSPECTOR_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Font Inspector has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_ANIMATIONINSPECTOR_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Animation Inspector has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_JSDEBUGGER_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Debugger has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_JSBROWSERDEBUGGER_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Browser Debugger has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_STYLEEDITOR_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Style Editor has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_SHADEREDITOR_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Shader Editor has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_WEBAUDIOEDITOR_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Web Audio Editor has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_CANVASDEBUGGER_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Canvas Debugger has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_JSPROFILER_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools JS Profiler has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_MEMORY_OPENED_COUNT": {
     "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
-    "expires_in_version": "50",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Scratchpad standalone window been opened?",
-    "bug_numbers": [1214352]
-  },
-  "DEVTOOLS_RESPONSIVE_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Responsive View been opened via the toolbox button?"
-  },
-  "DEVTOOLS_EYEDROPPER_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Eyedropper tool been opened?"
-  },
-  "DEVTOOLS_MENU_EYEDROPPER_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's eyedropper been opened via the devtools menu?"
-  },
-  "DEVTOOLS_PICKER_EYEDROPPER_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's eyedropper been opened via the color picker?"
-  },
-  "DEVTOOLS_DEVELOPERTOOLBAR_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the devtool's Developer Toolbar been opened via the toolbox button?"
-  },
-  "DEVTOOLS_ABOUTDEBUGGING_OPENED_BOOLEAN": {
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Memory Tool has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_NETMONITOR_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Network Monitor has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_STORAGE_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Storage Inspector has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_PAINTFLASHING_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Paint Flashing has been opened via the toolbox button.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_TILT_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Tilt has been opened via the toolbox button.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_SCRATCHPAD_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Scratchpad has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_SCRATCHPAD_WINDOW_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1214352, 1247985],
+    "description": "Number of times the DevTools Scratchpad standalone window has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_RESPONSIVE_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Responsive Design Mode tool has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_EYEDROPPER_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Eyedropper tool has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_MENU_EYEDROPPER_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Eyedropper has been opened via the DevTools menu.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_PICKER_EYEDROPPER_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Eyedropper has been opened via the color picker.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_DEVELOPERTOOLBAR_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools Developer Toolbar / GCLI has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_ABOUTDEBUGGING_OPENED_COUNT": {
     "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jan@mozilla.com"],
-    "expires_in_version": "55",
-    "kind": "boolean",
-    "description": "How many times has about:debugging been opened? (bug 1204601)"
-  },
-  "DEVTOOLS_WEBIDE_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the DevTools WebIDE been opened?"
-  },
-  "DEVTOOLS_WEBIDE_PROJECT_EDITOR_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has the DevTools WebIDE project editor been opened?"
-  },
-  "DEVTOOLS_WEBIDE_PROJECT_EDITOR_SAVE_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has a file been saved in the DevTools WebIDE project editor?"
-  },
-  "DEVTOOLS_WEBIDE_NEW_PROJECT_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has a new project been created in the DevTools WebIDE?"
-  },
-  "DEVTOOLS_WEBIDE_IMPORT_PROJECT_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has a project been imported into the DevTools WebIDE?"
-  },
-  "DEVTOOLS_CUSTOM_OPENED_BOOLEAN": {
-    "expires_in_version": "never",
-    "kind": "boolean",
-    "description": "How many times has a custom developer tool been opened via the toolbox button?"
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985, 1204601],
+    "description": "Number of times about:debugging has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_WEBIDE_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools WebIDE has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_WEBIDE_PROJECT_EDITOR_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times the DevTools WebIDE project editor has been opened.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_WEBIDE_PROJECT_EDITOR_SAVE_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times a file has been saved in the DevTools WebIDE project editor.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_WEBIDE_NEW_PROJECT_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times a new project has been created in the DevTools WebIDE.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_WEBIDE_IMPORT_PROJECT_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times a project has been imported into the DevTools WebIDE.",
+    "releaseChannelCollection": "opt-out"
+  },
+  "DEVTOOLS_CUSTOM_OPENED_COUNT": {
+    "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
+    "expires_in_version": "never",
+    "kind": "count",
+    "bug_numbers": [1247985],
+    "description": "Number of times a custom developer tool has been opened.",
+    "releaseChannelCollection": "opt-out"
   },
   "DEVTOOLS_TOOLBOX_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many times has the devtool's toolbox been opened?"
+    "description": "Number of users that have opened the DevTools toolbox."
   },
   "DEVTOOLS_OPTIONS_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many times has the devtool's Options panel been opened?"
+    "description": "Number of users that have opened the DevTools Options panel."
   },
   "DEVTOOLS_WEBCONSOLE_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Web Console?"
+    "description": "Number of users that have opened the DevTools Web Console."
   },
   "DEVTOOLS_BROWSERCONSOLE_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Browser Console?"
+    "description": "Number of users that have opened the DevTools Browser Console."
   },
   "DEVTOOLS_INSPECTOR_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Inspector?"
+    "description": "Number of users that have opened the DevTools Inspector."
   },
   "DEVTOOLS_RULEVIEW_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Rule View?"
+    "description": "Number of users that have opened the DevTools Rule View."
   },
   "DEVTOOLS_COMPUTEDVIEW_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Computed View?"
+    "description": "Number of users that have opened the DevTools Computed View."
   },
   "DEVTOOLS_LAYOUTVIEW_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Layout View?"
+    "description": "Number of users that have opened the DevTools Layout View."
   },
   "DEVTOOLS_FONTINSPECTOR_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Font Inspector?"
+    "description": "Number of users that have opened the DevTools Font Inspector."
   },
   "DEVTOOLS_ANIMATIONINSPECTOR_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Animation Inspector?"
+    "description": "Number of users that have opened the DevTools Animation Inspector."
   },
   "DEVTOOLS_JSDEBUGGER_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Debugger?"
+    "description": "Number of users that have opened the DevTools Debugger."
   },
   "DEVTOOLS_JSBROWSERDEBUGGER_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Browser Debugger?"
+    "description": "Number of users that have opened the DevTools Browser Debugger."
   },
   "DEVTOOLS_STYLEEDITOR_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Style Editor?"
+    "description": "Number of users that have opened the DevTools Style Editor."
   },
   "DEVTOOLS_SHADEREDITOR_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Shader Editor?"
+    "description": "Number of users that have opened the DevTools Shader Editor."
   },
   "DEVTOOLS_WEBAUDIOEDITOR_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Web Audio Editor?"
+    "description": "Number of users that have opened the DevTools Web Audio Editor."
   },
   "DEVTOOLS_CANVASDEBUGGER_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Canvas Debugger?"
+    "description": "Number of users that have opened the DevTools Canvas Debugger."
   },
   "DEVTOOLS_JSPROFILER_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's JS Profiler?"
+    "description": "Number of users that have opened the DevTools JS Profiler."
   },
   "DEVTOOLS_MEMORY_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Memory Tool?"
+    "description": "Number of users that have opened the DevTools Memory Tool."
   },
   "DEVTOOLS_NETMONITOR_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Network Monitor?"
+    "description": "Number of users that have opened the DevTools Network Monitor."
   },
   "DEVTOOLS_STORAGE_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Storage Inspector?"
+    "description": "Number of users that have opened the DevTools Storage Inspector."
   },
   "DEVTOOLS_PAINTFLASHING_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Paint Flashing been opened via the toolbox button?"
+    "description": "Number of users that have opened the DevTools Paint Flashing via the toolbox button."
   },
   "DEVTOOLS_TILT_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Tilt been opened via the toolbox button?"
+    "description": "Number of users that have opened the DevTools Tilt via the toolbox button."
   },
   "DEVTOOLS_SCRATCHPAD_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Scratchpad been opened via the toolbox button?"
+    "description": "Number of users that have opened the DevTools Scratchpad."
   },
   "DEVTOOLS_SCRATCHPAD_WINDOW_OPENED_PER_USER_FLAG": {
     "alert_emails": ["dev-developer-tools@lists.mozilla.org"],
     "expires_in_version": "50",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Scratchpad standalone window been opened?",
+    "description": "Number of users that have opened the DevTools Scratchpad standalone window.",
     "bug_numbers": [1214352]
   },
   "DEVTOOLS_RESPONSIVE_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Responsive View been opened via the toolbox button?"
+    "description": "Number of users that have opened the DevTools Responsive Design Mode."
   },
   "DEVTOOLS_EYEDROPPER_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Eyedropper via the toolbox button?"
+    "description": "Number of users that have opened the DevTools Eyedropper via the toolbox button."
   },
   "DEVTOOLS_MENU_EYEDROPPER_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Eyedropper via the devtools menu?"
+    "description": "Number of users that have opened the DevTools Eyedropper via the devtools menu."
   },
   "DEVTOOLS_PICKER_EYEDROPPER_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Eyedropper via the color picker?"
+    "description": "Number of users that have opened the DevTools Eyedropper via the color picker."
   },
   "DEVTOOLS_DEVELOPERTOOLBAR_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the devtool's Developer Toolbar been opened via the toolbox button?"
+    "description": "Number of users that have opened the DevTools Developer Toolbar been opened via the toolbox button."
   },
   "DEVTOOLS_ABOUTDEBUGGING_OPENED_PER_USER_FLAG": {
     "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jan@mozilla.com"],
     "expires_in_version": "55",
     "kind": "flag",
-    "description": "How many users have opened about:debugging? (bug 1204601)"
+    "description": "Number of users that have opened about:debugging. (bug 1204601)"
   },
   "DEVTOOLS_WEBIDE_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the DevTools WebIDE?"
+    "description": "Number of users that have opened the DevTools WebIDE."
   },
   "DEVTOOLS_WEBIDE_PROJECT_EDITOR_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened the DevTools WebIDE project editor?"
+    "description": "Number of users that have opened the DevTools WebIDE project editor."
   },
   "DEVTOOLS_WEBIDE_PROJECT_EDITOR_SAVE_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have saved a file in the DevTools WebIDE project editor?"
+    "description": "Number of users that have saved a file in the DevTools WebIDE project editor."
   },
   "DEVTOOLS_WEBIDE_NEW_PROJECT_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have created a new project in the DevTools WebIDE?"
+    "description": "Number of users that have created a new project in the DevTools WebIDE."
   },
   "DEVTOOLS_WEBIDE_IMPORT_PROJECT_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have imported a project into the DevTools WebIDE?"
+    "description": "Number of users that have imported a project into the DevTools WebIDE."
   },
   "DEVTOOLS_CUSTOM_OPENED_PER_USER_FLAG": {
     "expires_in_version": "never",
     "kind": "flag",
-    "description": "How many users have opened a custom developer tool via the toolbox button?"
+    "description": "Number of users that have opened a custom developer tool via the toolbox button."
   },
   "DEVTOOLS_TOOLBOX_TIME_ACTIVE_SECONDS": {
     "expires_in_version": "never",
     "kind": "exponential",
     "high": 10000000,
     "n_buckets": 100,
     "description": "How long has the toolbox been active (seconds)"
   },