diff --git a/package-lock.json b/package-lock.json index 4abf6e63..d32e4a82 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "version": "1.0.0-semantically-released", "license": "AGPL-3.0", "dependencies": { + "@datadog/browser-rum": "^5.14.0", "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@edx/frontend-component-footer": "^13.0.4", "@edx/frontend-component-header": "^5.0.2", @@ -2161,6 +2162,36 @@ "kuler": "^2.0.0" } }, + "node_modules/@datadog/browser-core": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-5.14.0.tgz", + "integrity": "sha512-sr02NfURpidS+FW9JaIDwqG8JfeqNy2GjPhzxZ7q3IITktX0wNxEq+IhwJDfB+2G/2iT9t7WgFBshx/e3Rb0Ow==" + }, + "node_modules/@datadog/browser-rum": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-rum/-/browser-rum-5.14.0.tgz", + "integrity": "sha512-IijqDr1zDWJdNcbasjOMoriXDSf4ILbtt9DJF6+UMidQ32CNoCr524IK0d+9Qoea1uhEDIxIsA5lDN+v8zb6sg==", + "dependencies": { + "@datadog/browser-core": "5.14.0", + "@datadog/browser-rum-core": "5.14.0" + }, + "peerDependencies": { + "@datadog/browser-logs": "5.14.0" + }, + "peerDependenciesMeta": { + "@datadog/browser-logs": { + "optional": true + } + } + }, + "node_modules/@datadog/browser-rum-core": { + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-rum-core/-/browser-rum-core-5.14.0.tgz", + "integrity": "sha512-DwpHwU+7LhuDwUKnOuQczM/QlsgCZofQyPOTEih2Rj9yrVpf6Z1lNQg9TCPNqGLAKs+Q1HqP1fJYa+tBCmgbhw==", + "dependencies": { + "@datadog/browser-core": "5.14.0" + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", diff --git a/package.json b/package.json index ab603699..3fbdc142 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "url": "https://github.com/openedx/frontend-app-learning/issues" }, "dependencies": { + "@datadog/browser-rum": "^5.14.0", "@edx/brand": "npm:@openedx/brand-openedx@^1.2.2", "@edx/frontend-component-footer": "^13.0.4", "@edx/frontend-component-header": "^5.0.2", diff --git a/src/index.jsx b/src/index.jsx index 99c2bd5e..0a7f7612 100755 --- a/src/index.jsx +++ b/src/index.jsx @@ -10,6 +10,7 @@ import { AppProvider, ErrorPage, PageWrap } from '@edx/frontend-platform/react'; import React from 'react'; import ReactDOM from 'react-dom'; import { Routes, Route } from 'react-router-dom'; +import { datadogRum } from '@datadog/browser-rum'; import { Helmet } from 'react-helmet'; import { fetchDiscussionTab, fetchLiveTab } from './course-home/data/thunks'; @@ -39,6 +40,21 @@ import DecodePageRoute from './decode-page-route'; import { DECODE_ROUTES, ROUTES } from './constants'; subscribe(APP_READY, () => { + datadogRum.init({ + applicationId: 'a3f99dcb-4955-4baa-8341-39a88603ab08', + clientToken: 'pubf2e79d946cec4c4413965620ba0e0b72', + site: 'datadoghq.com', + service: 'edx-frontend-sandbox', + env: 'staging', + // Specify a version number to identify the deployed version of your application in Datadog + version: '1.0.0', + sessionSampleRate: 100, + sessionReplaySampleRate: 20, + trackUserInteractions: true, + trackResources: true, + trackLongTasks: true, + defaultPrivacyLevel: 'mask-user-input', + }); ReactDOM.render(