Skip to content

Commit 6cff39d

Browse files
committed
fix(be): differ executed info commands telemetry by their type (workbench/search)
re #RI-7496
1 parent 60d6506 commit 6cff39d

File tree

5 files changed

+55
-22
lines changed

5 files changed

+55
-22
lines changed

redisinsight/api/src/constants/telemetry-events.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export enum TelemetryEvents {
6161

6262
// Events for search tool
6363
SearchCommandExecuted = 'SEARCH_COMMAND_EXECUTED',
64+
SearchIndexInfoSubmitted = 'SEARCH_INDEX_INFO_SUBMITTED',
6465
SearchCommandErrorReceived = 'SEARCH_COMMAND_ERROR_RECEIVED',
6566

6667
// Custom tutorials

redisinsight/api/src/modules/workbench/providers/workbench-commands.executor.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ describe('WorkbenchCommandsExecutor', () => {
118118
expect(mockAnalyticsService.sendIndexInfoEvent).toHaveBeenCalledWith(
119119
mockSessionMetadata,
120120
mockWorkbenchClientMetadata.databaseId,
121+
CommandExecutionType.Workbench,
121122
mockFtInfoAnalyticsData,
122123
);
123124
});

redisinsight/api/src/modules/workbench/providers/workbench-commands.executor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ export class WorkbenchCommandsExecutor {
8888
this.analyticsService.sendIndexInfoEvent(
8989
client.clientMetadata.sessionMetadata,
9090
client.clientMetadata.databaseId,
91+
dto.type,
9192
getAnalyticsDataFromIndexInfo(response as string[]),
9293
);
9394
}

redisinsight/api/src/modules/workbench/workbench.analytics.spec.ts

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,15 @@ describe('WorkbenchAnalytics', () => {
8282
});
8383

8484
describe('sendIndexInfoEvent', () => {
85-
it('should emit index info event', async () => {
86-
service.sendIndexInfoEvent(mockSessionMetadata, instanceId, {
87-
any: 'fields',
88-
});
85+
it('should emit index info event for Workbench commands', async () => {
86+
service.sendIndexInfoEvent(
87+
mockSessionMetadata,
88+
instanceId,
89+
CommandExecutionType.Workbench,
90+
{
91+
any: 'fields',
92+
},
93+
);
8994

9095
expect(sendEventMethod).toHaveBeenCalledWith(
9196
mockSessionMetadata,
@@ -96,8 +101,32 @@ describe('WorkbenchAnalytics', () => {
96101
},
97102
);
98103
});
104+
it('should emit index info event for Search commands', async () => {
105+
service.sendIndexInfoEvent(
106+
mockSessionMetadata,
107+
instanceId,
108+
CommandExecutionType.Search,
109+
{
110+
any: 'fields',
111+
},
112+
);
113+
114+
expect(sendEventMethod).toHaveBeenCalledWith(
115+
mockSessionMetadata,
116+
TelemetryEvents.SearchIndexInfoSubmitted,
117+
{
118+
databaseId: instanceId,
119+
any: 'fields',
120+
},
121+
);
122+
});
99123
it('should not fail and should not emit when no data to send', async () => {
100-
service.sendIndexInfoEvent(mockSessionMetadata, instanceId, null);
124+
service.sendIndexInfoEvent(
125+
mockSessionMetadata,
126+
instanceId,
127+
CommandExecutionType.Workbench,
128+
null,
129+
);
101130

102131
expect(sendEventMethod).not.toHaveBeenCalled();
103132
});

redisinsight/api/src/modules/workbench/workbench.analytics.ts

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,23 @@ export class WorkbenchAnalytics extends CommandTelemetryBaseService {
2626
sendIndexInfoEvent(
2727
sessionMetadata: SessionMetadata,
2828
databaseId: string,
29+
commandExecutionType: CommandExecutionType,
2930
additionalData: object,
3031
): void {
3132
if (!additionalData) {
3233
return;
3334
}
3435

3536
try {
36-
this.sendEvent(
37-
sessionMetadata,
38-
TelemetryEvents.WorkbenchIndexInfoSubmitted,
39-
{
40-
databaseId,
41-
...additionalData,
42-
},
43-
);
37+
const event =
38+
commandExecutionType === CommandExecutionType.Search
39+
? TelemetryEvents.SearchIndexInfoSubmitted
40+
: TelemetryEvents.WorkbenchIndexInfoSubmitted;
41+
42+
this.sendEvent(sessionMetadata, event, {
43+
databaseId,
44+
...additionalData,
45+
});
4446
} catch (e) {
4547
// ignore error
4648
}
@@ -80,17 +82,16 @@ export class WorkbenchAnalytics extends CommandTelemetryBaseService {
8082
const { status } = result;
8183
try {
8284
if (status === CommandExecutionStatus.Success) {
83-
this.sendEvent(
84-
sessionMetadata,
85+
const event =
8586
commandExecutionType === CommandExecutionType.Search
8687
? TelemetryEvents.SearchCommandExecuted
87-
: TelemetryEvents.WorkbenchCommandExecuted,
88-
{
89-
databaseId,
90-
...(await this.getCommandAdditionalInfo(additionalData['command'])),
91-
...additionalData,
92-
},
93-
);
88+
: TelemetryEvents.WorkbenchCommandExecuted;
89+
90+
this.sendEvent(sessionMetadata, event, {
91+
databaseId,
92+
...(await this.getCommandAdditionalInfo(additionalData['command'])),
93+
...additionalData,
94+
});
9495
}
9596
if (status === CommandExecutionStatus.Fail) {
9697
this.sendCommandErrorEvent(

0 commit comments

Comments
 (0)