diff --git a/docs/portal_config.md b/docs/portal_config.md index e2e7155eb..7ab0d9028 100644 --- a/docs/portal_config.md +++ b/docs/portal_config.md @@ -16,7 +16,7 @@ Below is an example, with inline comments describing what each JSON block config "ddSampleRate": 100, // optional; numeric; the Datadog RUM option specifying the percentage of sessions to track: 100 for all, 0 for none. Default to 100 if omitted "grafanaFaroConfig": { "grafanaFaroEnable": true, // optional; flag to turn on Grafana Faro RUM, default to false - "grafanaFaroEnv": "DEV", // optional; the Grafana Faro RUM option specifying the application’s environment, for example: prod, pre-prod, staging, etc. Can be determined automatically if omitted. But it is highly recommended to customize it to include project information, such as 'healprod' + "grafanaFaroNamespace": "DEV", // optional; the Grafana Faro RUM option specifying the application’s namespace, for example: prod, pre-prod, staging, etc. Can be determined automatically if omitted. But it is highly recommended to customize it to include project information, such as 'healprod' "grafanaFaroUrl": "", // optional: the Grafana Faro collector url. Defaults to https://faro.planx-pla.net/collect "grafanaFaroSampleRate": 1, // optional; numeric; the Grafana Faro option specifying the percentage of sessions to track: 1 for all, 0 for none. Default to 1 if omitted }, diff --git a/src/covid19Index.jsx b/src/covid19Index.jsx index 69b4e7207..b7c0b1bab 100644 --- a/src/covid19Index.jsx +++ b/src/covid19Index.jsx @@ -55,7 +55,7 @@ import { basename, gaTrackingId, workspaceUrl, workspaceErrorUrl, indexPublic, explorerPublic, enableResourceBrowser, resourceBrowserPublic, enableDAPTracker, discoveryConfig, ddApplicationId, ddClientToken, ddEnv, ddUrl, ddSampleRate, knownBotRegex, - userAccessToSite, grafanaFaroConfig, + userAccessToSite, grafanaFaroConfig, hostnameWithSubdomain, } from './localconf'; import { portalVersion } from './versions'; import { components } from './params'; @@ -115,7 +115,8 @@ async function init() { app: { name: 'portal', version: portalVersion, - environment: grafanaFaroConfig.grafanaFaroEnv, + namespace: grafanaFaroConfig.grafanaFaroNamespace, + environment: hostnameWithSubdomain, }, instrumentations: [ ...getWebInstrumentations(), diff --git a/src/ecosystemIndex.jsx b/src/ecosystemIndex.jsx index 8a2a96299..c55a175af 100644 --- a/src/ecosystemIndex.jsx +++ b/src/ecosystemIndex.jsx @@ -51,7 +51,7 @@ import { basename, gaTrackingId, workspaceUrl, workspaceErrorUrl, Error403Url, explorerPublic, enableResourceBrowser, resourceBrowserPublic, enableDAPTracker, discoveryConfig, ddApplicationId, ddClientToken, ddEnv, ddUrl, ddSampleRate, knownBotRegex, - userAccessToSite, grafanaFaroConfig, + userAccessToSite, grafanaFaroConfig, hostnameWithSubdomain, } from './localconf'; import { portalVersion } from './versions'; import Analysis from './Analysis/Analysis'; @@ -118,7 +118,8 @@ async function init() { app: { name: 'portal', version: portalVersion, - environment: grafanaFaroConfig.grafanaFaroEnv, + namespace: grafanaFaroConfig.grafanaFaroNamespace, + environment: hostnameWithSubdomain, }, instrumentations: [ ...getWebInstrumentations(), diff --git a/src/index.ejs b/src/index.ejs index 66d8402d0..71c073c7b 100644 --- a/src/index.ejs +++ b/src/index.ejs @@ -12,7 +12,7 @@ - https://dap.digitalgov.gov will be inserted by htmlWebpackPlugin if env is configured with DAPTrackingURL. This hostname is needed for fetching and executing the DAP tracking script - https://*.quicksight.aws.amazon.com for loading AWS Quicksight dashboards into COVID-19 Home page --> - + diff --git a/src/index.jsx b/src/index.jsx index a692c5460..50ae6cfb0 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -53,7 +53,7 @@ import { basename, gaTrackingId, workspaceUrl, workspaceErrorUrl, Error403Url, indexPublic, explorerPublic, enableResourceBrowser, resourceBrowserPublic, enableDAPTracker, discoveryConfig, commonsWideAltText, ddApplicationId, ddClientToken, ddEnv, ddUrl, ddSampleRate, knownBotRegex, - userAccessToSite, grafanaFaroConfig, + userAccessToSite, grafanaFaroConfig, hostnameWithSubdomain, } from './localconf'; import { portalVersion } from './versions'; import Analysis from './Analysis/Analysis'; @@ -118,7 +118,8 @@ async function init() { app: { name: 'portal', version: portalVersion, - environment: grafanaFaroConfig.grafanaFaroEnv, + namespace: grafanaFaroConfig.grafanaFaroNamespace, + environment: hostnameWithSubdomain, }, instrumentations: [ ...getWebInstrumentations(), diff --git a/src/localconf.js b/src/localconf.js index 2108127f9..65cdce9ab 100644 --- a/src/localconf.js +++ b/src/localconf.js @@ -169,12 +169,12 @@ function buildConfig(opts) { if (!grafanaFaroConfig.grafanaFaroUrl) { grafanaFaroConfig.grafanaFaroUrl = 'https://faro.planx-pla.net/collect'; } - if (!grafanaFaroConfig.grafanaFaroEnv) { - grafanaFaroConfig.grafanaFaroEnv = 'PROD'; + if (!grafanaFaroConfig.grafanaFaroNamespace) { + grafanaFaroConfig.grafanaFaroNamespace = 'PROD'; if (hostnameOnly.includes('qa-')) { - grafanaFaroConfig.grafanaFaroEnv = 'QA'; + grafanaFaroConfig.grafanaFaroNamespace = 'QA'; } else if (hostnameOnly.endsWith('.planx-pla.net')) { - grafanaFaroConfig.grafanaFaroEnv = 'DEV'; + grafanaFaroConfig.grafanaFaroNamespace = 'DEV'; } } if (!grafanaFaroConfig.grafanaFaroSampleRate) { diff --git a/src/nctIndex.jsx b/src/nctIndex.jsx index f1bb2e07e..f151b6cc1 100644 --- a/src/nctIndex.jsx +++ b/src/nctIndex.jsx @@ -66,7 +66,7 @@ import { basename, gaTrackingId, workspaceUrl, workspaceErrorUrl, indexPublic, explorerPublic, enableResourceBrowser, resourceBrowserPublic, enableDAPTracker, discoveryConfig, ddApplicationId, ddClientToken, ddEnv, ddUrl, ddSampleRate, knownBotRegex, - userAccessToSite, grafanaFaroConfig, + userAccessToSite, grafanaFaroConfig, hostnameWithSubdomain, } from './localconf'; import { portalVersion } from './versions'; import Analysis from './Analysis/Analysis'; @@ -131,7 +131,8 @@ async function init() { app: { name: 'portal', version: portalVersion, - environment: grafanaFaroConfig.grafanaFaroEnv, + namespace: grafanaFaroConfig.grafanaFaroNamespace, + environment: hostnameWithSubdomain, }, instrumentations: [ ...getWebInstrumentations(), diff --git a/src/workspaceIndex.jsx b/src/workspaceIndex.jsx index 6869e7da4..69a240e87 100644 --- a/src/workspaceIndex.jsx +++ b/src/workspaceIndex.jsx @@ -37,7 +37,7 @@ import { ReduxNavBar, ReduxTopBar, ReduxFooter } from './Layout/reduxer'; import { basename, gaTrackingId, workspaceUrl, workspaceErrorUrl, enableDAPTracker, ddApplicationId, ddClientToken, ddEnv, ddUrl, ddSampleRate, knownBotRegex, - grafanaFaroConfig, + grafanaFaroConfig, hostnameWithSubdomain, } from './localconf'; import { portalVersion } from './versions'; import { components } from './params'; @@ -92,7 +92,8 @@ async function init() { app: { name: 'portal', version: portalVersion, - environment: grafanaFaroConfig.grafanaFaroEnv, + namespace: grafanaFaroConfig.grafanaFaroNamespace, + environment: hostnameWithSubdomain, }, instrumentations: [ ...getWebInstrumentations(), diff --git a/webpack.config.js b/webpack.config.js index b51a03241..a0b6d1306 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -43,6 +43,13 @@ if (process.env.DATADOG_APPLICATION_ID && process.env.DATADOG_CLIENT_TOKEN) { connectSrcURLs.push('https://*.logs.datadoghq.com'); connectSrcURLs.push('https://*.browser-intake-ddog-gov.com'); } +if (configFile.grafanaFaroConfig?.grafanaFaroEnable) { + if (configFile.grafanaFaroConfig?.grafanaFaroUrl) { + connectSrcURLs.push(configFile.grafanaFaroConfig.grafanaFaroUrl); + } else { + connectSrcURLs.push('https://faro.planx-pla.net'); + } +} if (process.env.MAPBOX_API_TOKEN) { connectSrcURLs.push('https://*.tiles.mapbox.com'); connectSrcURLs.push('https://api.mapbox.com');