From fc1c1b402b96cbb07be8a8136d735608a89fccf4 Mon Sep 17 00:00:00 2001 From: Lorenzo Alberto Maria Ambrosi Date: Wed, 3 Apr 2019 12:18:15 +0200 Subject: [PATCH 1/2] Add sample property to Mixpanel events Change-type: patch Signed-off-by: Lorenzo Alberto Maria Ambrosi --- lib/gui/app/modules/analytics.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/gui/app/modules/analytics.js b/lib/gui/app/modules/analytics.js index 116a0f9d..ae58cc51 100644 --- a/lib/gui/app/modules/analytics.js +++ b/lib/gui/app/modules/analytics.js @@ -31,7 +31,7 @@ const mixpanelToken = settings.get('analyticsMixpanelToken') || const configUrl = settings.get('configUrl') || 'http://balena.io/etcher/static/config.json' -const DEFAULT_PROBABILITY = 1 +const DEFAULT_PROBABILITY = 0.1 const services = { sentry: sentryToken, @@ -48,10 +48,16 @@ resinCorvus.install({ } }) +let mixpanelSample = DEFAULT_PROBABILITY + getConfig(configUrl) .then((config) => { + const mixpanel = _.get(config, [ 'analytics', 'mixpanel' ], {}) + const probability = mixpanel.probability || DEFAULT_PROBABILITY + mixpanelSample = probability + const validatedConfig = isClientEligible(probability) ? validateMixpanelConfig(mixpanel) : null resinCorvus.setConfigs({ - mixpanel: getMixpanelConfig(config) + mixpanel: validatedConfig }) }) @@ -70,14 +76,8 @@ function getConfig(url) { * @param {Object} - config */ // eslint-disable-next-line -function getMixpanelConfig(config) { - const analytics = config.analytics || {} - const mixpanel = analytics.mixpanel || {} - const probability = mixpanel.probability || DEFAULT_PROBABILITY - if (Math.random() > probability) { - return null - } - return validateMixpanelConfig(mixpanel) +function isClientEligible(probability) { + return Math.random() > probability } /** @@ -128,7 +128,12 @@ exports.logDebug = resinCorvus.logDebug * image: '/dev/disk2' * }); */ -exports.logEvent = resinCorvus.logEvent +exports.logEvent = (message, data) => { + const sessionData = { + mixpanelSample + } + resinCorvus.logEvent(message, { ...data, sessionData }) +} /** * @summary Log an exception From 24a83260ca3494814ad880de565996af2d938417 Mon Sep 17 00:00:00 2001 From: Lorenzo Alberto Maria Ambrosi Date: Fri, 5 Apr 2019 17:02:12 +0200 Subject: [PATCH 2/2] Update building scripts to latest master Change-type: patch Signed-off-by: Lorenzo Alberto Maria Ambrosi --- lib/gui/app/modules/analytics.js | 33 ++++++++++++++++++++------------ scripts/resin | 2 +- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/lib/gui/app/modules/analytics.js b/lib/gui/app/modules/analytics.js index ae58cc51..340fec55 100644 --- a/lib/gui/app/modules/analytics.js +++ b/lib/gui/app/modules/analytics.js @@ -50,16 +50,28 @@ resinCorvus.install({ let mixpanelSample = DEFAULT_PROBABILITY -getConfig(configUrl) - .then((config) => { +/** + * @summary Init analytics configurations + * @example initConfig() + */ +const initConfig = async () => { + let validatedConfig = null + try { + const config = await getConfig(configUrl) const mixpanel = _.get(config, [ 'analytics', 'mixpanel' ], {}) - const probability = mixpanel.probability || DEFAULT_PROBABILITY - mixpanelSample = probability - const validatedConfig = isClientEligible(probability) ? validateMixpanelConfig(mixpanel) : null - resinCorvus.setConfigs({ - mixpanel: validatedConfig - }) + mixpanelSample = mixpanel.probability || DEFAULT_PROBABILITY + if (isClientEligible(mixpanelSample)) { + validatedConfig = validateMixpanelConfig(mixpanel) + } + } catch (err) { + resinCorvus.logException(err) + } + resinCorvus.setConfigs({ + mixpanel: validatedConfig }) +} + +initConfig() /** * @summary Get etcher configs stored online @@ -129,10 +141,7 @@ exports.logDebug = resinCorvus.logDebug * }); */ exports.logEvent = (message, data) => { - const sessionData = { - mixpanelSample - } - resinCorvus.logEvent(message, { ...data, sessionData }) + resinCorvus.logEvent(message, { ...data, sample: mixpanelSample }) } /** diff --git a/scripts/resin b/scripts/resin index 481cacb7..c80a0d90 160000 --- a/scripts/resin +++ b/scripts/resin @@ -1 +1 @@ -Subproject commit 481cacb7f1533985507c84f28940cada0fb109e5 +Subproject commit c80a0d906ffbfcac7d5490b8daf02d528d4a87aa