Skip to content

Commit 5d0bb08

Browse files
authored
chore: improve telemetry types for connection events (#6217)
* chore: improve telemetry types for connection events * chore: require passing connection data to connection scoped events * use correct hook * fetch connection info on demand
1 parent fa161e8 commit 5d0bb08

File tree

23 files changed

+215
-74
lines changed

23 files changed

+215
-74
lines changed

packages/compass-aggregations/src/components/pipeline-builder-workspace/pipeline-builder-ui-workspace/dnd-wrapper.tsx

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { UseCaseCardLayout } from '../../aggregation-side-panel/stage-wizard-use
1717
import type { PipelineBuilderUIWorkspaceProps } from '.';
1818
import type { DraggedUseCase } from '../../aggregation-side-panel/stage-wizard-use-cases/use-case-card';
1919
import { useTelemetry } from '@mongodb-js/compass-telemetry/provider';
20+
import { useConnectionInfoAccess } from '@mongodb-js/compass-connections/provider';
2021

2122
// Types
2223
type PipelineBuilderDndWrapperProps = {
@@ -71,15 +72,21 @@ const PipelineBuilderDndWrapper = ({
7172
})
7273
);
7374

75+
const connectionInfoAccess = useConnectionInfoAccess();
76+
7477
const handleUseCaseDropped = useCallback(
7578
(event: DragEndEvent) => {
7679
const { over } = event;
7780
const overId = indexFromDroppableId(String(over?.id));
7881
if (draggedUseCase && overId !== null) {
79-
track('Aggregation Use Case Added', {
80-
drag_and_drop: true,
81-
stage_name: draggedUseCase.stageOperator,
82-
});
82+
track(
83+
'Aggregation Use Case Added',
84+
{
85+
drag_and_drop: true,
86+
stage_name: draggedUseCase.stageOperator,
87+
},
88+
connectionInfoAccess.getCurrentConnectionInfo()
89+
);
8390
onUseCaseDropped(
8491
draggedUseCase.id,
8592
draggedUseCase.stageOperator,
@@ -88,7 +95,7 @@ const PipelineBuilderDndWrapper = ({
8895
}
8996
setDraggedUseCase(null);
9097
},
91-
[draggedUseCase, onUseCaseDropped, track]
98+
[draggedUseCase, onUseCaseDropped, track, connectionInfoAccess]
9299
);
93100

94101
const handleSortEnd = useCallback(

packages/compass-aggregations/src/components/saving-pipeline-modal/saving-pipeline-modal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class SavingPipelineModal extends PureComponent<SavingPipelineModalProps> {
3636

3737
componentDidUpdate(prevProps: SavingPipelineModalProps) {
3838
if (prevProps.isOpen !== this.props.isOpen && this.props.isOpen) {
39-
this.props.track('Screen', { name: 'save_pipeline_modal' });
39+
this.props.track('Screen', { name: 'save_pipeline_modal' }, undefined);
4040
}
4141
}
4242

packages/compass-aggregations/src/modules/is-new-pipeline-confirm.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export const confirmNewPipeline =
2525
async (dispatch, getState, { pipelineBuilder, track }) => {
2626
const isModified = getState().isModified;
2727
if (isModified) {
28-
track('Screen', { name: 'confirm_new_pipeline_modal' });
28+
track('Screen', { name: 'confirm_new_pipeline_modal' }, undefined);
2929
const confirmed = await showConfirmation({
3030
title: 'Are you sure you want to create a new pipeline?',
3131
description:

packages/compass-connections/src/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@ export { default as SingleConnectionForm } from './components/legacy-connections
2121
export { LegacyConnectionsModal } from './components/legacy-connections-modal';
2222
export { useConnectionFormPreferences } from './hooks/use-connection-form-preferences';
2323
import type { connect as devtoolsConnect } from 'mongodb-data-service';
24+
import type { ExtraConnectionData as ExtraConnectionDataForTelemetry } from '@mongodb-js/compass-telemetry';
2425

2526
const ConnectionsComponent: React.FunctionComponent<{
2627
appName: string;
2728
onExtraConnectionDataRequest: (
2829
connectionInfo: ConnectionInfo
29-
) => Promise<[Record<string, unknown>, string | null]>;
30+
) => Promise<[ExtraConnectionDataForTelemetry, string | null]>;
3031
onAutoconnectInfoRequest?: (
3132
connectionStorage: ConnectionStorage
3233
) => Promise<ConnectionInfo | undefined>;

packages/compass-connections/src/stores/connections-store-redux.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import mongodbBuildInfo, { getGenuineMongoDB } from 'mongodb-build-info';
2929
import EventEmitter from 'events';
3030
import { showNonGenuineMongoDBWarningModal as _showNonGenuineMongoDBWarningModal } from '../components/non-genuine-connection-modal';
3131
import ConnectionString from 'mongodb-connection-string-url';
32+
import type { ExtraConnectionData as ExtraConnectionDataForTelemetry } from '@mongodb-js/compass-telemetry';
3233

3334
export type ConnectionsEventMap = {
3435
connected: (
@@ -182,7 +183,7 @@ type ThunkExtraArg = {
182183
logger: Logger;
183184
getExtraConnectionData: (
184185
connectionInfo: ConnectionInfo
185-
) => Promise<[Record<string, unknown>, string | null]>;
186+
) => Promise<[ExtraConnectionDataForTelemetry, string | null]>;
186187
connectFn?: typeof devtoolsConnect;
187188
};
188189

packages/compass-crud/src/components/insert-document-dialog.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,11 @@ class InsertDocumentDialog extends React.PureComponent<
9898
) {
9999
if (prevProps.isOpen !== this.props.isOpen && this.props.isOpen) {
100100
this.props.track &&
101-
this.props.track('Screen', { name: 'insert_document_modal' });
101+
this.props.track(
102+
'Screen',
103+
{ name: 'insert_document_modal' },
104+
undefined
105+
);
102106
}
103107

104108
if (this.props.isOpen && !this.hasManyDocuments()) {

packages/compass-import-export/src/components/export-modal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ function ExportModal({
151151
useTrackOnChange(
152152
(track: TrackFunction) => {
153153
if (isOpen) {
154-
track('Screen', { name: 'export_modal' });
154+
track('Screen', { name: 'export_modal' }, undefined);
155155
}
156156
},
157157
[isOpen],

packages/compass-import-export/src/components/import-modal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ function ImportModal({
160160
useTrackOnChange(
161161
(track: TrackFunction) => {
162162
if (isOpen) {
163-
track('Screen', { name: 'import_modal' });
163+
track('Screen', { name: 'import_modal' }, undefined);
164164
}
165165
},
166166
[isOpen],

packages/compass-saved-aggregations-queries/src/components/aggregations-queries-list.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ export const AggregationsQueriesList = ({
138138
.map((x) => x.item);
139139

140140
useTrackOnChange((track: TrackFunction) => {
141-
track('Screen', { name: 'my_queries' });
141+
track('Screen', { name: 'my_queries' }, undefined);
142142
}, []);
143143

144144
useTrackOnChange(

packages/compass-saved-aggregations-queries/src/stores/delete-item.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ export const confirmDeleteItem = (
5151
{
5252
id: item.id,
5353
screen: 'my_queries',
54-
}
54+
},
55+
undefined // this event is connection scoped when triggered from the aggregation or query screen
5556
);
5657

5758
if (item.type === 'query') {

0 commit comments

Comments
 (0)