[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:
parent
9431201026
commit
d6275e98c2
7 changed files with 41 additions and 21 deletions
|
@ -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',
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue