From c8be9b78c6abb1ca98a2e4c9342e314b19d2cb7c Mon Sep 17 00:00:00 2001 From: Hailey Date: Sat, 7 Sep 2024 04:13:51 -0700 Subject: [Statsig] Add more events to downsample, increase downsample rate (#5198) * add some events for sampling * include downsample rate in metadata * fix metadata logic * uncomment debug --- src/lib/statsig/events.ts | 14 +++++++------- src/lib/statsig/statsig.tsx | 17 ++++++++++++++--- 2 files changed, 21 insertions(+), 10 deletions(-) (limited to 'src/lib/statsig') diff --git a/src/lib/statsig/events.ts b/src/lib/statsig/events.ts index 4768bdc23..187189490 100644 --- a/src/lib/statsig/events.ts +++ b/src/lib/statsig/events.ts @@ -25,7 +25,7 @@ export type LogEvents = { secondsActive: number } 'state:foreground:sampled': {} - 'router:navigate:sampled': {} + 'router:navigate:notifications:sampled': {} 'deepLink:referrerReceived': { to: string referrer: string @@ -127,25 +127,25 @@ export type LogEvents = { langs: string logContext: 'Composer' } - 'post:like': { + 'post:like:sampled': { doesLikerFollowPoster: boolean | undefined doesPosterFollowLiker: boolean | undefined likerClout: number | undefined postClout: number | undefined logContext: 'FeedItem' | 'PostThreadItem' | 'Post' } - 'post:repost': { + 'post:repost:sampled': { logContext: 'FeedItem' | 'PostThreadItem' | 'Post' } - 'post:unlike': { + 'post:unlike:sampled': { logContext: 'FeedItem' | 'PostThreadItem' | 'Post' } - 'post:unrepost': { + 'post:unrepost:sampled': { logContext: 'FeedItem' | 'PostThreadItem' | 'Post' } 'post:mute': {} 'post:unmute': {} - 'profile:follow': { + 'profile:follow:sampled': { didBecomeMutual: boolean | undefined followeeClout: number | undefined followerClout: number | undefined @@ -162,7 +162,7 @@ export type LogEvents = { | 'FeedInterstitial' | 'ProfileHeaderSuggestedFollows' } - 'profile:unfollow': { + 'profile:unfollow:sampled': { logContext: | 'RecommendedFollowsItem' | 'PostThreadItem' diff --git a/src/lib/statsig/statsig.tsx b/src/lib/statsig/statsig.tsx index 7d86f4078..c50bfeb86 100644 --- a/src/lib/statsig/statsig.tsx +++ b/src/lib/statsig/statsig.tsx @@ -89,8 +89,9 @@ export function toClout(n: number | null | undefined): number | undefined { } } +const DOWNSAMPLE_RATE = 0.95 // 95% likely const DOWNSAMPLED_EVENTS: Set = new Set([ - 'router:navigate:sampled', + 'router:navigate:notifications:sampled', 'state:background:sampled', 'state:foreground:sampled', 'home:feedDisplayed:sampled', @@ -99,8 +100,14 @@ const DOWNSAMPLED_EVENTS: Set = new Set([ 'discover:clickthrough:sampled', 'discover:engaged:sampled', 'discover:seen:sampled', + 'post:like:sampled', + 'post:unlike:sampled', + 'post:repost:sampled', + 'post:unrepost:sampled', + 'profile:follow:sampled', + 'profile:unfollow:sampled', ]) -const isDownsampledSession = Math.random() < 0.9 // 90% likely +const isDownsampledSession = Math.random() < DOWNSAMPLE_RATE export function logEvent( eventName: E & string, @@ -117,12 +124,16 @@ export function logEvent( ) } - if (isDownsampledSession && DOWNSAMPLED_EVENTS.has(eventName)) { + const isDownsampledEvent = DOWNSAMPLED_EVENTS.has(eventName) + if (isDownsampledSession && isDownsampledEvent) { return } const fullMetadata = { ...rawMetadata, } as Record // Statsig typings are unnecessarily strict here. + if (isDownsampledEvent) { + fullMetadata.downsampleRate = DOWNSAMPLE_RATE.toString() + } fullMetadata.routeName = getCurrentRouteName() ?? '(Uninitialized)' if (Statsig.initializeCalled()) { Statsig.logEvent(eventName, null, fullMetadata) -- cgit 1.4.1