[Statsig] Sample noisy events (#4288)

* Sample state:background and state:foreground

* Sample feed events

* Add DEV protection against forgetting to add events to the list
This commit is contained in:
dan
2024-05-30 16:32:59 +01:00
committed by GitHub
parent 9431201026
commit d6275e98c2
7 changed files with 41 additions and 21 deletions
+2 -2
View File
@@ -76,7 +76,7 @@ export function FeedPage({
scrollToTop()
truncateAndInvalidate(queryClient, FEED_RQKEY(feed))
setHasNew(false)
logEvent('feed:refresh', {
logEvent('feed:refresh:sampled', {
feedType: feed.split('|')[0],
feedUrl: feed,
reason: 'soft-reset',
@@ -102,7 +102,7 @@ export function FeedPage({
scrollToTop()
truncateAndInvalidate(queryClient, FEED_RQKEY(feed))
setHasNew(false)
logEvent('feed:refresh', {
logEvent('feed:refresh:sampled', {
feedType: feed.split('|')[0],
feedUrl: feed,
reason: 'load-latest',
+3 -3
View File
@@ -15,7 +15,7 @@ const AnimatedPagerView = Animated.createAnimatedComponent(PagerView)
export interface PagerRef {
setPage: (
index: number,
reason: LogEvents['home:feedDisplayed']['reason'],
reason: LogEvents['home:feedDisplayed:sampled']['reason'],
) => void
}
@@ -32,7 +32,7 @@ interface Props {
onPageSelected?: (index: number) => void
onPageSelecting?: (
index: number,
reason: LogEvents['home:feedDisplayed']['reason'],
reason: LogEvents['home:feedDisplayed:sampled']['reason'],
) => void
onPageScrollStateChanged?: (
scrollState: 'idle' | 'dragging' | 'settling',
@@ -61,7 +61,7 @@ export const Pager = forwardRef<PagerRef, React.PropsWithChildren<Props>>(
React.useImperativeHandle(ref, () => ({
setPage: (
index: number,
reason: LogEvents['home:feedDisplayed']['reason'],
reason: LogEvents['home:feedDisplayed:sampled']['reason'],
) => {
pagerView.current?.setPage(index)
onPageSelecting?.(index, reason)
+6 -3
View File
@@ -18,7 +18,7 @@ interface Props {
onPageSelected?: (index: number) => void
onPageSelecting?: (
index: number,
reason: LogEvents['home:feedDisplayed']['reason'],
reason: LogEvents['home:feedDisplayed:sampled']['reason'],
) => void
}
export const Pager = React.forwardRef(function PagerImpl(
@@ -38,14 +38,17 @@ export const Pager = React.forwardRef(function PagerImpl(
React.useImperativeHandle(ref, () => ({
setPage: (
index: number,
reason: LogEvents['home:feedDisplayed']['reason'],
reason: LogEvents['home:feedDisplayed:sampled']['reason'],
) => {
onTabBarSelect(index, reason)
},
}))
const onTabBarSelect = React.useCallback(
(index: number, reason: LogEvents['home:feedDisplayed']['reason']) => {
(
index: number,
reason: LogEvents['home:feedDisplayed:sampled']['reason'],
) => {
const scrollY = window.scrollY
// We want to determine if the tabbar is already "sticking" at the top (in which
// case we should preserve and restore scroll), or if it is somewhere below in the
+2 -2
View File
@@ -226,7 +226,7 @@ let Feed = ({
const onRefresh = React.useCallback(async () => {
track('Feed:onRefresh')
logEvent('feed:refresh', {
logEvent('feed:refresh:sampled', {
feedType: feedType,
feedUrl: feed,
reason: 'pull-to-refresh',
@@ -244,7 +244,7 @@ let Feed = ({
const onEndReached = React.useCallback(async () => {
if (isFetching || !hasNextPage || isError) return
logEvent('feed:endReached', {
logEvent('feed:endReached:sampled', {
feedType: feedType,
feedUrl: feed,
itemCount: feedItems.length,
+6 -3
View File
@@ -99,7 +99,7 @@ function HomeScreenReady({
useFocusEffect(
useNonReactiveCallback(() => {
if (selectedFeed) {
logEvent('home:feedDisplayed', {
logEvent('home:feedDisplayed:sampled', {
index: selectedIndex,
feedType: selectedFeed.split('|')[0],
feedUrl: selectedFeed,
@@ -140,9 +140,12 @@ function HomeScreenReady({
)
const onPageSelecting = React.useCallback(
(index: number, reason: LogEvents['home:feedDisplayed']['reason']) => {
(
index: number,
reason: LogEvents['home:feedDisplayed:sampled']['reason'],
) => {
const feed = allFeeds[index]
logEvent('home:feedDisplayed', {
logEvent('home:feedDisplayed:sampled', {
index,
feedType: feed.split('|')[0],
feedUrl: feed,