diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fdb0982487..7d430b52a6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -168,10 +168,12 @@ deploy-staging:
image: $CI_IMAGE
script:
- yarn
- - TARGET_DATACENTER=eu TARGET_ENV=staging BUILD_MODE=staging yarn build:bundle
+ - WITH_SUFFIX=true TARGET_DATACENTER=eu BUILD_MODE=staging yarn build:bundle
- ./scripts/deploy.sh staging eu
- - TARGET_DATACENTER=us TARGET_ENV=staging BUILD_MODE=staging yarn build:bundle
+ - WITH_SUFFIX=true TARGET_DATACENTER=us BUILD_MODE=staging yarn build:bundle
- ./scripts/deploy.sh staging us
+ - TARGET_DATACENTER=us BUILD_MODE=staging yarn build:bundle
+ - ./scripts/deploy.sh staging
deploy-release:
only:
@@ -184,10 +186,12 @@ deploy-release:
image: $CI_IMAGE
script:
- yarn
- - TARGET_DATACENTER=us TARGET_ENV=production BUILD_MODE=release yarn build:bundle
+ - WITH_SUFFIX=true TARGET_DATACENTER=us BUILD_MODE=release yarn build:bundle
- ./scripts/deploy.sh prod us
- - TARGET_DATACENTER=eu TARGET_ENV=production BUILD_MODE=release yarn build:bundle
+ - WITH_SUFFIX=true TARGET_DATACENTER=eu BUILD_MODE=release yarn build:bundle
- ./scripts/deploy.sh prod eu
+ - TARGET_DATACENTER=us BUILD_MODE=release yarn build:bundle
+ - ./scripts/deploy.sh prod
########################################################################################################################
# Notify
diff --git a/README.md b/README.md
index 688103e99d..f2e2ee7fa7 100644
--- a/README.md
+++ b/README.md
@@ -6,11 +6,11 @@ The browser SDK is used to collect logs and RUM data from the browser.
This repository contains several packages:
-| Package | npm | size | cdn | doc |
-| ------------ | ------------------------ | ------------------------ | ----------------- | ----------------------------------- |
-| browser-logs | [![npm version][01]][02] | [![bundle size][03]][04] | [us][05] [eu][06] | [![API][1]][07] [![product][2]][08] |
-| browser-rum | [![npm version][11]][12] | [![bundle size][13]][14] | [us][15] [eu][16] | [![API][1]][17] [![product][2]][18] |
-| browser-core | [![npm version][21]][22] | [![bundle size][23]][24] | |
+| Package | npm | size | cdn | doc |
+| ------------ | ------------------------ | ------------------------ | ------------------ | ----------------------------------- |
+| browser-logs | [![npm version][01]][02] | [![bundle size][03]][04] | [datadog-logs][05] | [![API][1]][07] [![product][2]][08] |
+| browser-rum | [![npm version][11]][12] | [![bundle size][13]][14] | [datadog-rum][15] | [![API][1]][17] [![product][2]][18] |
+| browser-core | [![npm version][21]][22] | [![bundle size][23]][24] | |
[1]: https://github.githubassets.com/favicons/favicon.png
[2]: https://imgix.datadoghq.com/img/favicons/favicon-32x32.png
@@ -18,16 +18,14 @@ This repository contains several packages:
[02]: https://badge.fury.io/js/%40datadog%2Fbrowser-logs
[03]: https://badgen.net/bundlephobia/minzip/@datadog/browser-logs
[04]: https://bundlephobia.com/result?p=@datadog/browser-logs
-[05]: https://www.datadoghq-browser-agent.com/datadog-logs-us.js
-[06]: https://www.datadoghq-browser-agent.com/datadog-logs-eu.js
+[05]: https://www.datadoghq-browser-agent.com/datadog-logs.js
[07]: ./packages/logs/README.md
[08]: https://docs.datadoghq.com/logs/log_collection/javascript/?tab=npm
[11]: https://badge.fury.io/js/%40datadog%2Fbrowser-rum.svg
[12]: https://badge.fury.io/js/%40datadog%2Fbrowser-rum
[13]: https://badgen.net/bundlephobia/minzip/@datadog/browser-rum
[14]: https://bundlephobia.com/result?p=@datadog/browser-rum
-[15]: https://www.datadoghq-browser-agent.com/datadog-rum-us.js
-[16]: https://www.datadoghq-browser-agent.com/datadog-rum-eu.js
+[15]: https://www.datadoghq-browser-agent.com/datadog-rum.js
[17]: ./packages/rum/README.md
[18]: https://docs.datadoghq.com/real_user_monitoring/
[21]: https://badge.fury.io/js/%40datadog%2Fbrowser-core.svg
diff --git a/package.json b/package.json
index 1e9feff248..c890763140 100644
--- a/package.json
+++ b/package.json
@@ -14,7 +14,7 @@
"dev": "ENV=development node test/server/server.js",
"release": "lerna version --exact",
"version": "node ./scripts/generate-changelog.js",
- "publish:npm": "TARGET_DATACENTER=us TARGET_ENV=production BUILD_MODE=release yarn build && lerna publish from-package",
+ "publish:npm": "TARGET_DATACENTER=us BUILD_MODE=release yarn build && lerna publish from-package",
"fail": "./scripts/fail.sh",
"test": "yarn test:unit",
"test:unit": "karma start ./test/unit/karma.local.conf.js",
diff --git a/packages/core/src/configuration.ts b/packages/core/src/configuration.ts
index 2bcc5fa3d6..f4267df579 100644
--- a/packages/core/src/configuration.ts
+++ b/packages/core/src/configuration.ts
@@ -1,4 +1,4 @@
-import { BuildEnv, BuildMode, Datacenter, SdkEnv } from './init'
+import { BuildEnv, BuildMode, Datacenter, INTAKE_SITE } from './init'
import { includes, ONE_KILO_BYTE, ONE_SECOND } from './utils'
export const DEFAULT_CONFIGURATION = {
@@ -42,7 +42,8 @@ export interface UserConfiguration {
isCollectingError?: boolean
sampleRate?: number
resourceSampleRate?: number
- datacenter?: Datacenter
+ datacenter?: Datacenter // deprecated
+ site?: string
enableExperimentalFeatures?: string[]
silentMultipleInit?: boolean
trackInteractions?: boolean
@@ -87,8 +88,7 @@ interface ReplicaConfiguration {
interface TransportConfiguration {
clientToken: string
- datacenter: Datacenter
- sdkEnv: SdkEnv
+ site: string
buildMode: BuildMode
sdkVersion: string
applicationId?: string
@@ -104,12 +104,11 @@ export function buildConfiguration(userConfiguration: UserConfiguration, buildEn
applicationId: userConfiguration.applicationId,
buildMode: buildEnv.buildMode,
clientToken: userConfiguration.clientToken,
- datacenter: userConfiguration.datacenter || buildEnv.datacenter,
env: userConfiguration.env,
proxyHost: userConfiguration.proxyHost,
- sdkEnv: buildEnv.sdkEnv,
sdkVersion: buildEnv.sdkVersion,
service: userConfiguration.service,
+ site: userConfiguration.site || INTAKE_SITE[userConfiguration.datacenter || buildEnv.datacenter],
version: userConfiguration.version,
}
@@ -164,11 +163,11 @@ export function buildConfiguration(userConfiguration: UserConfiguration, buildEn
if (transportConfiguration.buildMode === BuildMode.STAGING) {
if (userConfiguration.replica !== undefined) {
- const replicaTransportConfiguration = {
+ const replicaTransportConfiguration: TransportConfiguration = {
...transportConfiguration,
applicationId: userConfiguration.replica.applicationId,
clientToken: userConfiguration.replica.clientToken,
- sdkEnv: SdkEnv.PRODUCTION,
+ site: INTAKE_SITE[Datacenter.US],
}
configuration.replica = {
applicationId: userConfiguration.replica.applicationId,
@@ -187,14 +186,12 @@ export function buildConfiguration(userConfiguration: UserConfiguration, buildEn
}
function getEndpoint(type: string, conf: TransportConfiguration, source?: string) {
- const tld = conf.datacenter === Datacenter.US ? 'com' : 'eu'
- const domain = conf.sdkEnv === SdkEnv.PRODUCTION ? `datadoghq.${tld}` : `datad0g.${tld}`
const tags =
`sdk_version:${conf.sdkVersion}` +
`${conf.env ? `,env:${conf.env}` : ''}` +
`${conf.service ? `,service:${conf.service}` : ''}` +
`${conf.version ? `,version:${conf.version}` : ''}`
- const datadogHost = `${type}-http-intake.logs.${domain}`
+ const datadogHost = `${type}-http-intake.logs.${conf.site}`
const host = conf.proxyHost ? conf.proxyHost : datadogHost
const proxyParameter = conf.proxyHost ? `ddhost=${datadogHost}&` : ''
const applicationIdParameter = conf.applicationId ? `_dd.application_id=${conf.applicationId}&` : ''
diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts
index edaf7fbdaa..6cb7e5661f 100644
--- a/packages/core/src/index.ts
+++ b/packages/core/src/index.ts
@@ -4,7 +4,6 @@ export {
BuildEnv,
BuildMode,
Datacenter,
- SdkEnv,
makeStub,
makeGlobal,
commonInit,
diff --git a/packages/core/src/init.ts b/packages/core/src/init.ts
index 0cd227aad3..0d89009bc2 100644
--- a/packages/core/src/init.ts
+++ b/packages/core/src/init.ts
@@ -26,10 +26,12 @@ export enum Datacenter {
US = 'us',
EU = 'eu',
}
-export enum SdkEnv {
- PRODUCTION = 'production',
- STAGING = 'staging',
+
+export const INTAKE_SITE = {
+ [Datacenter.EU]: 'datadoghq.eu',
+ [Datacenter.US]: 'datadoghq.com',
}
+
export enum BuildMode {
RELEASE = 'release',
STAGING = 'staging',
@@ -38,7 +40,6 @@ export enum BuildMode {
export interface BuildEnv {
datacenter: Datacenter
- sdkEnv: SdkEnv
buildMode: BuildMode
sdkVersion: string
}
diff --git a/packages/core/test/configuration.spec.ts b/packages/core/test/configuration.spec.ts
index 28a63c0ef2..f07574c61d 100644
--- a/packages/core/test/configuration.spec.ts
+++ b/packages/core/test/configuration.spec.ts
@@ -1,21 +1,20 @@
-import { BuildMode, Datacenter, SdkEnv } from '../src'
+import { BuildEnv, BuildMode, Datacenter } from '../src'
import { buildConfiguration } from '../src/configuration'
describe('configuration', () => {
const clientToken = 'some_client_token'
- const prodEnv = {
+ const usEnv: BuildEnv = {
buildMode: BuildMode.RELEASE,
datacenter: Datacenter.US,
- sdkEnv: SdkEnv.PRODUCTION,
sdkVersion: 'some_version',
}
describe('internal monitoring endpoint', () => {
it('should only be defined when api key is provided', () => {
- let configuration = buildConfiguration({ clientToken }, prodEnv)
+ let configuration = buildConfiguration({ clientToken }, usEnv)
expect(configuration.internalMonitoringEndpoint).toBeUndefined()
- configuration = buildConfiguration({ clientToken, internalMonitoringApiKey: clientToken }, prodEnv)
+ configuration = buildConfiguration({ clientToken, internalMonitoringApiKey: clientToken }, usEnv)
expect(configuration.internalMonitoringEndpoint).toContain(clientToken)
})
})
@@ -25,7 +24,7 @@ describe('configuration', () => {
const endpoint = 'bbbbbbbbbbbbbbb'
const configuration = buildConfiguration(
{ clientToken, rumEndpoint: endpoint, logsEndpoint: endpoint, internalMonitoringEndpoint: endpoint },
- prodEnv
+ usEnv
)
expect(configuration.rumEndpoint).not.toEqual(endpoint)
expect(configuration.logsEndpoint).not.toEqual(endpoint)
@@ -37,7 +36,6 @@ describe('configuration', () => {
const e2eEnv = {
buildMode: BuildMode.E2E_TEST,
datacenter: Datacenter.US,
- sdkEnv: SdkEnv.STAGING,
sdkVersion: 'some_version',
}
const configuration = buildConfiguration(
@@ -52,31 +50,36 @@ describe('configuration', () => {
describe('isCollectingError', () => {
it('should be enabled by default', () => {
- const configuration = buildConfiguration({ clientToken }, prodEnv)
+ const configuration = buildConfiguration({ clientToken }, usEnv)
expect(configuration.isCollectingError).toEqual(true)
})
it('should be disabled when defined to false', () => {
- const configuration = buildConfiguration({ clientToken, isCollectingError: false }, prodEnv)
+ const configuration = buildConfiguration({ clientToken, isCollectingError: false }, usEnv)
expect(configuration.isCollectingError).toEqual(false)
})
})
- describe('datacenter', () => {
+ describe('site', () => {
it('should use buildEnv value by default', () => {
- const configuration = buildConfiguration({ clientToken }, prodEnv)
+ const configuration = buildConfiguration({ clientToken }, usEnv)
expect(configuration.rumEndpoint).toContain('datadoghq.com')
})
- it('should use user value when set', () => {
- const configuration = buildConfiguration({ clientToken, datacenter: Datacenter.EU }, prodEnv)
+ it('should use datacenter value when set', () => {
+ const configuration = buildConfiguration({ clientToken, datacenter: Datacenter.EU }, usEnv)
expect(configuration.rumEndpoint).toContain('datadoghq.eu')
})
+
+ it('should use site value when set', () => {
+ const configuration = buildConfiguration({ clientToken, datacenter: Datacenter.EU, site: 'foo.com' }, usEnv)
+ expect(configuration.rumEndpoint).toContain('foo.com')
+ })
})
describe('proxyHost', () => {
it('should replace endpoint host add set it as a query parameter', () => {
- const configuration = buildConfiguration({ clientToken, proxyHost: 'proxy.io' }, prodEnv)
+ const configuration = buildConfiguration({ clientToken, proxyHost: 'proxy.io' }, usEnv)
expect(configuration.rumEndpoint).toMatch(/^https:\/\/proxy\.io\//)
expect(configuration.rumEndpoint).toContain('?ddhost=rum-http-intake.logs.datadoghq.com&')
})
@@ -84,8 +87,8 @@ describe('configuration', () => {
describe('sdk_version, env, version and service', () => {
it('should not modify the logs and rum endpoints tags when not defined', () => {
- const configuration = buildConfiguration({ clientToken }, prodEnv)
- expect(configuration.rumEndpoint).toContain(`&ddtags=sdk_version:${prodEnv.sdkVersion}`)
+ const configuration = buildConfiguration({ clientToken }, usEnv)
+ expect(configuration.rumEndpoint).toContain(`&ddtags=sdk_version:${usEnv.sdkVersion}`)
expect(configuration.rumEndpoint).not.toContain(',env:')
expect(configuration.rumEndpoint).not.toContain(',service:')
@@ -96,12 +99,12 @@ describe('configuration', () => {
})
it('should be set as tags in the logs and rum endpoints', () => {
- const configuration = buildConfiguration({ clientToken, env: 'foo', service: 'bar', version: 'baz' }, prodEnv)
+ const configuration = buildConfiguration({ clientToken, env: 'foo', service: 'bar', version: 'baz' }, usEnv)
expect(configuration.rumEndpoint).toContain(
- `&ddtags=sdk_version:${prodEnv.sdkVersion},env:foo,service:bar,version:baz`
+ `&ddtags=sdk_version:${usEnv.sdkVersion},env:foo,service:bar,version:baz`
)
expect(configuration.logsEndpoint).toContain(
- `&ddtags=sdk_version:${prodEnv.sdkVersion},env:foo,service:bar,version:baz`
+ `&ddtags=sdk_version:${usEnv.sdkVersion},env:foo,service:bar,version:baz`
)
})
})
diff --git a/packages/logs/README.md b/packages/logs/README.md
index c0af6a62fa..760ae431e3 100644
--- a/packages/logs/README.md
+++ b/packages/logs/README.md
@@ -9,10 +9,10 @@ Datadog browser logs library.
### NPM
```
-import { Datacenter, datadogLogs } from '@datadog/browser-logs'
+import { datadogLogs } from '@datadog/browser-logs'
datadogLogs.init({
clientToken: 'XXX',
- datacenter: Datacenter.US,
+ site: 'datadoghq.com',
forwardErrorsToLogs: true,
sampleRate: 100
})
@@ -21,11 +21,11 @@ datadogLogs.init({
### Bundle
```
-
+
-
+