Skip to content

Commit e08a07c

Browse files
committed
add telemetry events
1 parent 7c6abd9 commit e08a07c

File tree

2 files changed

+67
-4
lines changed

2 files changed

+67
-4
lines changed

packages/compass-data-modeling/src/store/diagram.ts

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -314,8 +314,11 @@ export function selectBackground(): DiagramBackgroundSelectedAction {
314314
export function createNewRelationship(
315315
namespace: string
316316
): DataModelingThunkAction<void, RelationSelectedAction> {
317-
return (dispatch) => {
317+
return (dispatch, getState, { track }) => {
318318
const relationshipId = new UUID().toString();
319+
const currentNumberOfRelationships = getCurrentNumberOfRelationships(
320+
getState()
321+
);
319322
dispatch(
320323
applyEdit({
321324
type: 'AddRelationship',
@@ -333,6 +336,9 @@ export function createNewRelationship(
333336
type: DiagramActionTypes.RELATIONSHIP_SELECTED,
334337
relationshipId,
335338
});
339+
track('Data Modeling Relationship Added', {
340+
num_relationships: currentNumberOfRelationships + 1,
341+
});
336342
};
337343
}
338344

@@ -469,8 +475,23 @@ export function updateRelationship(
469475
});
470476
}
471477

472-
export function deleteRelationship(relationshipId: string) {
473-
return applyEdit({ type: 'RemoveRelationship', relationshipId });
478+
export function deleteRelationship(
479+
relationshipId: string
480+
): DataModelingThunkAction<void, RelationSelectedAction> {
481+
return (dispatch, getState, { track }) => {
482+
const currentNumberOfRelationships = getCurrentNumberOfRelationships(
483+
getState()
484+
);
485+
dispatch(
486+
applyEdit({
487+
type: 'RemoveRelationship',
488+
relationshipId,
489+
})
490+
);
491+
track('Data Modeling Relationship Deleted', {
492+
num_relationships: currentNumberOfRelationships - 1,
493+
});
494+
};
474495
}
475496

476497
export function closeDrawer(): DrawerClosedAction {
@@ -628,3 +649,8 @@ export function getRelationshipForCurrentModel(
628649
(r) => r.id === relationshipId
629650
);
630651
}
652+
653+
function getCurrentNumberOfRelationships(state: DataModelingState): number {
654+
return selectCurrentModel(getCurrentDiagramFromState(state).edits)
655+
.relationships.length;
656+
}

packages/compass-telemetry/src/telemetry-events.ts

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2901,6 +2901,40 @@ type DataModelingDiagramExported = CommonEvent<{
29012901
};
29022902
}>;
29032903

2904+
/**
2905+
* This event is fired when user adds a new relationship to a data modeling diagram.
2906+
*
2907+
* @category Data Modeling
2908+
*/
2909+
type DataModelingDiagramRelationshipAdded = CommonEvent<{
2910+
name: 'Data Modeling Relationship Added';
2911+
payload: {
2912+
num_relationships: number;
2913+
};
2914+
}>;
2915+
2916+
/**
2917+
* This event is fired when user edits a relationship in a data modeling diagram.
2918+
*
2919+
* @category Data Modeling
2920+
*/
2921+
type DataModelingDiagramRelationshipEdited = CommonEvent<{
2922+
name: 'Data Modeling Relationship Edited';
2923+
payload: Record<string, never>;
2924+
}>;
2925+
2926+
/**
2927+
* This event is fired when user deletes a relationship from a data modeling diagram.
2928+
*
2929+
* @category Data Modeling
2930+
*/
2931+
type DataModelingDiagramRelationshipDeleted = CommonEvent<{
2932+
name: 'Data Modeling Relationship Deleted';
2933+
payload: {
2934+
num_relationships: number;
2935+
};
2936+
}>;
2937+
29042938
export type TelemetryEvent =
29052939
| AggregationCanceledEvent
29062940
| AggregationCopiedEvent
@@ -3048,4 +3082,7 @@ export type TelemetryEvent =
30483082
| CreateIndexIndexSuggestionsCopied
30493083
| CreateIndexStrategiesDocumentationClicked
30503084
| UUIDEncounteredEvent
3051-
| DataModelingDiagramExported;
3085+
| DataModelingDiagramExported
3086+
| DataModelingDiagramRelationshipAdded
3087+
| DataModelingDiagramRelationshipEdited
3088+
| DataModelingDiagramRelationshipDeleted;

0 commit comments

Comments
 (0)