From 60a2bf63e32083bc589441dee807281369c2bdb5 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Thu, 3 Nov 2022 14:37:06 +0000 Subject: [PATCH] [web] drop rate of compile-result-backend events to 1% GitOrigin-RevId: af3e4b56812f014ad7c40d1a98ee6db16798890b --- .../web/app/src/Features/Compile/CompileController.js | 9 ++++++++- .../web/app/src/Features/SplitTests/SplitTestHandler.js | 9 +++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/services/web/app/src/Features/Compile/CompileController.js b/services/web/app/src/Features/Compile/CompileController.js index 817ffab09f..1b5dddc153 100644 --- a/services/web/app/src/Features/Compile/CompileController.js +++ b/services/web/app/src/Features/Compile/CompileController.js @@ -141,7 +141,14 @@ module.exports = CompileController = { pdfDownloadDomain += outputUrlPrefix } - if (limits) { + if ( + limits && + SplitTestHandler.getPercentile( + AnalyticsManager.getIdsFromSession(req.session).analyticsId, + 'compile-result-backend', + 'release' + ) === 1 + ) { // For a compile request to be sent to clsi we need limits. // If we get here without having the limits object populated, it is // a reasonable assumption to make that nothing was compiled. diff --git a/services/web/app/src/Features/SplitTests/SplitTestHandler.js b/services/web/app/src/Features/SplitTests/SplitTestHandler.js index ac2f3a8204..c93b99e29a 100644 --- a/services/web/app/src/Features/SplitTests/SplitTestHandler.js +++ b/services/web/app/src/Features/SplitTests/SplitTestHandler.js @@ -263,11 +263,7 @@ async function _getAssignmentMetadata(analyticsId, user, splitTest) { } } const userId = user?._id.toString() - const percentile = _getPercentile( - analyticsId || userId, - splitTest.name, - phase - ) + const percentile = getPercentile(analyticsId || userId, splitTest.name, phase) const selectedVariantName = _getVariantFromPercentile( currentVersion.variants, percentile @@ -280,7 +276,7 @@ async function _getAssignmentMetadata(analyticsId, user, splitTest) { } } -function _getPercentile(analyticsId, splitTestName, splitTestPhase) { +function getPercentile(analyticsId, splitTestName, splitTestPhase) { const hash = crypto .createHash('md5') .update(analyticsId + splitTestName + splitTestPhase) @@ -408,6 +404,7 @@ async function _loadSplitTestInfoInLocals(locals, splitTestName) { } module.exports = { + getPercentile, getAssignment: callbackify(getAssignment), getAssignmentForMongoUser: callbackify(getAssignmentForMongoUser), getAssignmentForUser: callbackify(getAssignmentForUser),