From 5170b66a867f45ad558f56eea53995238bce0435 Mon Sep 17 00:00:00 2001 From: Ruby Dong Date: Wed, 11 Jun 2025 11:21:04 -0400 Subject: [PATCH 1/4] add analytics for input index copied + updated code equivalent toggle --- .../create-index-form/index-flow-section.tsx | 1 + .../components/create-index-form/mdb-code-viewer.tsx | 12 +++++++++++- .../create-index-form/query-flow-section.tsx | 5 +++++ packages/compass-telemetry/src/telemetry-events.ts | 9 +++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx b/packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx index 97eabbbc26f..fdf08d5c482 100644 --- a/packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx +++ b/packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx @@ -272,6 +272,7 @@ const IndexFlowSection = ({ setIsCodeEquivalentToggleChecked(value); track('Code Equivalent Toggled', { context: 'Create Index Modal', + toggled: value === true ? 'On' : 'Off', }); }} checked={isCodeEquivalentToggleChecked} diff --git a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx index 49e4c6bbb5a..a0bd702e48b 100644 --- a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx +++ b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx @@ -57,11 +57,13 @@ const MDBCodeViewer = ({ collectionName, indexNameTypeMap, dataTestId, + onCopy, }: { dbName: string; collectionName: string; indexNameTypeMap: Record; dataTestId?: string; + onCopy?: () => void; }) => { const track = useTelemetry(); const GeneratedCode = generateCode({ @@ -72,7 +74,15 @@ const MDBCodeViewer = ({ return (
- + { + if (onCopy) { + onCopy(); + } + }} + > {GeneratedCode} diff --git a/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx b/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx index 16ebbb50ae2..a56d273cb4d 100644 --- a/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx +++ b/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx @@ -257,6 +257,11 @@ const QueryFlowSection = ({ dbName={dbName} collectionName={collectionName} indexNameTypeMap={indexSuggestions} + onCopy={() => { + track('Input Index Copied', { + context: 'Create Index Modal', + }); + }} />
diff --git a/packages/compass-telemetry/src/telemetry-events.ts b/packages/compass-telemetry/src/telemetry-events.ts index 27ea07cd41d..2cf2a179f22 100644 --- a/packages/compass-telemetry/src/telemetry-events.ts +++ b/packages/compass-telemetry/src/telemetry-events.ts @@ -2817,6 +2817,7 @@ type CreateIndexCodeEquivalentToggled = CommonEvent<{ name: 'Code Equivalent Toggled'; payload: { context: CreateIndexModalContext; + toggled: 'On' | 'Off'; }; }>; @@ -2848,6 +2849,13 @@ type CreateIndexCoveredQueriesLearnMoreClicked = CommonEvent<{ }; }>; +type CreateIndexInputIndexCopied = CommonEvent<{ + name: 'Input Index Copied'; + payload: { + context: CreateIndexModalContext; + }; +}>; + export type TelemetryEvent = | AggregationCanceledEvent | AggregationCopiedEvent @@ -2989,4 +2997,5 @@ export type TelemetryEvent = | CreateIndexProgrammingLanguageLinkClicked | CreateIndexQueryTabClicked | CreateIndexSuggestedIndexButtonClicked + | CreateIndexInputIndexCopied | UUIDEncounteredEvent; From 2fb2e50b89fa02f1a08f3a9cf368a518045abd30 Mon Sep 17 00:00:00 2001 From: Ruby Dong Date: Wed, 11 Jun 2025 13:51:55 -0400 Subject: [PATCH 2/4] add code copied for index suggestions and event for strategy doc clicked --- .../create-index-form/index-flow-section.tsx | 5 +++++ .../create-index-form/query-flow-section.tsx | 2 +- .../create-index-modal-header.tsx | 7 +++++++ .../compass-telemetry/src/telemetry-events.ts | 16 ++++++++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx b/packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx index fdf08d5c482..aa503798c6c 100644 --- a/packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx +++ b/packages/compass-indexes/src/components/create-index-form/index-flow-section.tsx @@ -291,6 +291,11 @@ const IndexFlowSection = ({ dbName={dbName} collectionName={collectionName} indexNameTypeMap={indexNameTypeMap} + onCopy={() => { + track('Input Index Copied', { + context: 'Create Index Modal', + }); + }} /> ) : ( createIndexFieldsComponent diff --git a/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx b/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx index a56d273cb4d..8456d9fe81d 100644 --- a/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx +++ b/packages/compass-indexes/src/components/create-index-form/query-flow-section.tsx @@ -258,7 +258,7 @@ const QueryFlowSection = ({ collectionName={collectionName} indexNameTypeMap={indexSuggestions} onCopy={() => { - track('Input Index Copied', { + track('Index Suggestions Copied', { context: 'Create Index Modal', }); }} diff --git a/packages/compass-indexes/src/components/create-index-modal/create-index-modal-header.tsx b/packages/compass-indexes/src/components/create-index-modal/create-index-modal-header.tsx index 498d6c62721..d613cc4ed8a 100644 --- a/packages/compass-indexes/src/components/create-index-modal/create-index-modal-header.tsx +++ b/packages/compass-indexes/src/components/create-index-modal/create-index-modal-header.tsx @@ -7,6 +7,7 @@ import { Link, useDarkMode, } from '@mongodb-js/compass-components'; +import { useTelemetry } from '@mongodb-js/compass-telemetry/provider'; import React from 'react'; const headerStyle = css({ @@ -24,6 +25,7 @@ const subtitleDarkStyle = css({ const CreateIndexModalHeader = () => { const darkMode = useDarkMode(); + const track = useTelemetry(); return (

Create Index

@@ -39,6 +41,11 @@ const CreateIndexModalHeader = () => { href="https://docs.mongodb.com/manual/applications/indexes/" target="_blank" rel="noopener noreferrer" + onClick={() => { + track('Index Strategies Documentation Clicked', { + context: 'Create Index Modal', + }); + }} > Index Strategies Documentation diff --git a/packages/compass-telemetry/src/telemetry-events.ts b/packages/compass-telemetry/src/telemetry-events.ts index 2cf2a179f22..4467852b4cd 100644 --- a/packages/compass-telemetry/src/telemetry-events.ts +++ b/packages/compass-telemetry/src/telemetry-events.ts @@ -2856,6 +2856,20 @@ type CreateIndexInputIndexCopied = CommonEvent<{ }; }>; +type CreateIndexIndexSuggestionsCopied = CommonEvent<{ + name: 'Index Suggestions Copied'; + payload: { + context: CreateIndexModalContext; + }; +}>; + +type CreateIndexStrategiesDocumentationClicked = CommonEvent<{ + name: 'Index Strategies Documentation Clicked'; + payload: { + context: CreateIndexModalContext; + }; +}>; + export type TelemetryEvent = | AggregationCanceledEvent | AggregationCopiedEvent @@ -2998,4 +3012,6 @@ export type TelemetryEvent = | CreateIndexQueryTabClicked | CreateIndexSuggestedIndexButtonClicked | CreateIndexInputIndexCopied + | CreateIndexIndexSuggestionsCopied + | CreateIndexStrategiesDocumentationClicked | UUIDEncounteredEvent; From 5342f13ac8f7b05e80aaa3cb788a93dc395881d5 Mon Sep 17 00:00:00 2001 From: Ruby Dong Date: Wed, 11 Jun 2025 13:54:00 -0400 Subject: [PATCH 3/4] make onCopy a required field --- .../src/components/create-index-form/mdb-code-viewer.spec.tsx | 1 + .../src/components/create-index-form/mdb-code-viewer.tsx | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.spec.tsx b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.spec.tsx index f5823df24fb..8c8638dbb73 100644 --- a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.spec.tsx +++ b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.spec.tsx @@ -25,6 +25,7 @@ describe('MDBCodeViewer', () => { dbName={dbName} collectionName={collectionName} indexNameTypeMap={indexNameTypeMap} + onCopy={() => {}} /> ); }; diff --git a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx index a0bd702e48b..c19f620f949 100644 --- a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx +++ b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx @@ -56,14 +56,14 @@ const MDBCodeViewer = ({ dbName, collectionName, indexNameTypeMap, - dataTestId, onCopy, + dataTestId, }: { dbName: string; collectionName: string; indexNameTypeMap: Record; + onCopy: () => void; dataTestId?: string; - onCopy?: () => void; }) => { const track = useTelemetry(); const GeneratedCode = generateCode({ From a15236fc5acc0860a4eaf07ec64caf7141f3a44b Mon Sep 17 00:00:00 2001 From: Ruby Dong Date: Wed, 11 Jun 2025 15:46:04 -0400 Subject: [PATCH 4/4] cleaned up oncopy call --- .../src/components/create-index-form/mdb-code-viewer.tsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx index c19f620f949..8da5d083899 100644 --- a/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx +++ b/packages/compass-indexes/src/components/create-index-form/mdb-code-viewer.tsx @@ -77,11 +77,7 @@ const MDBCodeViewer = ({ { - if (onCopy) { - onCopy(); - } - }} + onCopy={onCopy} > {GeneratedCode}