Skip to content

Commit 2e49430

Browse files
author
Artem
committed
#RI-4530 Add telemetry
1 parent 5b392df commit 2e49430

File tree

3 files changed

+41
-16
lines changed

3 files changed

+41
-16
lines changed

redisinsight/api/src/modules/cloud/autodiscovery/cloud-autodicovery.analytics.spec.ts

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@ import { EventEmitter2 } from '@nestjs/event-emitter';
33
import { TelemetryEvents } from 'src/constants';
44
import { InternalServerErrorException } from '@nestjs/common';
55
import { CloudAutodiscoveryAnalytics } from 'src/modules/cloud/autodiscovery/cloud-autodiscovery.analytics';
6-
import { CloudDatabaseStatus, CloudSubscriptionStatus } from 'src/modules/cloud/autodiscovery/models';
7-
import { mockCloudDatabase, mockCloudSubscription } from 'src/__mocks__';
6+
import {
7+
CloudDatabaseStatus,
8+
CloudSubscriptionStatus,
9+
CloudSubscriptionType
10+
} from 'src/modules/cloud/autodiscovery/models';
11+
import { mockCloudDatabase, mockCloudDatabaseFixed, mockCloudSubscription } from 'src/__mocks__';
812

913
describe('CloudAutodiscoveryAnalytics', () => {
1014
let service: CloudAutodiscoveryAnalytics;
@@ -36,13 +40,14 @@ describe('CloudAutodiscoveryAnalytics', () => {
3640
service.sendGetRECloudSubsSucceedEvent([
3741
mockCloudSubscription,
3842
mockCloudSubscription,
39-
]);
43+
], CloudSubscriptionType.Flexible);
4044

4145
expect(sendEventMethod).toHaveBeenCalledWith(
4246
TelemetryEvents.RECloudSubscriptionsDiscoverySucceed,
4347
{
4448
numberOfActiveSubscriptions: 2,
4549
totalNumberOfSubscriptions: 2,
50+
type: CloudSubscriptionType.Flexible,
4651
},
4752
);
4853
});
@@ -53,13 +58,14 @@ describe('CloudAutodiscoveryAnalytics', () => {
5358
status: CloudSubscriptionStatus.Error,
5459
},
5560
mockCloudSubscription,
56-
]);
61+
], CloudSubscriptionType.Flexible);
5762

5863
expect(sendEventMethod).toHaveBeenCalledWith(
5964
TelemetryEvents.RECloudSubscriptionsDiscoverySucceed,
6065
{
6166
numberOfActiveSubscriptions: 1,
6267
totalNumberOfSubscriptions: 2,
68+
type: CloudSubscriptionType.Flexible,
6369
},
6470
);
6571
});
@@ -73,52 +79,56 @@ describe('CloudAutodiscoveryAnalytics', () => {
7379
...mockCloudSubscription,
7480
status: CloudSubscriptionStatus.Error,
7581
},
76-
]);
82+
], CloudSubscriptionType.Flexible);
7783
expect(sendEventMethod).toHaveBeenCalledWith(
7884
TelemetryEvents.RECloudSubscriptionsDiscoverySucceed,
7985
{
8086
numberOfActiveSubscriptions: 0,
8187
totalNumberOfSubscriptions: 2,
88+
type: CloudSubscriptionType.Flexible,
8289
},
8390
);
8491
});
8592
it('should emit GetRECloudSubsSucceedEvent event for empty list', () => {
86-
service.sendGetRECloudSubsSucceedEvent([]);
93+
service.sendGetRECloudSubsSucceedEvent([], CloudSubscriptionType.Flexible);
8794

8895
expect(sendEventMethod).toHaveBeenCalledWith(
8996
TelemetryEvents.RECloudSubscriptionsDiscoverySucceed,
9097
{
9198
numberOfActiveSubscriptions: 0,
9299
totalNumberOfSubscriptions: 0,
100+
type: CloudSubscriptionType.Flexible,
93101
},
94102
);
95103
});
96104
it('should emit GetRECloudSubsSucceedEvent event for undefined input value', () => {
97-
service.sendGetRECloudSubsSucceedEvent(undefined);
105+
service.sendGetRECloudSubsSucceedEvent(undefined, CloudSubscriptionType.Fixed);
98106

99107
expect(sendEventMethod).toHaveBeenCalledWith(
100108
TelemetryEvents.RECloudSubscriptionsDiscoverySucceed,
101109
{
102110
numberOfActiveSubscriptions: 0,
103111
totalNumberOfSubscriptions: 0,
112+
type: CloudSubscriptionType.Fixed,
104113
},
105114
);
106115
});
107116
it('should not throw on error when sending GetRECloudSubsSucceedEvent event', () => {
108117
const input: any = {};
109118

110-
expect(() => service.sendGetRECloudSubsSucceedEvent(input)).not.toThrow();
119+
expect(() => service.sendGetRECloudSubsSucceedEvent(input, CloudSubscriptionType.Flexible)).not.toThrow();
111120
expect(sendEventMethod).not.toHaveBeenCalled();
112121
});
113122
});
114123

115124
describe('sendGetRECloudSubsFailedEvent', () => {
116125
it('should emit GetRECloudSubsFailedEvent event', () => {
117-
service.sendGetRECloudSubsFailedEvent(httpException);
126+
service.sendGetRECloudSubsFailedEvent(httpException, CloudSubscriptionType.Fixed);
118127

119128
expect(sendFailedEventMethod).toHaveBeenCalledWith(
120129
TelemetryEvents.RECloudSubscriptionsDiscoveryFailed,
121130
httpException,
131+
{ type: CloudSubscriptionType.Fixed },
122132
);
123133
});
124134
});
@@ -127,14 +137,16 @@ describe('CloudAutodiscoveryAnalytics', () => {
127137
it('should emit event with active databases', () => {
128138
service.sendGetRECloudDbsSucceedEvent([
129139
mockCloudDatabase,
130-
mockCloudDatabase,
140+
mockCloudDatabaseFixed,
131141
]);
132142

133143
expect(sendEventMethod).toHaveBeenCalledWith(
134144
TelemetryEvents.RECloudDatabasesDiscoverySucceed,
135145
{
136146
numberOfActiveDatabases: 2,
137147
totalNumberOfDatabases: 2,
148+
fixed: 1,
149+
flexible: 1,
138150
},
139151
);
140152
});
@@ -152,6 +164,8 @@ describe('CloudAutodiscoveryAnalytics', () => {
152164
{
153165
numberOfActiveDatabases: 1,
154166
totalNumberOfDatabases: 2,
167+
fixed: 0,
168+
flexible: 2,
155169
},
156170
);
157171
});
@@ -168,6 +182,8 @@ describe('CloudAutodiscoveryAnalytics', () => {
168182
{
169183
numberOfActiveDatabases: 0,
170184
totalNumberOfDatabases: 1,
185+
fixed: 0,
186+
flexible: 1,
171187
},
172188
);
173189
});
@@ -179,6 +195,8 @@ describe('CloudAutodiscoveryAnalytics', () => {
179195
{
180196
numberOfActiveDatabases: 0,
181197
totalNumberOfDatabases: 0,
198+
fixed: 0,
199+
flexible: 0,
182200
},
183201
);
184202
});
@@ -190,6 +208,8 @@ describe('CloudAutodiscoveryAnalytics', () => {
190208
{
191209
numberOfActiveDatabases: 0,
192210
totalNumberOfDatabases: 0,
211+
fixed: 0,
212+
flexible: 0,
193213
},
194214
);
195215
});

redisinsight/api/src/modules/cloud/autodiscovery/cloud-autodiscovery.analytics.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { countBy } from 'lodash';
12
import { HttpException, Injectable } from '@nestjs/common';
23
import { EventEmitter2 } from '@nestjs/event-emitter';
34
import { TelemetryEvents } from 'src/constants';
@@ -6,7 +7,7 @@ import {
67
CloudDatabase,
78
CloudDatabaseStatus,
89
CloudSubscription,
9-
CloudSubscriptionStatus,
10+
CloudSubscriptionStatus, CloudSubscriptionType,
1011
} from 'src/modules/cloud/autodiscovery/models';
1112

1213
@Injectable()
@@ -15,7 +16,7 @@ export class CloudAutodiscoveryAnalytics extends TelemetryBaseService {
1516
super(eventEmitter);
1617
}
1718

18-
sendGetRECloudSubsSucceedEvent(subscriptions: CloudSubscription[] = []) {
19+
sendGetRECloudSubsSucceedEvent(subscriptions: CloudSubscription[] = [], type: CloudSubscriptionType) {
1920
try {
2021
this.sendEvent(
2122
TelemetryEvents.RECloudSubscriptionsDiscoverySucceed,
@@ -24,15 +25,16 @@ export class CloudAutodiscoveryAnalytics extends TelemetryBaseService {
2425
(sub) => sub.status === CloudSubscriptionStatus.Active,
2526
).length,
2627
totalNumberOfSubscriptions: subscriptions.length,
28+
type,
2729
},
2830
);
2931
} catch (e) {
3032
// continue regardless of error
3133
}
3234
}
3335

34-
sendGetRECloudSubsFailedEvent(exception: HttpException) {
35-
this.sendFailedEvent(TelemetryEvents.RECloudSubscriptionsDiscoveryFailed, exception);
36+
sendGetRECloudSubsFailedEvent(exception: HttpException, type: CloudSubscriptionType) {
37+
this.sendFailedEvent(TelemetryEvents.RECloudSubscriptionsDiscoveryFailed, exception, { type });
3638
}
3739

3840
sendGetRECloudDbsSucceedEvent(databases: CloudDatabase[] = []) {
@@ -44,6 +46,9 @@ export class CloudAutodiscoveryAnalytics extends TelemetryBaseService {
4446
(db) => db.status === CloudDatabaseStatus.Active,
4547
).length,
4648
totalNumberOfDatabases: databases.length,
49+
fixed: 0,
50+
flexible: 0,
51+
...countBy(databases, 'subscriptionType'),
4752
},
4853
);
4954
} catch (e) {

redisinsight/api/src/modules/cloud/autodiscovery/cloud-autodiscovery.service.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ export class CloudAutodiscoveryService {
143143
);
144144
this.logger.log('Succeed to get cloud flexible subscriptions.');
145145
const result = parseCloudSubscriptionsResponse(subscriptions, type);
146-
this.analytics.sendGetRECloudSubsSucceedEvent(result);
146+
this.analytics.sendGetRECloudSubsSucceedEvent(result, type);
147147
return result;
148148
} catch (error) {
149149
const exception = this.getApiError(error, 'Failed to get cloud flexible subscriptions');
150-
this.analytics.sendGetRECloudSubsFailedEvent(exception);
150+
this.analytics.sendGetRECloudSubsFailedEvent(exception, type);
151151
throw exception;
152152
}
153153
}

0 commit comments

Comments
 (0)