Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(spike) added user to rum #28214

Merged
merged 12 commits into from Mar 11, 2024
11 changes: 10 additions & 1 deletion src/applications/mhv/secure-messaging/containers/App.jsx
Expand Up @@ -14,7 +14,7 @@
renderMHVDowntime,
useDatadogRum,
} from '@department-of-veterans-affairs/mhv/exports';
import { getScheduledDowntime } from 'platform/monitoring/DowntimeNotification/actions';

Check warning on line 17 in src/applications/mhv/secure-messaging/containers/App.jsx

View workflow job for this annotation

GitHub Actions / Linting (Files Changed)

src/applications/mhv/secure-messaging/containers/App.jsx:17:1:Importing from platform via platform/monitoring is deprecated. Import from @department-of-veterans-affairs/platform-monitoring instead or check babel.config.json for an alias to the import.
import AuthorizedRoutes from './AuthorizedRoutes';
import SmBreadcrumbs from '../components/shared/SmBreadcrumbs';
import Navigation from '../components/Navigation';
Expand Down Expand Up @@ -81,7 +81,16 @@
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