From 33ff3538b8efaf917b3ac893861639f811f6b1ab Mon Sep 17 00:00:00 2001 From: Nick Peihl Date: Thu, 15 Sep 2022 12:54:18 -0400 Subject: [PATCH] [Maps] Add UI counters for triggers that open a new map (#136991) * Add UI counters for triggers that open a new map --- .../main/components/sidebar/lib/visualize_trigger_utils.ts | 2 ++ x-pack/plugins/lens/public/app_plugin/mounter.tsx | 7 +++++++ .../maps/public/routes/list_page/maps_list_view.tsx | 3 +++ .../public/trigger_actions/visualize_geo_field_action.ts | 5 +++-- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts b/src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts index 81f097aacf707..005accf3021f3 100644 --- a/src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts +++ b/src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts @@ -15,6 +15,7 @@ import { import type { DataViewField, DataView } from '@kbn/data-views-plugin/public'; import { KBN_FIELD_TYPES } from '@kbn/data-plugin/public'; import { getUiActions } from '../../../../../kibana_services'; +import { PLUGIN_ID } from '../../../../../../common'; export function getTriggerConstant(type: string) { return type === KBN_FIELD_TYPES.GEO_POINT || type === KBN_FIELD_TYPES.GEO_SHAPE @@ -53,6 +54,7 @@ export function triggerVisualizeActions( dataViewSpec: dataView.toSpec(false), fieldName: field.name, contextualFields, + originatingApp: PLUGIN_ID, }; getUiActions().getTrigger(trigger).exec(triggerOptions); } diff --git a/x-pack/plugins/lens/public/app_plugin/mounter.tsx b/x-pack/plugins/lens/public/app_plugin/mounter.tsx index 560fd8a3f79d9..62568a3cbca5e 100644 --- a/x-pack/plugins/lens/public/app_plugin/mounter.tsx +++ b/x-pack/plugins/lens/public/app_plugin/mounter.tsx @@ -211,6 +211,13 @@ export async function mountApp( ? historyLocationState.payload : undefined; + if (historyLocationState && historyLocationState.type === ACTION_VISUALIZE_LENS_FIELD) { + // remove originatingApp from context when visualizing a field in Lens + // so Lens does not try to return to the original app on Save + // see https://github.com/elastic/kibana/issues/128695 + delete initialContext?.originatingApp; + } + if (embeddableEditorIncomingState?.searchSessionId) { data.search.session.continue(embeddableEditorIncomingState.searchSessionId); } diff --git a/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx b/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx index 9278f08bd4d2d..37a2f75df1544 100644 --- a/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx +++ b/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx @@ -7,6 +7,7 @@ import React, { MouseEvent } from 'react'; import { SavedObjectReference } from '@kbn/core/types'; +import { METRIC_TYPE } from '@kbn/analytics'; import { i18n } from '@kbn/i18n'; import { EuiLink } from '@elastic/eui'; import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; @@ -24,6 +25,7 @@ import { getUiSettings, getTheme, getApplication, + getUsageCollection, } from '../../kibana_services'; import { getAppTitle } from '../../../common/i18n_getters'; import { MapSavedObjectAttributes } from '../../../common/map_saved_object_type'; @@ -77,6 +79,7 @@ if (savedObjectsTagging) { function navigateToNewMap() { const navigateToApp = getNavigateToApp(); + getUsageCollection()?.reportUiCounter(APP_ID, METRIC_TYPE.CLICK, 'create_maps_vis_editor'); navigateToApp(APP_ID, { path: MAP_PATH, }); diff --git a/x-pack/plugins/maps/public/trigger_actions/visualize_geo_field_action.ts b/x-pack/plugins/maps/public/trigger_actions/visualize_geo_field_action.ts index ae104c08034ff..f073c7335eb09 100644 --- a/x-pack/plugins/maps/public/trigger_actions/visualize_geo_field_action.ts +++ b/x-pack/plugins/maps/public/trigger_actions/visualize_geo_field_action.ts @@ -9,6 +9,7 @@ import uuid from 'uuid/v4'; import { i18n } from '@kbn/i18n'; import type { Query } from '@kbn/es-query'; import type { SerializableRecord } from '@kbn/utility-types'; +import { METRIC_TYPE } from '@kbn/analytics'; import { createAction, ACTION_VISUALIZE_GEO_FIELD, @@ -50,8 +51,8 @@ export const visualizeGeoFieldAction = createAction({ const usageCollection = getUsageCollection(); usageCollection?.reportUiCounter( APP_ID, - 'visualize_geo_field', - context.originatingApp ? context.originatingApp : 'unknownOriginatingApp' + METRIC_TYPE.CLICK, + `create_maps_vis_${context.originatingApp ? context.originatingApp : 'unknownOriginatingApp'}` ); getCore().application.navigateToApp(app, {