diff --git a/plugins/analytics-module-new-relic/.eslintrc.js b/plugins/analytics-module-newrelic-browser/.eslintrc.js similarity index 100% rename from plugins/analytics-module-new-relic/.eslintrc.js rename to plugins/analytics-module-newrelic-browser/.eslintrc.js diff --git a/plugins/analytics-module-new-relic/README.md b/plugins/analytics-module-newrelic-browser/README.md similarity index 100% rename from plugins/analytics-module-new-relic/README.md rename to plugins/analytics-module-newrelic-browser/README.md diff --git a/plugins/analytics-module-new-relic/api-report.md b/plugins/analytics-module-newrelic-browser/api-report.md similarity index 100% rename from plugins/analytics-module-new-relic/api-report.md rename to plugins/analytics-module-newrelic-browser/api-report.md diff --git a/plugins/analytics-module-new-relic/config.d.ts b/plugins/analytics-module-newrelic-browser/config.d.ts similarity index 100% rename from plugins/analytics-module-new-relic/config.d.ts rename to plugins/analytics-module-newrelic-browser/config.d.ts diff --git a/plugins/analytics-module-new-relic/dev/Playground.tsx b/plugins/analytics-module-newrelic-browser/dev/Playground.tsx similarity index 100% rename from plugins/analytics-module-new-relic/dev/Playground.tsx rename to plugins/analytics-module-newrelic-browser/dev/Playground.tsx diff --git a/plugins/analytics-module-new-relic/dev/index.tsx b/plugins/analytics-module-newrelic-browser/dev/index.tsx similarity index 100% rename from plugins/analytics-module-new-relic/dev/index.tsx rename to plugins/analytics-module-newrelic-browser/dev/index.tsx diff --git a/plugins/analytics-module-new-relic/package.json b/plugins/analytics-module-newrelic-browser/package.json similarity index 100% rename from plugins/analytics-module-new-relic/package.json rename to plugins/analytics-module-newrelic-browser/package.json diff --git a/plugins/analytics-module-new-relic/src/apis/implementations/AnalyticsApi/NewRelicBrowser.ts b/plugins/analytics-module-newrelic-browser/src/apis/implementations/AnalyticsApi/NewRelicBrowser.ts similarity index 76% rename from plugins/analytics-module-new-relic/src/apis/implementations/AnalyticsApi/NewRelicBrowser.ts rename to plugins/analytics-module-newrelic-browser/src/apis/implementations/AnalyticsApi/NewRelicBrowser.ts index 35be8cc8a0..d2c46d1394 100644 --- a/plugins/analytics-module-new-relic/src/apis/implementations/AnalyticsApi/NewRelicBrowser.ts +++ b/plugins/analytics-module-newrelic-browser/src/apis/implementations/AnalyticsApi/NewRelicBrowser.ts @@ -107,7 +107,36 @@ export class NewRelicBrowser implements AnalyticsApi { } captureEvent(event: AnalyticsEvent) { - const { action, ...rest } = event; - this.agent.addPageAction(action, rest); + const { context, action, subject, value, attributes } = event; + if (action === 'navigate' && context.extension === 'App') { + const interaction = this.agent.interaction(); + interaction.setName(subject); + Object.keys(context).forEach(key => { + if (context[key]) { + interaction.setAttribute(`context.${key}`, context[key]); + } + }); + if (attributes) { + Object.keys(attributes).forEach(key => { + interaction.setAttribute(`attributes.${key}`, attributes[key]); + }); + } + } else { + const customAttributes: { + [x: string]: string | number | boolean | undefined; + } = {}; + Object.keys(context).forEach(key => { + if (context[key]) { + customAttributes[`context.${key}`] = context[key]; + } + }); + if (attributes) { + Object.keys(attributes).forEach(key => { + customAttributes[`attributes.${key}`] = attributes[key]; + }); + } + + this.agent.addPageAction(action, customAttributes); + } } } diff --git a/plugins/analytics-module-new-relic/src/apis/implementations/AnalyticsApi/index.ts b/plugins/analytics-module-newrelic-browser/src/apis/implementations/AnalyticsApi/index.ts similarity index 100% rename from plugins/analytics-module-new-relic/src/apis/implementations/AnalyticsApi/index.ts rename to plugins/analytics-module-newrelic-browser/src/apis/implementations/AnalyticsApi/index.ts diff --git a/plugins/analytics-module-new-relic/src/index.ts b/plugins/analytics-module-newrelic-browser/src/index.ts similarity index 100% rename from plugins/analytics-module-new-relic/src/index.ts rename to plugins/analytics-module-newrelic-browser/src/index.ts diff --git a/plugins/analytics-module-new-relic/src/setupTests.ts b/plugins/analytics-module-newrelic-browser/src/setupTests.ts similarity index 100% rename from plugins/analytics-module-new-relic/src/setupTests.ts rename to plugins/analytics-module-newrelic-browser/src/setupTests.ts diff --git a/yarn.lock b/yarn.lock index 89a006567c..c081af575d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4794,9 +4794,9 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-analytics-module-newrelic-browser@workspace:plugins/analytics-module-new-relic": +"@backstage/plugin-analytics-module-newrelic-browser@workspace:plugins/analytics-module-newrelic-browser": version: 0.0.0-use.local - resolution: "@backstage/plugin-analytics-module-newrelic-browser@workspace:plugins/analytics-module-new-relic" + resolution: "@backstage/plugin-analytics-module-newrelic-browser@workspace:plugins/analytics-module-newrelic-browser" dependencies: "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^"