@@ -2,16 +2,26 @@ import { initializeFaro, getWebInstrumentations, faro } from '@grafana/faro-web-sdk'; import { TracingInstrumentation } from '@grafana/faro-web-tracing'; +import { useSession } from 'next-auth/react'; export default function FrontendObservability(): null { if (faro.api) { return null; } + const session = useSession() + try { initializeFaro({ url: process.env.NEXT_PUBLIC_FARO_API_URL, apiKey: process.env.NEXT_PUBLIC_FARO_API_KEY, + sessionTracking: { + enabled: true, + persistent: true, + generateSessionId: () => { + return session.status === 'authenticated' && session.data.user && session.data.user.email ? session.data.user.email : crypto.randomUUID() + } + }, app: { name: process.env.NEXT_PUBLIC_FARO_APP_NAME, version: process.env.NEXT_PUBLIC_RELEASE, @@ -17,7 +17,7 @@ import { API_URL } from '#/shared/lib/constants' import { declineToken } from '#/shared/lib/helpers/get-token' import { IProps } from '#/shared/lib/types/entities' import { NavigationSearch } from '#/widgets/navigation-search' -import { faro } from '@grafana/faro-web-sdk' +import { PersistentSessionsManager } from '@grafana/faro-web-sdk' interface InfoBarProps extends IProps {} @@ -312,6 +312,7 @@ const InfoBar: React.FC = ({ device }) => { { + PersistentSessionsManager.removeUserSession(); signOut() }} sx={{ marginTop: '15px', cursor: 'pointer' }} @@ -3,6 +3,7 @@ import styles from './slow-loading.module.scss' import { Loader } from '#/shared' import { CommonButton } from '#/shared/ui/button' import { signOut, useSession } from 'next-auth/react' +import { PersistentSessionsManager } from '@grafana/faro-web-sdk' interface SlowLoadingProps { } @@ -12,7 +13,7 @@ export const SlowLoading = ({ }: SlowLoadingProps) => {

Долгая загрузка

Предлагаем перезайти - signOut()} variant='primary'> + { PersistentSessionsManager.removeUserSession(); signOut() }} variant='primary'> Выйти @@ -65,7 +65,6 @@ function App({ Component, pageProps: { session, ...pageProps } }: AppPropsWithLa return ( <> -