Commit 5096499a authored by Michael Cooper's avatar Michael Cooper
Browse files

Bug 1594035 - Don't send `null` enrollmentIds for Normandy telemetry r=rhelmer

Differential Revision: https://phabricator.services.mozilla.com/D54834

--HG--
extra : moz-landing-system : lando
parent a8ed0f48
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -51,7 +51,12 @@ class AddonRollbackAction extends BaseAction {
              "unenrollFailed",
              "unenrollFailed",
              "addon_rollback",
              "addon_rollback",
              rolloutSlug,
              rolloutSlug,
              { reason: "uninstall-failed", enrollmentId: rollout.enrollmentId }
              {
                reason: "uninstall-failed",
                enrollmentId:
                  rollout.enrollmentId ||
                  TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
              }
            );
            );
            throw err;
            throw err;
          }
          }
@@ -65,7 +70,8 @@ class AddonRollbackAction extends BaseAction {


        TelemetryEvents.sendEvent("unenroll", "addon_rollback", rolloutSlug, {
        TelemetryEvents.sendEvent("unenroll", "addon_rollback", rolloutSlug, {
          reason: "rollback",
          reason: "rollback",
          enrollmentId: rollout.enrollmentId,
          enrollmentId:
            rollout.enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
        });
        });
        TelemetryEnvironment.setExperimentInactive(rolloutSlug);
        TelemetryEnvironment.setExperimentInactive(rolloutSlug);
        break;
        break;
+13 −5
Original line number Original line Diff line number Diff line
@@ -118,7 +118,9 @@ class AddonRolloutAction extends BaseAction {
      const conflictError = createError("conflict", {
      const conflictError = createError("conflict", {
        addonId: conflictingRollout.addonId,
        addonId: conflictingRollout.addonId,
        conflictingSlug: conflictingRollout.slug,
        conflictingSlug: conflictingRollout.slug,
        enrollmentId: conflictingRollout.enrollmentId,
        enrollmentId:
          conflictingRollout.enrollmentId ||
          TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
      });
      });
      this.reportError(conflictError, "enrollFailed");
      this.reportError(conflictError, "enrollFailed");
      throw conflictError;
      throw conflictError;
@@ -129,7 +131,10 @@ class AddonRolloutAction extends BaseAction {


      if (existingRollout && existingRollout.addonId !== install.addon.id) {
      if (existingRollout && existingRollout.addonId !== install.addon.id) {
        installDeferred.reject(
        installDeferred.reject(
          createError("addon-id-changed", { enrollmentId })
          createError("addon-id-changed", {
            enrollmentId:
              enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
          })
        );
        );
        return false; // cancel the upgrade, the add-on ID has changed
        return false; // cancel the upgrade, the add-on ID has changed
      }
      }
@@ -139,7 +144,10 @@ class AddonRolloutAction extends BaseAction {
        Services.vc.compare(existingAddon.version, install.addon.version) > 0
        Services.vc.compare(existingAddon.version, install.addon.version) > 0
      ) {
      ) {
        installDeferred.reject(
        installDeferred.reject(
          createError("upgrade-required", { enrollmentId })
          createError("upgrade-required", {
            enrollmentId:
              enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
          })
        );
        );
        return false; // cancel the installation, must be an upgrade
        return false; // cancel the installation, must be an upgrade
      }
      }
@@ -168,7 +176,7 @@ class AddonRolloutAction extends BaseAction {
          recipeId: recipe.id,
          recipeId: recipe.id,
          state: AddonRollouts.STATE_ACTIVE,
          state: AddonRollouts.STATE_ACTIVE,
          slug,
          slug,
          enrollmentId,
          enrollmentId: enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
          ...details,
          ...details,
        });
        });
      }
      }
@@ -211,7 +219,7 @@ class AddonRolloutAction extends BaseAction {
    TelemetryEvents.sendEvent(eventName, "addon_rollout", slug, {
    TelemetryEvents.sendEvent(eventName, "addon_rollout", slug, {
      addonId: installedId,
      addonId: installedId,
      addonVersion: installedVersion,
      addonVersion: installedVersion,
      enrollmentId,
      enrollmentId: enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
    });
    });
  }
  }


+17 −9
Original line number Original line Diff line number Diff line
@@ -353,7 +353,7 @@ class BranchedAddonStudyAction extends BaseStudyAction {
        addonId: AddonStudies.NO_ADDON_MARKER,
        addonId: AddonStudies.NO_ADDON_MARKER,
        addonVersion: AddonStudies.NO_ADDON_MARKER,
        addonVersion: AddonStudies.NO_ADDON_MARKER,
        branch: branch.slug,
        branch: branch.slug,
        enrollmentId,
        enrollmentId: enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
      });
      });
    } else {
    } else {
      const extensionDetails = await NormandyApi.fetchExtensionDetails(
      const extensionDetails = await NormandyApi.fetchExtensionDetails(
@@ -435,13 +435,13 @@ class BranchedAddonStudyAction extends BaseStudyAction {
        addonId: installedId,
        addonId: installedId,
        addonVersion: installedVersion,
        addonVersion: installedVersion,
        branch: branch.slug,
        branch: branch.slug,
        enrollmentId,
        enrollmentId: enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
      });
      });
    }
    }


    TelemetryEnvironment.setExperimentActive(slug, branch.slug, {
    TelemetryEnvironment.setExperimentActive(slug, branch.slug, {
      type: "normandy-addonstudy",
      type: "normandy-addonstudy",
      enrollmentId,
      enrollmentId: enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
    });
    });
  }
  }


@@ -474,7 +474,8 @@ class BranchedAddonStudyAction extends BaseStudyAction {
      error = new AddonStudyUpdateError(slug, {
      error = new AddonStudyUpdateError(slug, {
        branch: branch.slug,
        branch: branch.slug,
        reason: "addon-id-mismatch",
        reason: "addon-id-mismatch",
        enrollmentId: study.enrollmentId,
        enrollmentId:
          study.enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
      });
      });
    }
    }


@@ -486,7 +487,8 @@ class BranchedAddonStudyAction extends BaseStudyAction {
      error = new AddonStudyUpdateError(slug, {
      error = new AddonStudyUpdateError(slug, {
        branch: branch.slug,
        branch: branch.slug,
        reason: "no-downgrade",
        reason: "no-downgrade",
        enrollmentId: study.enrollmentId,
        enrollmentId:
          study.enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
      });
      });
    } else if (versionCompare === 0) {
    } else if (versionCompare === 0) {
      return; // Unchanged, do nothing
      return; // Unchanged, do nothing
@@ -507,7 +509,8 @@ class BranchedAddonStudyAction extends BaseStudyAction {
          new AddonStudyUpdateError(slug, {
          new AddonStudyUpdateError(slug, {
            branch: branch.slug,
            branch: branch.slug,
            reason: "addon-does-not-exist",
            reason: "addon-does-not-exist",
            enrollmentId: study.enrollmentId,
            enrollmentId:
              study.enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
          })
          })
        );
        );
        return false; // cancel the installation, must upgrade an existing add-on
        return false; // cancel the installation, must upgrade an existing add-on
@@ -516,7 +519,8 @@ class BranchedAddonStudyAction extends BaseStudyAction {
          new AddonStudyUpdateError(slug, {
          new AddonStudyUpdateError(slug, {
            branch: branch.slug,
            branch: branch.slug,
            reason: "metadata-mismatch",
            reason: "metadata-mismatch",
            enrollmentId: study.enrollmentId,
            enrollmentId:
              study.enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
          })
          })
        );
        );
        return false; // cancel the installation, server metadata do not match downloaded add-on
        return false; // cancel the installation, server metadata do not match downloaded add-on
@@ -556,7 +560,10 @@ class BranchedAddonStudyAction extends BaseStudyAction {
      onFailedInstall,
      onFailedInstall,
      errorClass: AddonStudyUpdateError,
      errorClass: AddonStudyUpdateError,
      reportError: this.reportUpdateError,
      reportError: this.reportUpdateError,
      errorExtra: { enrollmentId: study.enrollmentId },
      errorExtra: {
        enrollmentId:
          study.enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
      },
    });
    });


    // All done, report success to Telemetry
    // All done, report success to Telemetry
@@ -564,7 +571,8 @@ class BranchedAddonStudyAction extends BaseStudyAction {
      addonId: installedId,
      addonId: installedId,
      addonVersion: installedVersion,
      addonVersion: installedVersion,
      branch: branch.slug,
      branch: branch.slug,
      enrollmentId: study.enrollmentId,
      enrollmentId:
        study.enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
    });
    });
  }
  }


+10 −2
Original line number Original line Diff line number Diff line
@@ -61,7 +61,11 @@ class PreferenceRollbackAction extends BaseAction {
          "unenroll",
          "unenroll",
          "preference_rollback",
          "preference_rollback",
          rolloutSlug,
          rolloutSlug,
          { reason: "rollback", enrollmentId: rollout.enrollmentId }
          {
            reason: "rollback",
            enrollmentId:
              rollout.enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
          }
        );
        );
        TelemetryEnvironment.setExperimentInactive(rolloutSlug);
        TelemetryEnvironment.setExperimentInactive(rolloutSlug);
        break;
        break;
@@ -76,7 +80,11 @@ class PreferenceRollbackAction extends BaseAction {
          "unenrollFailed",
          "unenrollFailed",
          "preference_rollback",
          "preference_rollback",
          rolloutSlug,
          rolloutSlug,
          { reason: "graduated", enrollmentId: rollout.enrollmentId }
          {
            reason: "graduated",
            enrollmentId:
              rollout.enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
          }
        );
        );
        throw new Error(
        throw new Error(
          `Cannot rollback already graduated rollout ${rolloutSlug}`
          `Cannot rollback already graduated rollout ${rolloutSlug}`
+5 −3
Original line number Original line Diff line number Diff line
@@ -81,7 +81,9 @@ class PreferenceRolloutAction extends BaseAction {
        await PreferenceRollouts.update(newRollout);
        await PreferenceRollouts.update(newRollout);
        TelemetryEvents.sendEvent("update", "preference_rollout", args.slug, {
        TelemetryEvents.sendEvent("update", "preference_rollout", args.slug, {
          previousState: existingRollout.state,
          previousState: existingRollout.state,
          enrollmentId: existingRollout.enrollmentId,
          enrollmentId:
            existingRollout.enrollmentId ||
            TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
        });
        });


        switch (existingRollout.state) {
        switch (existingRollout.state) {
@@ -143,10 +145,10 @@ class PreferenceRolloutAction extends BaseAction {
      this.log.debug(`Enrolled in preference rollout ${args.slug}`);
      this.log.debug(`Enrolled in preference rollout ${args.slug}`);
      TelemetryEnvironment.setExperimentActive(args.slug, newRollout.state, {
      TelemetryEnvironment.setExperimentActive(args.slug, newRollout.state, {
        type: "normandy-prefrollout",
        type: "normandy-prefrollout",
        enrollmentId,
        enrollmentId: enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
      });
      });
      TelemetryEvents.sendEvent("enroll", "preference_rollout", args.slug, {
      TelemetryEvents.sendEvent("enroll", "preference_rollout", args.slug, {
        enrollmentId,
        enrollmentId: enrollmentId || TelemetryEvents.NO_ENROLLMENT_ID_MARKER,
      });
      });
    }
    }
  }
  }
Loading