mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-07 03:38:51 +02:00
The surveyVersion field is included in telemetry and is required by the ingestion schema. Because that field has been omitted for Nimbus legacyHeartbeat experiments, no heartbeat pings have been submitted. We now hardcode the surveyVersion for all Heartbeats coming from Nimbus. A test has been added to ensure that Nimbus-triggered Heartbeats submit a payload that matches the Telemetry schema. Differential Revision: https://phabricator.services.mozilla.com/D205239
49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* 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/. */
|
|
|
|
const lazy = {};
|
|
ChromeUtils.defineESModuleGetters(lazy, {
|
|
ExperimentAPI: "resource://nimbus/ExperimentAPI.sys.mjs",
|
|
NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs",
|
|
});
|
|
|
|
const FEATURE_ID = "legacyHeartbeat";
|
|
|
|
/**
|
|
* A bridge between Nimbus and Normandy's Heartbeat implementation.
|
|
*/
|
|
export const LegacyHeartbeat = {
|
|
getHeartbeatRecipe() {
|
|
const survey = lazy.NimbusFeatures.legacyHeartbeat.getVariable("survey");
|
|
|
|
if (typeof survey == "undefined") {
|
|
return null;
|
|
}
|
|
|
|
let isRollout = false;
|
|
let enrollmentData = lazy.ExperimentAPI.getExperimentMetaData({
|
|
featureId: FEATURE_ID,
|
|
});
|
|
|
|
if (!enrollmentData) {
|
|
enrollmentData = lazy.ExperimentAPI.getRolloutMetaData({
|
|
featureId: FEATURE_ID,
|
|
});
|
|
isRollout = true;
|
|
}
|
|
|
|
return {
|
|
id: `nimbus:${enrollmentData.slug}`,
|
|
name: `Nimbus legacyHeartbeat ${isRollout ? "rollout" : "experiment"} ${
|
|
enrollmentData.slug
|
|
}`,
|
|
action: "show-heartbeat",
|
|
arguments: survey,
|
|
capabilities: ["action.show-heartbeat"],
|
|
filter_expression: "true",
|
|
use_only_baseline_capabilities: true,
|
|
revision_id: "1", // Required for the Heartbeat telemetry ping.
|
|
};
|
|
},
|
|
};
|