Skip to content

Commit

Permalink
(spike) added user to rum (#28214)
Browse files Browse the repository at this point in the history
* (spike) added user to rum

* (feature) refined user tracking

* Fix unit test

* (refactor) moved to the correct hook

* (feedback)

---------

Co-authored-by: Adrian Rollett <acrollet@gmail.com>
  • Loading branch information
2 people authored and Peter Hill committed Mar 14, 2024
1 parent 64d76c6 commit ae9d616
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 17 deletions.
11 changes: 10 additions & 1 deletion src/applications/mhv/secure-messaging/containers/App.jsx
Expand Up @@ -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 (
Expand Down
43 changes: 27 additions & 16 deletions src/platform/mhv/hooks/useDatadogRum.jsx
Expand Up @@ -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],
);
};

Expand Down

0 comments on commit ae9d616

Please sign in to comment.