diff --git a/src/applications/mhv/secure-messaging/containers/App.jsx b/src/applications/mhv/secure-messaging/containers/App.jsx index 005b31f776d0..623d1a406764 100644 --- a/src/applications/mhv/secure-messaging/containers/App.jsx +++ b/src/applications/mhv/secure-messaging/containers/App.jsx @@ -97,7 +97,16 @@ const App = ({ isPilot }) => { trackLongTasks: true, defaultPrivacyLevel: 'mask-user-input', }; - useDatadogRum(datadogRumConfig); + const userDetails = useMemo( + () => { + return { + loggedIn: user?.login?.currentlyLoggedIn, + accountUuid: user?.profile?.accountUUid, + }; + }, + [user], + ); + useDatadogRum(datadogRumConfig, userDetails); if (featureTogglesLoading) { return ( diff --git a/src/platform/mhv/hooks/useDatadogRum.jsx b/src/platform/mhv/hooks/useDatadogRum.jsx index 88b8ec7d34d0..1562c1b58172 100644 --- a/src/platform/mhv/hooks/useDatadogRum.jsx +++ b/src/platform/mhv/hooks/useDatadogRum.jsx @@ -4,28 +4,39 @@ import { datadogRum } from '@datadog/browser-rum'; import { environment } from '@department-of-veterans-affairs/platform-utilities/exports'; const initializeDatadogRum = config => { - if ( - // Prevent RUM from running on local/CI environments. - environment.BASE_URL.indexOf('localhost') < 0 && - // Prevent re-initializing the SDK. - !window.DD_RUM?.getInitConfiguration() && - !window.Mocha - ) { - const datadogRumConfig = config; - if (!datadogRumConfig.env) { - datadogRumConfig.env = environment.vspEnvironment(); - } - datadogRum.init(datadogRumConfig); - datadogRum.startSessionReplayRecording(); + const datadogRumConfig = config; + if (!datadogRumConfig.env) { + datadogRumConfig.env = environment.vspEnvironment(); } + datadogRum.init(datadogRumConfig); + datadogRum.startSessionReplayRecording(); }; -const useDatadogRum = config => { +const setRumUser = user => { + if (user.loggedIn && environment.isStaging()) { + datadogRum.setUser({ + id: user.accountUuid || 'no-account-uuid-found', + }); + } +}; + +const useDatadogRum = (config, userInfo) => { useEffect( () => { - initializeDatadogRum(config); + if ( + // Prevent RUM from running on local/CI environments. + environment.BASE_URL.indexOf('localhost') < 0 && + // Prevent re-initializing the SDK. + !window.DD_RUM?.getInitConfiguration() && + !window.Mocha + ) { + initializeDatadogRum(config); + if (userInfo) { + setRumUser(userInfo); + } + } }, - [config], + [config, userInfo], ); };