From 87485e24a446fb3cae89b0fc7d001466c56a82d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Thu, 5 Dec 2019 11:51:38 +0100 Subject: [PATCH] MetaAnalytics: Minor fix for meta analytics event (#20888) * Minor fix for meta analytics event * Fixed dashboardSrv issue * Added timeSinceNavigationStart --- packages/grafana-runtime/src/services/EchoSrv.ts | 7 +++++++ public/app/core/services/echo/Echo.ts | 3 ++- public/app/features/dashboard/services/DashboardSrv.ts | 3 --- public/app/features/dashboard/state/analyticsProcessor.ts | 5 ++--- public/app/routes/GrafanaCtrl.ts | 4 ++++ 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/grafana-runtime/src/services/EchoSrv.ts b/packages/grafana-runtime/src/services/EchoSrv.ts index 6c5b30a83d6..2fcf729b781 100644 --- a/packages/grafana-runtime/src/services/EchoSrv.ts +++ b/packages/grafana-runtime/src/services/EchoSrv.ts @@ -15,7 +15,14 @@ export interface EchoMeta { userLogin: string; userId: number; userSignedIn: boolean; + /** + * A millisecond epoch + */ ts: number; + /** + * A highres timestamp since navigation start + */ + timeSinceNavigationStart: number; } export interface EchoBackend { diff --git a/public/app/core/services/echo/Echo.ts b/public/app/core/services/echo/Echo.ts index e844bb5d0be..637ae8986d3 100644 --- a/public/app/core/services/echo/Echo.ts +++ b/public/app/core/services/echo/Echo.ts @@ -82,7 +82,8 @@ export class Echo implements EchoSrv { height: window.screen.height, }, userAgent: window.navigator.userAgent, - ts: performance.now(), + ts: new Date().getTime(), + timeSinceNavigationStart: performance.now(), url: window.location.href, }; }; diff --git a/public/app/features/dashboard/services/DashboardSrv.ts b/public/app/features/dashboard/services/DashboardSrv.ts index 41275533424..bebcd1aac13 100644 --- a/public/app/features/dashboard/services/DashboardSrv.ts +++ b/public/app/features/dashboard/services/DashboardSrv.ts @@ -29,9 +29,6 @@ export class DashboardSrv { appEvents.on(CoreEvents.saveDashboard, this.saveDashboard.bind(this), $rootScope); appEvents.on(PanelEvents.panelChangeView, this.onPanelChangeView); appEvents.on(CoreEvents.removePanel, this.onRemovePanel); - - // Export to react - setDashboardSrv(this); } create(dashboard: any, meta: DashboardMeta) { diff --git a/public/app/features/dashboard/state/analyticsProcessor.ts b/public/app/features/dashboard/state/analyticsProcessor.ts index 8be85693964..47b013c29af 100644 --- a/public/app/features/dashboard/state/analyticsProcessor.ts +++ b/public/app/features/dashboard/state/analyticsProcessor.ts @@ -22,7 +22,6 @@ export function getAnalyticsProcessor(datasource: DataSourceApi) { panelId: data.request.panelId, dashboardId: data.request.dashboardId, // app: 'dashboard', - // count: 1, dataSize: 0, duration: data.request.endTime - data.request.startTime, eventName: 'data-request', @@ -38,9 +37,9 @@ export function getAnalyticsProcessor(datasource: DataSourceApi) { eventData.folderName = dashboard.meta.folderTitle; } - if (data.series.length > 0) { + if (data.series && data.series.length > 0) { // estimate size - eventData.dataSize = data.series.length * data.series[0].length; + eventData.dataSize = data.series.length; } if (data.error) { diff --git a/public/app/routes/GrafanaCtrl.ts b/public/app/routes/GrafanaCtrl.ts index 2df8dab54e5..5d028d7d1e7 100644 --- a/public/app/routes/GrafanaCtrl.ts +++ b/public/app/routes/GrafanaCtrl.ts @@ -27,6 +27,7 @@ import { UtilSrv } from 'app/core/services/util_srv'; import { ContextSrv } from 'app/core/services/context_srv'; import { BridgeSrv } from 'app/core/services/bridge_srv'; import { PlaylistSrv } from 'app/features/playlist/playlist_srv'; +import { DashboardSrv, setDashboardSrv } from 'app/features/dashboard/services/DashboardSrv'; import { ILocationService, ITimeoutService, IRootScopeService, IAngularEvent } from 'angular'; import { AppEvent, AppEvents } from '@grafana/data'; @@ -45,6 +46,7 @@ export class GrafanaCtrl { linkSrv: LinkSrv, datasourceSrv: DatasourceSrv, keybindingSrv: KeybindingSrv, + dashboardSrv: DashboardSrv, angularLoader: AngularLoader ) { // make angular loader service available to react components @@ -54,6 +56,8 @@ export class GrafanaCtrl { setTimeSrv(timeSrv); setLinkSrv(linkSrv); setKeybindingSrv(keybindingSrv); + setDashboardSrv(dashboardSrv); + const store = configureStore(); setLocationSrv({ update: (opt: LocationUpdate) => {