Bug 1953106 - migrate to Glean the WEBEXT_*_MS_BY_ADDONID histograms and use GIFFT instead of TelemetryStopwatch to record to the WEBEXT_*_MS histograms, r=zombie,chutten.

Differential Revision: https://phabricator.services.mozilla.com/D241182
This commit is contained in:
Florian Quèze
2025-03-26 15:24:18 +00:00
parent fc9c76fce2
commit 9e0cf1027e
4 changed files with 360 additions and 74 deletions

View File

@@ -10,16 +10,9 @@ const { DefaultWeakMap } = ExtensionUtils;
// Map of the base histogram ids for the metrics recorded for the extensions.
const HISTOGRAMS_IDS = {
backgroundPageLoad: "WEBEXT_BACKGROUND_PAGE_LOAD_MS",
browserActionPopupOpen: "WEBEXT_BROWSERACTION_POPUP_OPEN_MS",
browserActionPreloadResult: "WEBEXT_BROWSERACTION_POPUP_PRELOAD_RESULT_COUNT",
contentScriptInjection: "WEBEXT_CONTENT_SCRIPT_INJECTION_MS",
eventPageRunningTime: "WEBEXT_EVENTPAGE_RUNNING_TIME_MS",
eventPageIdleResult: "WEBEXT_EVENTPAGE_IDLE_RESULT_COUNT",
extensionStartup: "WEBEXT_EXTENSION_STARTUP_MS",
pageActionPopupOpen: "WEBEXT_PAGEACTION_POPUP_OPEN_MS",
storageLocalGetIdb: "WEBEXT_STORAGE_LOCAL_IDB_GET_MS",
storageLocalSetIdb: "WEBEXT_STORAGE_LOCAL_IDB_SET_MS",
};
const GLEAN_METRICS_TYPES = {
@@ -105,12 +98,10 @@ class ExtensionTelemetryMetric {
// Stopwatch methods.
stopwatchStart(extension, obj = extension) {
this._wrappedStopwatchMethod("start", this.metric, extension, obj);
this._wrappedTimingDistributionMethod("start", this.metric, extension, obj);
}
stopwatchFinish(extension, obj = extension) {
this._wrappedStopwatchMethod("finish", this.metric, extension, obj);
this._wrappedTimingDistributionMethod(
"stopAndAccumulate",
this.metric,
@@ -120,7 +111,6 @@ class ExtensionTelemetryMetric {
}
stopwatchCancel(extension, obj = extension) {
this._wrappedStopwatchMethod("cancel", this.metric, extension, obj);
this._wrappedTimingDistributionMethod(
"cancel",
this.metric,
@@ -167,10 +157,18 @@ class ExtensionTelemetryMetric {
return;
}
let extensionId = getTrimmedString(extension.id);
// Capitalization on 'ByAddonid' is a result of glean naming rules.
let metricByAddonid = metric + "ByAddonid";
switch (method) {
case "start": {
const timerId = Glean.extensionsTiming[metric].start();
this.gleanTimerIdsMap.get(extension).set(obj, timerId);
const labeledTimerId =
Glean.extensionsTiming[metricByAddonid][extensionId].start();
this.gleanTimerIdsMap
.get(extension)
.set(obj, { timerId, labeledTimerId });
break;
}
case "stopAndAccumulate": // Intentional fall-through.
@@ -184,9 +182,14 @@ class ExtensionTelemetryMetric {
);
return;
}
const timerId = this.gleanTimerIdsMap.get(extension).get(obj);
const { timerId, labeledTimerId } = this.gleanTimerIdsMap
.get(extension)
.get(obj);
this.gleanTimerIdsMap.get(extension).delete(obj);
Glean.extensionsTiming[metric][method](timerId);
Glean.extensionsTiming[metricByAddonid][extensionId][method](
labeledTimerId
);
break;
}
default:
@@ -196,42 +199,6 @@ class ExtensionTelemetryMetric {
}
}
/**
* Wraps a call to a TelemetryStopwatch method for a given metric and extension.
*
* @param {string} method
* The stopwatch method to call ("start", "finish" or "cancel").
* @param {string} metric
* The stopwatch metric to record (used to retrieve the base histogram id from the HISTOGRAMS_IDS object).
* @param {Extension | ExtensionChild} extension
* The extension to record the telemetry for.
* @param {any | undefined} [obj = extension]
* An optional telemetry stopwatch object (which defaults to the extension parameter when missing).
*/
_wrappedStopwatchMethod(method, metric, extension, obj = extension) {
if (!extension) {
Cu.reportError(`Mandatory extension parameter is undefined`);
return;
}
const baseId = HISTOGRAMS_IDS[metric];
if (!baseId) {
Cu.reportError(`Unknown metric ${metric}`);
return;
}
// Record metric in the general histogram.
TelemetryStopwatch[method](baseId, obj);
// Record metric in the histogram keyed by addon id.
let extensionId = getTrimmedString(extension.id);
TelemetryStopwatch[`${method}Keyed`](
`${baseId}_BY_ADDONID`,
extensionId,
obj
);
}
/**
* Record a telemetry category and/or value for a given metric.
*
@@ -257,24 +224,8 @@ class ExtensionTelemetryMetric {
return;
}
const histogram = Services.telemetry.getHistogramById(baseId);
if (typeof category === "string") {
histogram.add(category, value);
} else {
histogram.add(value);
}
const keyedHistogram = Services.telemetry.getKeyedHistogramById(
`${baseId}_BY_ADDONID`
);
const extensionId = getTrimmedString(extension.id);
if (typeof category === "string") {
keyedHistogram.add(extensionId, category, value);
} else {
keyedHistogram.add(extensionId, value);
}
switch (GLEAN_METRICS_TYPES[metric]) {
case "custom_distribution": {
if (typeof category === "string") {
@@ -287,6 +238,10 @@ class ExtensionTelemetryMetric {
// map once we may introduce new histograms that are not part of the
// extensionsTiming Glean metrics category.
Glean.extensionsTiming[metric].accumulateSingleSample(value);
// Capitalization on 'ByAddonid' is a result of glean naming rules.
Glean.extensionsTiming[metric + "ByAddonid"][
extensionId
].accumulateSingleSample(value);
break;
}
case "labeled_counter": {
@@ -297,6 +252,12 @@ class ExtensionTelemetryMetric {
return;
}
Glean.extensionsCounters[metric][category].add(value ?? 1);
// TODO: migrate this to Glean once bug 1657470 is fixed.
Services.telemetry
.getKeyedHistogramById(`${baseId}_BY_ADDONID`)
.add(extensionId, category, value);
break;
}
default:
@@ -314,7 +275,7 @@ const metricsCache = new Map();
/**
* This proxy object provides the telemetry helpers for the currently supported metrics (the ones listed in
* HISTOGRAMS_IDS), the telemetry helpers for a particular metric are lazily created
* GLEAN_METRICS_TYPES), the telemetry helpers for a particular metric are lazily created
* when the related property is being accessed on this object for the first time, e.g.:
*
* ExtensionTelemetry.extensionStartup.stopwatchStart(extension);
@@ -324,10 +285,7 @@ const metricsCache = new Map();
// @ts-ignore no easy way in TS to say Proxy is a different type from target.
export var ExtensionTelemetry = new Proxy(metricsCache, {
get(target, prop) {
// NOTE: if we would be start adding glean probes that do not have a unified
// telemetry histogram counterpart, we would need to change this check
// accordingly.
if (!(prop in HISTOGRAMS_IDS)) {
if (!(prop in GLEAN_METRICS_TYPES)) {
throw new Error(`Unknown metric ${String(prop)}`);
}

View File

@@ -437,6 +437,9 @@ extensions.counters:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: h#WEBEXT_BROWSERACTION_POPUP_PRELOAD_RESULT_COUNT
no_lint:
- GIFFT_NON_PING_LIFETIME
event_page_idle_result:
type: labeled_counter
@@ -467,6 +470,9 @@ extensions.counters:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: h#WEBEXT_EVENTPAGE_IDLE_RESULT_COUNT
no_lint:
- GIFFT_NON_PING_LIFETIME
extensions.timing:
@@ -487,6 +493,47 @@ extensions.timing:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: WEBEXT_BACKGROUND_PAGE_LOAD_MS
background_page_load_by_addonid:
type: labeled_timing_distribution
description: >
The amount of time it takes to load a WebExtensions background page, from
when the build function is called to when the page has finished processing
the onload event, keyed by addon id.
This metric was generated to correspond to the Legacy Telemetry
exponential histogram WEBEXT_BACKGROUND_PAGE_LOAD_MS_BY_ADDONID.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
notification_emails:
- addons-dev-internal@mozilla.com
- lgreco@mozilla.com
expires: 140
telemetry_mirror: WEBEXT_BACKGROUND_PAGE_LOAD_MS_BY_ADDONID
browser_action_popup_open:
type: timing_distribution
@@ -512,6 +559,46 @@ extensions.timing:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: WEBEXT_BROWSERACTION_POPUP_OPEN_MS
browser_action_popup_open_by_addonid:
type: labeled_timing_distribution
description: >
The amount of time it takes for a BrowserAction popup to open, keyed by
addon id.
This metric was generated to correspond to the Legacy Telemetry
exponential histogram WEBEXT_BROWSERACTION_POPUP_OPEN_MS_BY_ADDONID.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
notification_emails:
- addons-dev-internal@mozilla.com
- lgreco@mozilla.com
expires: 140
telemetry_mirror: WEBEXT_BROWSERACTION_POPUP_OPEN_MS_BY_ADDONID
content_script_injection:
type: timing_distribution
@@ -529,6 +616,46 @@ extensions.timing:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: WEBEXT_CONTENT_SCRIPT_INJECTION_MS
content_script_injection_by_addonid:
type: labeled_timing_distribution
description: >
The amount of time it takes for content scripts from a WebExtension to be
injected into a window, keyed by addon id.
This metric was generated to correspond to the Legacy Telemetry
exponential histogram WEBEXT_CONTENT_SCRIPT_INJECTION_MS_BY_ADDONID.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
notification_emails:
- addons-dev-internal@mozilla.com
- lgreco@mozilla.com
expires: 140
telemetry_mirror: WEBEXT_CONTENT_SCRIPT_INJECTION_MS_BY_ADDONID
event_page_running_time:
type: custom_distribution
@@ -550,6 +677,32 @@ extensions.timing:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: WEBEXT_EVENTPAGE_RUNNING_TIME_MS
event_page_running_time_by_addonid:
type: labeled_timing_distribution
description: >
The amount of time (keyed by addon id) that an event page has been running
before being suspended, or the entire addon shutdown.
This metric was generated to correspond to the Legacy Telemetry
exponential histogram WEBEXT_EVENTPAGE_RUNNING_TIME_MS_BY_ADDONID.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1787940
- https://bugzilla.mozilla.org/show_bug.cgi?id=1817103
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1787940
- https://bugzilla.mozilla.org/show_bug.cgi?id=1817103
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
notification_emails:
- addons-dev-internal@mozilla.com
- lgreco@mozilla.com
expires: 140
telemetry_mirror: WEBEXT_EVENTPAGE_RUNNING_TIME_MS_BY_ADDONID
extension_startup:
type: timing_distribution
@@ -568,6 +721,47 @@ extensions.timing:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: WEBEXT_EXTENSION_STARTUP_MS
extension_startup_by_addonid:
type: labeled_timing_distribution
description: >
The amount of time it takes for a WebExtension to start up, from when the
startup function is called to when the startup promise resolves, keyed by
addon id.
This metric was generated to correspond to the Legacy Telemetry
exponential histogram WEBEXT_EXTENSION_STARTUP_MS_BY_ADDONID.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
notification_emails:
- addons-dev-internal@mozilla.com
- lgreco@mozilla.com
expires: 140
telemetry_mirror: WEBEXT_EXTENSION_STARTUP_MS_BY_ADDONID
page_action_popup_open:
type: timing_distribution
@@ -593,6 +787,46 @@ extensions.timing:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: WEBEXT_PAGEACTION_POPUP_OPEN_MS
page_action_popup_open_by_addonid:
type: labeled_timing_distribution
description: >
The amount of time it takes for a PageAction popup to open, keyed by addon
id.
This metric was generated to correspond to the Legacy Telemetry
exponential histogram WEBEXT_PAGEACTION_POPUP_OPEN_MS_BY_ADDONID.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
notification_emails:
- addons-dev-internal@mozilla.com
- lgreco@mozilla.com
expires: 140
telemetry_mirror: WEBEXT_PAGEACTION_POPUP_OPEN_MS_BY_ADDONID
storage_local_get_idb:
type: timing_distribution
@@ -618,6 +852,46 @@ extensions.timing:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: WEBEXT_STORAGE_LOCAL_IDB_GET_MS
storage_local_get_idb_by_addonid:
type: labeled_timing_distribution
description: >
The amount of time it takes to perform a get via storage.local using the
IndexedDB backend, keyed by addon id.
This metric was generated to correspond to the Legacy Telemetry
exponential histogram WEBEXT_STORAGE_LOCAL_IDB_GET_MS_BY_ADDONID.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
notification_emails:
- addons-dev-internal@mozilla.com
- lgreco@mozilla.com
expires: 140
telemetry_mirror: WEBEXT_STORAGE_LOCAL_IDB_GET_MS_BY_ADDONID
storage_local_set_idb:
type: timing_distribution
@@ -643,3 +917,43 @@ extensions.timing:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1820158#c8
data_sensitivity:
- technical
telemetry_mirror: WEBEXT_STORAGE_LOCAL_IDB_SET_MS
storage_local_set_idb_by_addonid:
type: labeled_timing_distribution
description: >
The amount of time it takes to perform a set via storage.local using the
IndexedDB backend, keyed by addon id.
This metric was generated to correspond to the Legacy Telemetry
exponential histogram WEBEXT_STORAGE_LOCAL_IDB_SET_MS_BY_ADDONID.
time_unit: millisecond
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1483002
- https://bugzilla.mozilla.org/show_bug.cgi?id=1513556
- https://bugzilla.mozilla.org/show_bug.cgi?id=1578225
- https://bugzilla.mozilla.org/show_bug.cgi?id=1623315
- https://bugzilla.mozilla.org/show_bug.cgi?id=1666980
- https://bugzilla.mozilla.org/show_bug.cgi?id=1706839
- https://bugzilla.mozilla.org/show_bug.cgi?id=1745271
- https://bugzilla.mozilla.org/show_bug.cgi?id=1777402
- https://bugzilla.mozilla.org/show_bug.cgi?id=1811155
- https://bugzilla.mozilla.org/show_bug.cgi?id=1861303
- https://bugzilla.mozilla.org/show_bug.cgi?id=1912170
notification_emails:
- addons-dev-internal@mozilla.com
- lgreco@mozilla.com
expires: 140
telemetry_mirror: WEBEXT_STORAGE_LOCAL_IDB_SET_MS_BY_ADDONID

View File

@@ -1065,12 +1065,17 @@ var IdleManager = class IdleManager {
}
if (Cu.now() - start > backgroundIdleTimeout) {
let value = Math.round((Cu.now() - start) / backgroundIdleTimeout);
// GIFFT doesn't support mirroring to a categorical histogram with
// values that are not 1, so do the histogramAdd call as many times
// as needed. It will be once most of the time, sometimes twice.
while (value--) {
ExtensionTelemetry.eventPageIdleResult.histogramAdd({
extension: this.extension,
category: reason,
value: Math.round((Cu.now() - start) / backgroundIdleTimeout),
});
}
}
});
}

View File

@@ -30,6 +30,7 @@ interface GleanImpl {
migrateResult: GleanEvent;
storageLocalError: GleanEvent;
syncUsageQuotas: GleanEvent;
migrateResultCount: Record<string, GleanCounter>;
}
extensionsCounters: {
@@ -39,12 +40,20 @@ interface GleanImpl {
extensionsTiming: {
backgroundPageLoad: GleanTimingDistribution;
backgroundPageLoadByAddonid: Record<string, GleanTimingDistribution>;
browserActionPopupOpen: GleanTimingDistribution;
browserActionPopupOpenByAddonid: Record<string, GleanTimingDistribution>;
contentScriptInjection: GleanTimingDistribution;
contentScriptInjectionByAddonid: Record<string, GleanTimingDistribution>;
eventPageRunningTime: GleanCustomDistribution;
eventPageRunningTimeByAddonid: Record<string, GleanTimingDistribution>;
extensionStartup: GleanTimingDistribution;
extensionStartupByAddonid: Record<string, GleanTimingDistribution>;
pageActionPopupOpen: GleanTimingDistribution;
pageActionPopupOpenByAddonid: Record<string, GleanTimingDistribution>;
storageLocalGetIdb: GleanTimingDistribution;
storageLocalGetIdbByAddonid: Record<string, GleanTimingDistribution>;
storageLocalSetIdb: GleanTimingDistribution;
storageLocalSetIdbByAddonid: Record<string, GleanTimingDistribution>;
}
}