Skip to content

Commit

Permalink
Revert "[RUMF-804] implement a minimal version of the recorder (DataD…
Browse files Browse the repository at this point in the history
…og#670)"

This reverts commit 892ab5d.
  • Loading branch information
kcaffrey authored Jan 29, 2021
1 parent 1b14802 commit 8f6e3df
Show file tree
Hide file tree
Showing 45 changed files with 62 additions and 6,019 deletions.
4 changes: 1 addition & 3 deletions LICENSE-3rdparty.csv
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
Component,Origin,License,Copyright
require,tslib,Apache-2.0,Copyright Microsoft Corporation
file,pako,MIT,(C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
file,rrweb,MIT,Copyright (c) 2018 Contributors (https://github.com/rrweb-io/rrweb/graphs/contributors) and SmartX Inc.
file,tracekit,MIT,Copyright 2013 Onur Can Cakmak and all TraceKit contributors
prod,@types/css-font-loading-module,MIT,Copyright Microsoft Corporation
prod,rrweb-snapshot,MIT,Copyright (c) 2018 Contributors (https://github.com/rrweb-io/rrweb-snapshot/graphs/contributors) and SmartX Inc.
dev,@types/connect-busboy,MIT,Copyright Microsoft Corporation
dev,@types/cors,MIT,Copyright Microsoft Corporation
dev,@types/express,MIT,Copyright Microsoft Corporation
dev,@types/jasmine,MIT,Copyright Microsoft Corporation
Expand All @@ -20,7 +19,6 @@ dev,@wdio/sync,MIT,Copyright JS Foundation and other contributors
dev,ajv,MIT,Copyright 2015-2017 Evgeny Poberezkin
dev,browserstack-local,MIT,Copyright 2016 BrowserStack
dev,codecov,MIT,Copyright 2014 Gregg Caines
dev,connect-busboy,MIT,Copyright Brian White
dev,cors,MIT,Copyright 2013 Troy Goode
dev,emoji-name-map,MIT,Copyright 2016-19 Ionică Bizău <bizauionica@gmail.com> (https://ionicabizau.net)
dev,express,MIT,Copyright 2009-2014 TJ Holowaychuk 2013-2014 Roman Shtylman 2014-2015 Douglas Christopher Wilson
Expand Down
2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"rum-events-format:sync": "scripts/cli update_submodule && scripts/cli build_json2type && node scripts/generate-schema-types.js"
},
"devDependencies": {
"@types/connect-busboy": "0.0.2",
"@types/cors": "2.8.7",
"@types/express": "4.17.8",
"@types/jasmine": "3.5.10",
Expand All @@ -43,7 +42,6 @@
"ajv": "6.12.6",
"browserstack-local": "1.4.5",
"codecov": "3.7.1",
"connect-busboy": "0.0.2",
"cors": "2.8.5",
"emoji-name-map": "1.2.8",
"express": "4.17.1",
Expand Down
15 changes: 0 additions & 15 deletions packages/core/src/domain/configuration.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ describe('configuration', () => {
expect(configuration.rumEndpoint).toEqual('<<< E2E RUM ENDPOINT >>>')
expect(configuration.logsEndpoint).toEqual('<<< E2E LOGS ENDPOINT >>>')
expect(configuration.internalMonitoringEndpoint).toEqual('<<< E2E INTERNAL MONITORING ENDPOINT >>>')
expect(configuration.sessionReplayEndpoint).toEqual('<<< E2E SESSION REPLAY ENDPOINT >>>')
})
})

Expand Down Expand Up @@ -116,7 +115,6 @@ describe('configuration', () => {
expect(configuration.isIntakeUrl('https://rum-http-intake.logs.datadoghq.eu/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://browser-http-intake.logs.datadoghq.eu/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://public-trace-http-intake.logs.datadoghq.eu/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://session-replay.browser-intake-datadoghq.eu/v1/input/xxx')).toBe(true)
})

it('should detect intake request for US site', () => {
Expand All @@ -125,15 +123,13 @@ describe('configuration', () => {
expect(configuration.isIntakeUrl('https://rum-http-intake.logs.datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://browser-http-intake.logs.datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://public-trace-http-intake.logs.datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://session-replay.browser-intake-datadoghq.com/v1/input/xxx')).toBe(true)
})

it('should detect alternate intake domains for US site', () => {
const configuration = buildConfiguration({ clientToken, useAlternateIntakeDomains: true }, usEnv)
expect(configuration.isIntakeUrl('https://rum.browser-intake-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://logs.browser-intake-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://trace.browser-intake-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://session-replay.browser-intake-datadoghq.com/v1/input/xxx')).toBe(true)
})

it('should handle sites with subdomains and classic intake', () => {
Expand All @@ -143,9 +139,6 @@ describe('configuration', () => {
expect(configuration.isIntakeUrl('https://public-trace-http-intake.logs.foo.datadoghq.com/v1/input/xxx')).toBe(
true
)
expect(configuration.isIntakeUrl('https://session-replay.browser-intake-foo-datadoghq.com/v1/input/xxx')).toBe(
true
)
})

it('should handle sites with subdomains and alternate intake', () => {
Expand All @@ -156,9 +149,6 @@ describe('configuration', () => {
expect(configuration.isIntakeUrl('https://rum.browser-intake-foo-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://logs.browser-intake-foo-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://trace.browser-intake-foo-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://session-replay.browser-intake-foo-datadoghq.com/v1/input/xxx')).toBe(
true
)
})

it('should force alternate intake for us3', () => {
Expand All @@ -169,9 +159,6 @@ describe('configuration', () => {
expect(configuration.isIntakeUrl('https://rum.browser-intake-us3-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://logs.browser-intake-us3-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://trace.browser-intake-us3-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://session-replay.browser-intake-us3-datadoghq.com/v1/input/xxx')).toBe(
true
)
})

it('should detect proxy intake request', () => {
Expand Down Expand Up @@ -199,7 +186,6 @@ describe('configuration', () => {
expect(configuration.isIntakeUrl('https://rum-http-intake.logs.foo.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://browser-http-intake.logs.foo.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://public-trace-http-intake.logs.foo.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://session-replay.browser-intake-foo.com/v1/input/xxx')).toBe(true)

expect(configuration.isIntakeUrl('https://rum-http-intake.logs.datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://browser-http-intake.logs.datadoghq.com/v1/input/xxx')).toBe(true)
Expand All @@ -213,7 +199,6 @@ describe('configuration', () => {
expect(configuration.isIntakeUrl('https://rum.browser-intake-foo.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://logs.browser-intake-foo.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://trace.browser-intake-foo.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://session-replay.browser-intake-foo.com/v1/input/xxx')).toBe(true)

expect(configuration.isIntakeUrl('https://rum.browser-intake-datadoghq.com/v1/input/xxx')).toBe(true)
expect(configuration.isIntakeUrl('https://logs.browser-intake-datadoghq.com/v1/input/xxx')).toBe(true)
Expand Down
20 changes: 4 additions & 16 deletions packages/core/src/domain/configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ export type Configuration = typeof DEFAULT_CONFIGURATION & {
logsEndpoint: string
rumEndpoint: string
traceEndpoint: string
sessionReplayEndpoint: string
internalMonitoringEndpoint?: string
proxyHost?: string

Expand Down Expand Up @@ -112,14 +111,11 @@ const ENDPOINTS = {
alternate: {
logs: 'logs',
rum: 'rum',
sessionReplay: 'session-replay',
trace: 'trace',
},
classic: {
logs: 'browser',
rum: 'rum',
// session-replay has no classic endpoint
sessionReplay: undefined,
trace: 'public-trace',
},
}
Expand Down Expand Up @@ -155,7 +151,6 @@ export function buildConfiguration(userConfiguration: UserConfiguration, buildEn
proxyHost: userConfiguration.proxyHost,
rumEndpoint: getEndpoint(intakeType, 'rum', transportConfiguration),
service: userConfiguration.service,
sessionReplayEndpoint: getEndpoint(intakeType, 'sessionReplay', transportConfiguration),
traceEndpoint: getEndpoint(intakeType, 'trace', transportConfiguration),

isIntakeUrl: (url) => intakeUrls.some((intakeUrl) => url.indexOf(intakeUrl) === 0),
Expand Down Expand Up @@ -190,7 +185,6 @@ export function buildConfiguration(userConfiguration: UserConfiguration, buildEn
configuration.internalMonitoringEndpoint = '<<< E2E INTERNAL MONITORING ENDPOINT >>>'
configuration.logsEndpoint = '<<< E2E LOGS ENDPOINT >>>'
configuration.rumEndpoint = '<<< E2E RUM ENDPOINT >>>'
configuration.sessionReplayEndpoint = '<<< E2E SESSION REPLAY ENDPOINT >>>'
}

if (transportConfiguration.buildMode === BuildMode.STAGING) {
Expand Down Expand Up @@ -252,16 +246,10 @@ function getEndpoint(
}

function getHost(intakeType: IntakeType, endpointType: EndpointType, site: string) {
return (intakeType === 'classic' && getClassicHost(endpointType, site)) || getAlternateHost(endpointType, site)
}

function getClassicHost(endpointType: EndpointType, site: string): string | undefined {
const endpoint = ENDPOINTS.classic[endpointType]
return endpoint && `${endpoint}-http-intake.logs.${site}`
}

function getAlternateHost(endpointType: EndpointType, site: string): string {
const endpoint = ENDPOINTS.alternate[endpointType]
const endpoint = ENDPOINTS[intakeType][endpointType]
if (intakeType === 'classic') {
return `${endpoint}-http-intake.logs.${site}`
}
const domainParts = site.split('.')
const extension = domainParts.pop()
const suffix = `${domainParts.join('-')}.${extension}`
Expand Down
1 change: 0 additions & 1 deletion packages/core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ export {
monitored,
monitor,
addMonitoringMessage,
setDebugMode,
} from './domain/internalMonitoring'
export { Observable } from './tools/observable'
export {
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/transport/transport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const HAS_MULTI_BYTES_CHARACTERS = /[^\u0000-\u007F]/
export class HttpRequest {
constructor(private endpointUrl: string, private bytesLimit: number, private withBatchTime: boolean = false) {}

send(data: string | FormData, size: number) {
send(data: string, size: number) {
const url = this.withBatchTime ? addBatchTime(this.endpointUrl) : this.endpointUrl
if (navigator.sendBeacon && size < this.bytesLimit) {
const isQueued = navigator.sendBeacon(url, data)
Expand Down
3 changes: 0 additions & 3 deletions packages/rum-core/src/boot/rum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,6 @@ export function startRum(userConfiguration: RumUserConfiguration, getCommonConte
addError,
addTiming,
configuration,
lifeCycle,
parentContexts,
session,
getInternalContext: internalContext.get,
}
}
Expand Down
5 changes: 1 addition & 4 deletions packages/rum-core/src/boot/rumPublicApi.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,12 @@ import { makeRumPublicApi, RumPublicApi, RumUserConfiguration, StartRum } from '
const configuration: Partial<Configuration> = {
isEnabled: () => false,
}
const noopStartRum = (): ReturnType<StartRum> => ({
const noopStartRum = () => ({
addAction: () => undefined,
addError: () => undefined,
addTiming: () => undefined,
configuration: configuration as Configuration,
getInternalContext: () => undefined,
lifeCycle: {} as any,
parentContexts: {} as any,
session: {} as any,
})
const DEFAULT_INIT_CONFIGURATION = { applicationId: 'xxx', clientToken: 'xxx' }

Expand Down
4 changes: 0 additions & 4 deletions packages/rum-core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,4 @@ export {
RumResourceEvent,
RumLongTaskEvent,
} from './rumEvent.types'
export { ViewContext, CommonContext } from './rawRumEvent.types'
export { startRum } from './boot/rum'
export { LifeCycle, LifeCycleEventType } from './domain/lifeCycle'
export { ParentContexts } from './domain/parentContexts'
export { RumSession } from './domain/rumSession'
1 change: 0 additions & 1 deletion packages/rum-core/src/rawRumEvent.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -175,5 +175,4 @@ export interface User {
export interface CommonContext {
user: User
context: Context
hasReplay?: boolean
}
3 changes: 2 additions & 1 deletion packages/rum-recorder/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
},
"dependencies": {
"@datadog/browser-core": "2.2.1",
"@datadog/browser-rum-core": "2.2.1",
"@datadog/browser-rum": "2.2.1",
"@types/css-font-loading-module": "0.0.4",
"rrweb-snapshot": "1.0.1",
"tslib": "^1.10.0"
},
Expand Down
30 changes: 1 addition & 29 deletions packages/rum-recorder/src/boot/recorder.entry.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1 @@
import { defineGlobal, getGlobalObject } from '@datadog/browser-core'
import {
CommonContext,
makeRumPublicApi,
RumPublicApi,
RumUserConfiguration,
startRum,
} from '@datadog/browser-rum-core'

import { startRecording } from './recorder'

function startRumAndRecording(userConfiguration: RumUserConfiguration, getCommonContext: () => CommonContext) {
const startRumResult = startRum(userConfiguration, () => ({
...getCommonContext(),
hasReplay: true,
}))

const { lifeCycle, parentContexts, configuration, session } = startRumResult
startRecording(lifeCycle, userConfiguration.applicationId, configuration, session, parentContexts)

return startRumResult
}

export const datadogRum = makeRumPublicApi(startRumAndRecording)

interface BrowserWindow extends Window {
DD_RUM?: RumPublicApi
}
defineGlobal(getGlobalObject<BrowserWindow>(), 'DD_RUM', datadogRum)
export * from '@datadog/browser-rum'
Loading

0 comments on commit 8f6e3df

Please sign in to comment.