Skip to content

Commit d0a670e

Browse files
author
Andrea Barbasso
committed
[DSC-1570] add basic structure for datadog rum settings
1 parent ebcca62 commit d0a670e

6 files changed

Lines changed: 63 additions & 0 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@
8484
"@angular/platform-server": "^15.2.8",
8585
"@angular/router": "^15.2.8",
8686
"@babel/runtime": "7.21.0",
87+
"@datadog/browser-rum": "^5.7.0",
8788
"@kolkov/ngx-gallery": "^2.0.1",
8889
"@material-ui/core": "^4.11.0",
8990
"@material-ui/icons": "^4.11.3",

src/app/app.component.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { distinctNext } from './core/shared/distinct-next';
2929
import { RouteService } from './core/services/route.service';
3030
import { getEditItemPageRoute, getWorkflowItemModuleRoute, getWorkspaceItemModuleRoute } from './app-routing-paths';
3131
import { SocialService } from './social/social.service';
32+
import { datadogRum } from '@datadog/browser-rum';
3233

3334
@Component({
3435
selector: 'ds-app',
@@ -108,6 +109,14 @@ export class AppComponent implements OnInit, AfterViewInit {
108109
);
109110

110111
this.dispatchWindowSize(this._window.nativeWindow.innerWidth, this._window.nativeWindow.innerHeight);
112+
113+
if (
114+
environment.datadogRum?.clientToken && environment.datadogRum?.applicationId &&
115+
environment.datadogRum?.service && environment.datadogRum?.env) {
116+
// TODO: aggiungere check consent cookie
117+
console.warn('init', environment.datadogRum);
118+
datadogRum.init(environment.datadogRum);
119+
}
111120
}
112121

113122
private storeCSSVariables() {

src/config/app-config.interface.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import { AdvancedAttachmentRenderingConfig } from './advanced-attachment-renderi
3232
import { AttachmentRenderingConfig } from './attachment-rendering.config';
3333
import { SearchResultConfig } from './search-result-config.interface';
3434
import { MiradorConfig } from './mirador-config.interfaces';
35+
import { DatadogRumConfig } from './datadog-rum-config.interfaces';
3536

3637
interface AppConfig extends Config {
3738
ui: UIServerConfig;
@@ -70,6 +71,7 @@ interface AppConfig extends Config {
7071
advancedAttachmentRendering: AdvancedAttachmentRenderingConfig;
7172
searchResult: SearchResultConfig;
7273
mirador: MiradorConfig;
74+
datadogRum?: DatadogRumConfig;
7375
}
7476

7577
/**
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { Config } from './config.interface';
2+
import { DefaultPrivacyLevel } from '@datadog/browser-rum';
3+
4+
export interface DatadogRumConfig extends Config {
5+
clientToken: string;
6+
applicationId: string;
7+
site?: string;
8+
service: string;
9+
env: string;
10+
sessionSampleRate?: number;
11+
sessionReplaySampleRate?: number;
12+
trackUserInteractions?: boolean;
13+
trackResources?: boolean;
14+
trackLongTasks?: boolean;
15+
defaultPrivacyLevel?: DefaultPrivacyLevel;
16+
}

src/config/default-app-config.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import {
3535
import { AttachmentRenderingConfig } from './attachment-rendering.config';
3636
import { SearchResultConfig } from './search-result-config.interface';
3737
import { MiradorConfig } from './mirador-config.interfaces';
38+
import { DatadogRumConfig } from './datadog-rum-config.interfaces';
3839

3940
export class DefaultAppConfig implements AppConfig {
4041
production = false;
@@ -760,4 +761,18 @@ export class DefaultAppConfig implements AppConfig {
760761
mirador: MiradorConfig = {
761762
enableDownloadPlugin: true,
762763
};
764+
765+
datadogRum: DatadogRumConfig = {
766+
clientToken: undefined,
767+
applicationId: undefined,
768+
site: 'datadoghq.eu',
769+
service: undefined,
770+
env: undefined,
771+
sessionSampleRate: 50,
772+
sessionReplaySampleRate: 20,
773+
trackUserInteractions: true,
774+
trackResources: true,
775+
trackLongTasks: true,
776+
defaultPrivacyLevel: 'mask-user-input',
777+
};
763778
}

yarn.lock

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1533,6 +1533,26 @@
15331533
debug "^3.1.0"
15341534
lodash.once "^4.1.1"
15351535

1536+
"@datadog/browser-core@5.7.0":
1537+
version "5.7.0"
1538+
resolved "https://registry.yarnpkg.com/@datadog/browser-core/-/browser-core-5.7.0.tgz#ae8cd791626e928a82dfdfb3ccea88778323ddb8"
1539+
integrity sha512-rNUe3s5XD+9UUe/muYuh/UJzb0YXTRwSP1VevMRZmEpNgkBhurWjqjm3LQphYXMYsmQIgvqDPWm05Z+jOxTzRw==
1540+
1541+
"@datadog/browser-rum-core@5.7.0":
1542+
version "5.7.0"
1543+
resolved "https://registry.yarnpkg.com/@datadog/browser-rum-core/-/browser-rum-core-5.7.0.tgz#a13f88ab094fe95fe807292965e031857f06b3e3"
1544+
integrity sha512-ZWDkyMprM0QBQhKhEZnfux8EE9STPa1wl/rAjY/+dBRqrGi1bEqigSgy7GiwiCag1Wn9GEjLXS5opqmoO/fpQw==
1545+
dependencies:
1546+
"@datadog/browser-core" "5.7.0"
1547+
1548+
"@datadog/browser-rum@^5.7.0":
1549+
version "5.7.0"
1550+
resolved "https://registry.yarnpkg.com/@datadog/browser-rum/-/browser-rum-5.7.0.tgz#5aa157f0f175f8a35675d9c542437b6f7646a667"
1551+
integrity sha512-I+1QslFl4vteoJQBAtBYPgiWa1rFZ/DoNZsOqsKGJjpql0omv5fvdjwbSTBBT5wfLnzo/FnfHogynFpB+JP0rg==
1552+
dependencies:
1553+
"@datadog/browser-core" "5.7.0"
1554+
"@datadog/browser-rum-core" "5.7.0"
1555+
15361556
"@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0":
15371557
version "0.5.7"
15381558
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"

0 commit comments

Comments
 (0)