diff --git a/src/frontend/package.json b/src/frontend/package.json index 09fd21e2b9..eaaf07c985 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -7,11 +7,12 @@ "build": "next build", "start": "node --require ./Instrumentation.js server.js", "lint": "next lint", + "tsc": "tsc", "cy:open": "cypress open", "grpc:generate": "mkdir -p ./protos && protoc -I ./pb --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_opt=esModuleInterop=true --ts_proto_out=./protos --ts_proto_opt=outputServices=grpc-js demo.proto" }, "dependencies": { - "@convivainc/conviva-js-appanalytics": "^0.4.6", + "@convivainc/conviva-js-appanalytics": "^0.6.7", "@grpc/grpc-js": "1.9.13", "@opentelemetry/api": "1.7.0", "@opentelemetry/auto-instrumentations-node": "0.40.2", @@ -59,6 +60,6 @@ "eslint-plugin-react": "7.33.2", "eslint-plugin-react-hooks": "4.6.0", "openapi-typescript": "6.7.1", - "typescript": "5.2.2" + "typescript": "^5.4.5" } } diff --git a/src/frontend/pages/_app.tsx b/src/frontend/pages/_app.tsx index af05b92254..8e792e6c91 100755 --- a/src/frontend/pages/_app.tsx +++ b/src/frontend/pages/_app.tsx @@ -48,7 +48,7 @@ function MyApp({ Component, pageProps }: AppProps) { }, [loggedIn, router, router.route]); useEffect(() => { - if (loggedIn) { + if (loggedIn && userId) { console.log('Setting User ID', userId); setConvivaUserId(userId); } diff --git a/src/frontend/utils/telemetry/SessionIdProcessor.ts b/src/frontend/utils/telemetry/SessionIdProcessor.ts index f38bcd4fbf..489dfd2957 100644 --- a/src/frontend/utils/telemetry/SessionIdProcessor.ts +++ b/src/frontend/utils/telemetry/SessionIdProcessor.ts @@ -14,7 +14,9 @@ export class SessionIdProcessor implements SpanProcessor { // eslint-disable-next-line @typescript-eslint/no-unused-vars onStart(span: Span, parentContext: Context): void { const { userId } = SessionGateway.getSession(); - span.setAttribute(AttributeNames.SESSION_ID, userId); + if (userId) { + span.setAttribute(AttributeNames.SESSION_ID, userId); + } } // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function diff --git a/src/frontend/utils/telemetry/conviva.ts b/src/frontend/utils/telemetry/conviva.ts index a00fbadfeb..516eb2a925 100644 --- a/src/frontend/utils/telemetry/conviva.ts +++ b/src/frontend/utils/telemetry/conviva.ts @@ -3,7 +3,10 @@ import { trackPageView, trackCustomEvent, setUserId, + type TrackerConfiguration, } from "@convivainc/conviva-js-appanalytics"; +import type { PageViewEvent } from "@convivainc/browser-tracker-core"; +import type { CustomEvent } from "@convivainc/tracker-core"; import { PerformanceTimingPlugin } from "@convivainc/conviva-js-appanalytics-performance-timing"; import { ErrorTrackingPlugin, @@ -16,8 +19,9 @@ import { } from "@convivainc/conviva-js-appanalytics-click-tracking"; export function initConviva() { - convivaAppTracker({ + const convivaAppConfig: TrackerConfiguration = { appId: "Open Telemetry Demo", + appVersion: "0.1.2", //convivaCustomerKey: "4d2f03dddf417990f520f09d79b11ab014c39dab", // c3.Internal-Data-Generator convivaCustomerKey: "9430dfc5cca804f2f306f9e257722eeb87fcd1e7", // c3.Demo-CustomerSite // convivaCustomerKey: "af65934b0b34dd0b9a740f85f79b4b9d9f013a65", // c3.Customer-Demo @@ -29,7 +33,8 @@ export function initConviva() { ErrorTrackingPlugin(), LinkClickTrackingPlugin(), ], - }); + } + convivaAppTracker(convivaAppConfig); enableLinkClickTracking(); // Tracks all link clicks on the page enableButtonClickTracking(); @@ -41,15 +46,19 @@ export function setConvivaUserId(userId: string) { } export function trackConvivaPage(pageTitle?: string) { - trackPageView({ title: pageTitle }); + const pageViewEvent: PageViewEvent = { + title: pageTitle || null + }; + trackPageView(pageViewEvent); } type ConvivaCustomEventData = { [key: string]: string } export function trackConvivaEvent(eventName: string, eventData?: ConvivaCustomEventData) { - trackCustomEvent({ + const customEvent: CustomEvent = { name: eventName, data: eventData, - }); + } + trackCustomEvent(customEvent); }