From a15482bb63df5a00e0e2669e967b060351b44dea Mon Sep 17 00:00:00 2001 From: rdbsolutions Date: Fri, 13 Sep 2024 11:03:35 +0100 Subject: [PATCH] implement application insights --- .env.local | 41 ++++++++++++++++++++++------------ components/azureappinsights.js | 33 +++++++++++++++++++++++++++ package.json | 2 ++ pages/_app.js | 5 ++++- pages/_document.js | 6 ++--- 5 files changed, 69 insertions(+), 18 deletions(-) create mode 100644 components/azureappinsights.js diff --git a/.env.local b/.env.local index 67f37565..0851a106 100644 --- a/.env.local +++ b/.env.local @@ -20,20 +20,20 @@ RELAYPATH = "dev-pedw-hc" //Test Oauth ESNR -//CLIENT_ID = d40b9373-96c2-4b04-8bd8-c2a2fe6444c1 -//CLIENT_SECRET = IXI8Q~D5oqsC-nrtayHHc~tUAfjQFzNiKVQ~fc2S -//RELAY_ROOT = https://test-pedw-ns.servicebus.windows.net/test-pedw-hc/ -//RELAYURI = "test-pedw-ns.servicebus.windows.net" -//RELAYPATH = "test-pedw-hc" +CLIENT_ID = d40b9373-96c2-4b04-8bd8-c2a2fe6444c1 +CLIENT_SECRET = IXI8Q~D5oqsC-nrtayHHc~tUAfjQFzNiKVQ~fc2S +RELAY_ROOT = https://test-pedw-ns.servicebus.windows.net/test-pedw-hc/ +RELAYURI = "test-pedw-ns.servicebus.windows.net" +RELAYPATH = "test-pedw-hc" //Preprod Oauth WGO -//CLIENT_ID = ab6c4678-b31a-4eb3-b429-e039120e488a +CLIENT_ID = ab6c4678-b31a-4eb3-b429-e039120e488a ////CLIENT_SECRET = Ioo7Q~RJfhWsE45wPsuHm1CzRk1SppnNN3lZF -//CLIENT_SECRET = V288Q~P1lFMvvX9Xnkx2pLixK~GOREH983Owqc1E -//RELAY_ROOT = https://pp-pedw-ns.servicebus.windows.net/pp-pedw-hc/ -//RELAYURI = "pp-pedw-ns.servicebus.windows.net" -//RELAYPATH = "pp-pedw-hc" +CLIENT_SECRET = V288Q~P1lFMvvX9Xnkx2pLixK~GOREH983Owqc1E +RELAY_ROOT = https://pp-pedw-ns.servicebus.windows.net/pp-pedw-hc/ +RELAYURI = "pp-pedw-ns.servicebus.windows.net" +RELAYPATH = "pp-pedw-hc" @@ -110,9 +110,9 @@ AZURE_PEDW_STORAGE_ENDPOINT = https://pedwdev.blob.core.windows.net // preprod key -//AZURE_STORAGE_ACCOUNT_NAME = "pedwpp" -//AZURE_STORAGE_ACCOUNT_KEY = koZ46STRqapSa2Dod8MLL6aju1eYLhhyJ6DXpCLMTnFLJvbDT6CHUv/jwr5U/Ta8a60MWzwToHQy+AStADO7sg== -//AZURE_PEDW_STORAGE_ENDPOINT = https://pedwpp.blob.core.windows.net +AZURE_STORAGE_ACCOUNT_NAME = "pedwpp" +AZURE_STORAGE_ACCOUNT_KEY = koZ46STRqapSa2Dod8MLL6aju1eYLhhyJ6DXpCLMTnFLJvbDT6CHUv/jwr5U/Ta8a60MWzwToHQy+AStADO7sg== +AZURE_PEDW_STORAGE_ENDPOINT = https://pedwpp.blob.core.windows.net // PROD key @@ -153,4 +153,17 @@ NOTIFY_API_KEY = pedwnextauthkey-90f93710-9dae-423e-aea1-11eccd0dc132-0c9469d9-d # DATABASE_URL='sqlserver://pp-pedw-sql.database.windows.net:1433;database=PEDWPreProd;user=pp-pedw-ukw;password=jscw4+896w9YaiXruOA3mtpNkio1oUZxBZcFJ9Awdz4=;encrypt=true;trustservercertificate=false;hostnameincertificate=*.database.windows.net;logintimeout=30;authentication=SqlPassword' -SHOW_DEBUG = true \ No newline at end of file +SHOW_DEBUG = true + + +// DEV Connection string +//NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=4b7568b3-70bd-4591-9dc2-267c0a6501d1;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=447d38b5-5d40-4238-8fb3-0ef4741b3db1 + +// Test Connection string +//NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=cc60e8e7-5b30-4c2b-a176-8b96b21b12df;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=2a4094be-6fd1-46ab-a67d-5f241692b129 + +// Preprod Connection string +NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=7370f0f9-834d-4c7a-b3c4-9951fcad5ad2;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=04362cb7-6dfc-469e-8274-12243e8be851 + +// Prod Connection string +//NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=61f358c2-8075-4164-b897-17bc6dd31fee;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=0c297349-396b-4dc6-8b56-85f5c680adc6 \ No newline at end of file diff --git a/components/azureappinsights.js b/components/azureappinsights.js new file mode 100644 index 00000000..769130f1 --- /dev/null +++ b/components/azureappinsights.js @@ -0,0 +1,33 @@ +import React from "react"; +import { ApplicationInsights } from "@microsoft/applicationinsights-web"; +import { + ReactPlugin, + withAITracking, + AppInsightsContext, +} from "@microsoft/applicationinsights-react-js"; + +let reactPlugin = new ReactPlugin(); +let appInsights = new ApplicationInsights({ + config: { + connectionString: process.env.NEXT_PUBLIC_APP_INSIGHT, + enableAutoRouteTracking: true, + enableCorsCorrelation: true, + enableRequestHeaderTracking: true, + enableResponseHeaderTracking: true, + enableAjaxPerfTracking: true, + isBrowserLinkTrackingEnabled: true, + extensions: [reactPlugin], + }, +}); + +appInsights.loadAppInsights(); + +const AzureAppInsights = ({ children }) => { + return ( + + {children} + + ); +}; + +export default withAITracking(reactPlugin, AzureAppInsights); diff --git a/package.json b/package.json index 18dd3540..95e7e2b1 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,8 @@ "@azure/identity": "^4.0.0", "@azure/storage-blob": "^12.17.0", "@azure/storage-queue": "^12.16.0", + "@microsoft/applicationinsights-react-js": "^17.3.2", + "@microsoft/applicationinsights-web": "^3.3.2", "@next-auth/prisma-adapter": "^1.0.7", "@next/third-parties": "latest", "@prisma/client": "^5.7.0", diff --git a/pages/_app.js b/pages/_app.js index 51a446d4..516a6624 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -8,6 +8,7 @@ import { PersistGate } from "redux-persist/integration/react"; import { SessionProvider as AuthProvider } from "next-auth/react"; import { Tracking } from "../components/tracking"; import { GoogleAnalytics } from "@next/third-parties/google"; +import Azureappinsights from "../components/azureappinsights"; const MyApp = ({ Component, pageProps: { session, ...pageProps } }) => { const store = useStore((state) => state); const persistor = persistStore(store, {}, function () { @@ -21,7 +22,9 @@ const MyApp = ({ Component, pageProps: { session, ...pageProps } }) => { persistor={store.__persistor} loading={} > - + + + diff --git a/pages/_document.js b/pages/_document.js index 6c730f76..1bb4bb06 100644 --- a/pages/_document.js +++ b/pages/_document.js @@ -42,10 +42,10 @@ class MyDocument extends Document { csp += `form-action 'self' ` + process.env.NEXTAUTH_URL + ` ;`; csp += `object-src 'self' data:;`; csp += `default-src 'self' https://www.google-analytics.com;`; - csp += `connect-src 'self' https://region1.google-analytics.com;`; - csp += `script-src 'self' 'unsafe-eval' 'unsafe-inline' https://region1.google-analytics.com https://www.google-analytics.com/ https://tagmanager.google.com/ https://www.googletagmanager.com/;`; + csp += `connect-src 'self' https://ukwest-0.in.applicationinsights.azure.com https://js.monitor.azure.com https://region1.google-analytics.com;`; + csp += `script-src 'self' 'unsafe-eval' 'unsafe-inline' https://ukwest-0.in.applicationinsights.azure.com https://region1.google-analytics.com https://www.google-analytics.com/ https://tagmanager.google.com/ https://www.googletagmanager.com/;`; csp += `style-src 'self' 'unsafe-inline' https://pro.fontawesome.com/ https://www.google-analytics.com https://tagmanager.google.com/ https://www.googletagmanager.com/ https://fonts.googleapis.com/;`; - csp += `img-src 'self' 'unsafe-inline' https://fonts.gstatic.com https://www.googletagmanager.com https://www.google-analytics.com https://ssl.gstatic.com/ data:;`; + csp += `img-src 'self' 'unsafe-inline' https://www.gov.wales https://gov.wales https://fonts.gstatic.com https://www.googletagmanager.com https://www.google-analytics.com https://ssl.gstatic.com/ data:;`; csp += `font-src 'self' 'unsafe-inline' https://pro.fontawesome.com/ https://fonts.gstatic.com/ data:;`; return (