@mongosh/logging 2.0.2 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AUTHORS CHANGED
@@ -5,3 +5,4 @@ Sergey Petushkov <petushkov.sergey@gmail.com>
5
5
  Leonardo Rossi <leonardo.rossi@gmail.com>
6
6
  Le Roux Bodenstein <lerouxb@gmail.com>
7
7
  Martin Rodriguez Reboredo <yakoyoku@gmail.com>
8
+ Kevin Mas Ruiz <kevin.mas@hey.com>
@@ -8,14 +8,18 @@ export type MongoshAnalyticsIdentity = {
8
8
  type AnalyticsIdentifyMessage = MongoshAnalyticsIdentity & {
9
9
  traits: {
10
10
  platform: string;
11
+ session_id: string;
11
12
  };
13
+ timestamp?: Date;
12
14
  };
13
15
  type AnalyticsTrackMessage = MongoshAnalyticsIdentity & {
14
16
  event: string;
15
17
  properties: {
16
18
  mongosh_version: string;
19
+ session_id: string;
17
20
  [key: string]: any;
18
21
  };
22
+ timestamp?: Date;
19
23
  };
20
24
  export interface MongoshAnalytics {
21
25
  identify(message: AnalyticsIdentifyMessage): void;
@@ -77,4 +81,17 @@ export declare class ThrottledAnalytics implements MongoshAnalytics {
77
81
  private shouldEmitAnalyticsEvent;
78
82
  flush(callback: (err?: Error | undefined) => void): void;
79
83
  }
84
+ type SampledAnalyticsOptions = {
85
+ target?: MongoshAnalytics;
86
+ sampling: () => boolean;
87
+ };
88
+ export declare class SampledAnalytics implements MongoshAnalytics {
89
+ private isEnabled;
90
+ private target;
91
+ constructor(configuration: SampledAnalyticsOptions);
92
+ get enabled(): boolean;
93
+ identify(message: AnalyticsIdentifyMessage): void;
94
+ track(message: AnalyticsTrackMessage): void;
95
+ flush(callback: (err?: Error | undefined) => void): void;
96
+ }
80
97
  export {};
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ThrottledAnalytics = exports.ToggleableAnalytics = exports.NoopAnalytics = void 0;
6
+ exports.SampledAnalytics = exports.ThrottledAnalytics = exports.ToggleableAnalytics = exports.NoopAnalytics = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  class Queue {
@@ -52,6 +52,10 @@ class NoopAnalytics {
52
52
  }
53
53
  }
54
54
  exports.NoopAnalytics = NoopAnalytics;
55
+ function addTimestamp(message) {
56
+ var _a;
57
+ return { ...message, timestamp: (_a = message.timestamp) !== null && _a !== void 0 ? _a : new Date() };
58
+ }
55
59
  class ToggleableAnalytics {
56
60
  constructor(target = new NoopAnalytics()) {
57
61
  this._queue = new Queue((item) => {
@@ -66,11 +70,11 @@ class ToggleableAnalytics {
66
70
  }
67
71
  identify(...args) {
68
72
  this._validateArgs(args);
69
- this._queue.push(['identify', args]);
73
+ this._queue.push(['identify', [addTimestamp(args[0])]]);
70
74
  }
71
75
  track(...args) {
72
76
  this._validateArgs(args);
73
- this._queue.push(['track', args]);
77
+ this._queue.push(['track', [addTimestamp(args[0])]]);
74
78
  }
75
79
  enable() {
76
80
  if (this._pendingError) {
@@ -168,6 +172,7 @@ class ThrottledAnalytics {
168
172
  }
169
173
  identify(message) {
170
174
  var _a;
175
+ message = addTimestamp(message);
171
176
  if (this.currentUserId) {
172
177
  throw new Error('Identify can only be called once per user session');
173
178
  }
@@ -185,7 +190,7 @@ class ThrottledAnalytics {
185
190
  });
186
191
  }
187
192
  track(message) {
188
- this.trackQueue.push(message);
193
+ this.trackQueue.push(addTimestamp(message));
189
194
  }
190
195
  async restoreThrottleState() {
191
196
  if (!this.throttleOptions) {
@@ -245,4 +250,23 @@ class ThrottledAnalytics {
245
250
  }
246
251
  }
247
252
  exports.ThrottledAnalytics = ThrottledAnalytics;
253
+ class SampledAnalytics {
254
+ constructor(configuration) {
255
+ this.isEnabled = configuration.sampling();
256
+ this.target = configuration.target || new NoopAnalytics();
257
+ }
258
+ get enabled() {
259
+ return this.isEnabled;
260
+ }
261
+ identify(message) {
262
+ this.isEnabled && this.target.identify(message);
263
+ }
264
+ track(message) {
265
+ this.isEnabled && this.target.track(message);
266
+ }
267
+ flush(callback) {
268
+ this.target.flush(callback);
269
+ }
270
+ }
271
+ exports.SampledAnalytics = SampledAnalytics;
248
272
  //# sourceMappingURL=analytics-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics-helpers.js","sourceRoot":"","sources":["../src/analytics-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analytics-helpers.js","sourceRoot":"","sources":["../src/analytics-helpers.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { setupLoggerAndTelemetry } from './setup-logger-and-telemetry';
2
- export { MongoshAnalytics, ToggleableAnalytics, NoopAnalytics, ThrottledAnalytics, } from './analytics-helpers';
2
+ export { MongoshAnalytics, ToggleableAnalytics, SampledAnalytics, NoopAnalytics, ThrottledAnalytics, } from './analytics-helpers';
package/lib/index.js CHANGED
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ThrottledAnalytics = exports.NoopAnalytics = exports.ToggleableAnalytics = exports.setupLoggerAndTelemetry = void 0;
3
+ exports.ThrottledAnalytics = exports.NoopAnalytics = exports.SampledAnalytics = exports.ToggleableAnalytics = exports.setupLoggerAndTelemetry = void 0;
4
4
  var setup_logger_and_telemetry_1 = require("./setup-logger-and-telemetry");
5
5
  Object.defineProperty(exports, "setupLoggerAndTelemetry", { enumerable: true, get: function () { return setup_logger_and_telemetry_1.setupLoggerAndTelemetry; } });
6
6
  var analytics_helpers_1 = require("./analytics-helpers");
7
7
  Object.defineProperty(exports, "ToggleableAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.ToggleableAnalytics; } });
8
+ Object.defineProperty(exports, "SampledAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.SampledAnalytics; } });
8
9
  Object.defineProperty(exports, "NoopAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.NoopAnalytics; } });
9
10
  Object.defineProperty(exports, "ThrottledAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.ThrottledAnalytics; } });
10
11
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,yDAK6B;AAH3B,wHAAA,mBAAmB,OAAA;AACnB,kHAAA,aAAa,OAAA;AACb,uHAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,yDAM6B;AAJ3B,wHAAA,mBAAmB,OAAA;AACnB,qHAAA,gBAAgB,OAAA;AAChB,kHAAA,aAAa,OAAA;AACb,uHAAA,kBAAkB,OAAA"}
@@ -1,4 +1,5 @@
1
1
  import type { MongoshBus } from '@mongosh/types';
2
2
  import type { MongoLogWriter } from 'mongodb-log-writer';
3
3
  import type { MongoshAnalytics } from './analytics-helpers';
4
+ export declare function toSnakeCase(str: string): string;
4
5
  export declare function setupLoggerAndTelemetry(bus: MongoshBus, log: MongoLogWriter, analytics: MongoshAnalytics, userTraits: any, mongosh_version: string): void;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.setupLoggerAndTelemetry = void 0;
6
+ exports.setupLoggerAndTelemetry = exports.toSnakeCase = void 0;
7
7
  const mongodb_redact_1 = __importDefault(require("mongodb-redact"));
8
8
  const history_1 = require("@mongosh/history");
9
9
  const util_1 = require("util");
@@ -26,10 +26,23 @@ class MultiSet {
26
26
  }
27
27
  }
28
28
  }
29
+ function toSnakeCase(str) {
30
+ const matches = str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);
31
+ if (!matches) {
32
+ return str;
33
+ }
34
+ return matches.map((x) => x.toLowerCase()).join('_');
35
+ }
36
+ exports.toSnakeCase = toSnakeCase;
29
37
  function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_version) {
30
- const { logId } = log;
38
+ const { logId: session_id } = log;
31
39
  let userId;
32
40
  let telemetryAnonymousId;
41
+ userTraits = { ...userTraits, session_id };
42
+ const trackProperties = {
43
+ mongosh_version,
44
+ session_id,
45
+ };
33
46
  const getTelemetryUserIdentity = () => {
34
47
  if (telemetryAnonymousId) {
35
48
  return {
@@ -52,7 +65,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
52
65
  const connectionUri = (0, history_1.redactURICredentials)(args.uri);
53
66
  const { uri: _uri, ...argsWithoutUri } = args;
54
67
  const params = {
55
- session_id: logId,
68
+ session_id,
56
69
  userId,
57
70
  telemetryAnonymousId,
58
71
  connectionUri,
@@ -63,12 +76,27 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
63
76
  ...getTelemetryUserIdentity(),
64
77
  event: 'New Connection',
65
78
  properties: {
66
- mongosh_version,
67
- session_id: logId,
79
+ ...trackProperties,
68
80
  ...argsWithoutUri,
69
81
  },
70
82
  });
71
83
  });
84
+ bus.on('mongosh:start-session', function (args) {
85
+ const normalisedTimingsArray = Object.entries(args.timings).map(([key, duration]) => {
86
+ const snakeCaseKey = toSnakeCase(key);
87
+ return [snakeCaseKey, duration];
88
+ });
89
+ const normalisedTimings = Object.fromEntries(normalisedTimingsArray);
90
+ analytics.track({
91
+ ...getTelemetryUserIdentity(),
92
+ event: 'Startup Time',
93
+ properties: {
94
+ ...trackProperties,
95
+ is_interactive: args.isInteractive,
96
+ ...normalisedTimings,
97
+ },
98
+ });
99
+ });
72
100
  bus.on('mongosh:new-user', function (newTelemetryUserIdentity) {
73
101
  if (!newTelemetryUserIdentity.anonymousId) {
74
102
  userId = newTelemetryUserIdentity.userId;
@@ -109,7 +137,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
109
137
  ...getTelemetryUserIdentity(),
110
138
  event: 'Error',
111
139
  properties: {
112
- mongosh_version,
140
+ ...trackProperties,
113
141
  name: mongoshError.name,
114
142
  code: mongoshError.code,
115
143
  scope: mongoshError.scope,
@@ -130,7 +158,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
130
158
  ...getTelemetryUserIdentity(),
131
159
  event: 'Use',
132
160
  properties: {
133
- mongosh_version,
161
+ ...trackProperties,
134
162
  },
135
163
  });
136
164
  });
@@ -140,7 +168,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
140
168
  ...getTelemetryUserIdentity(),
141
169
  event: 'Show',
142
170
  properties: {
143
- mongosh_version,
171
+ ...trackProperties,
144
172
  method: args.method,
145
173
  },
146
174
  });
@@ -164,7 +192,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
164
192
  ...getTelemetryUserIdentity(),
165
193
  event: hasStartedMongoshRepl ? 'Script Loaded' : 'Script Loaded CLI',
166
194
  properties: {
167
- mongosh_version,
195
+ ...trackProperties,
168
196
  nested: args.nested,
169
197
  ...(hasStartedMongoshRepl ? {} : { shell: usesShellOption }),
170
198
  },
@@ -176,7 +204,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
176
204
  ...getTelemetryUserIdentity(),
177
205
  event: 'Script Evaluated',
178
206
  properties: {
179
- mongosh_version,
207
+ ...trackProperties,
180
208
  shell: usesShellOption,
181
209
  },
182
210
  });
@@ -187,7 +215,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
187
215
  ...getTelemetryUserIdentity(),
188
216
  event: 'Mongoshrc Loaded',
189
217
  properties: {
190
- mongosh_version,
218
+ ...trackProperties,
191
219
  },
192
220
  });
193
221
  });
@@ -197,7 +225,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
197
225
  ...getTelemetryUserIdentity(),
198
226
  event: 'Mongorc Warning',
199
227
  properties: {
200
- mongosh_version,
228
+ ...trackProperties,
201
229
  },
202
230
  });
203
231
  });
@@ -253,7 +281,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
253
281
  ...getTelemetryUserIdentity(),
254
282
  event: 'Snippet Install',
255
283
  properties: {
256
- mongosh_version,
284
+ ...trackProperties,
257
285
  },
258
286
  });
259
287
  }
@@ -282,7 +310,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
282
310
  ...getTelemetryUserIdentity(),
283
311
  event: 'Deprecated Method',
284
312
  properties: {
285
- mongosh_version,
313
+ ...trackProperties,
286
314
  ...entry,
287
315
  },
288
316
  });
@@ -292,7 +320,7 @@ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_versio
292
320
  ...getTelemetryUserIdentity(),
293
321
  event: 'API Call',
294
322
  properties: {
295
- mongosh_version,
323
+ ...trackProperties,
296
324
  ...entry,
297
325
  count,
298
326
  },
@@ -1 +1 @@
1
- {"version":3,"file":"setup-logger-and-telemetry.js","sourceRoot":"","sources":["../src/setup-logger-and-telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-logger-and-telemetry.js","sourceRoot":"","sources":["../src/setup-logger-and-telemetry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mongosh/logging",
3
- "version": "2.0.2",
3
+ "version": "2.1.1",
4
4
  "description": "MongoDB Shell Logging Utilities Package",
5
5
  "homepage": "https://github.com/mongodb-js/mongosh",
6
6
  "license": "Apache-2.0",
@@ -17,10 +17,10 @@
17
17
  "node": ">=14.15.1"
18
18
  },
19
19
  "dependencies": {
20
- "@mongodb-js/devtools-connect": "^2.4.1",
21
- "@mongosh/errors": "2.0.2",
22
- "@mongosh/history": "2.0.2",
23
- "@mongosh/types": "2.0.2",
20
+ "@mongodb-js/devtools-connect": "^2.4.3",
21
+ "@mongosh/errors": "2.1.1",
22
+ "@mongosh/history": "2.1.1",
23
+ "@mongosh/types": "2.1.1",
24
24
  "mongodb-log-writer": "^1.4.0",
25
25
  "mongodb-redact": "^0.2.2"
26
26
  },
@@ -49,5 +49,5 @@
49
49
  "mongosh": {
50
50
  "unitTestsOnly": true
51
51
  },
52
- "gitHead": "5737e60cdbcd551f6a355b38fc9b5b6cc19ac5a4"
52
+ "gitHead": "c7e70b65988d21c9020abf2bbd253a94b1d3316c"
53
53
  }
@@ -4,10 +4,16 @@ import fs from 'fs';
4
4
  import { promisify } from 'util';
5
5
  import { expect } from 'chai';
6
6
  import type { MongoshAnalytics } from './analytics-helpers';
7
- import { ToggleableAnalytics, ThrottledAnalytics } from './analytics-helpers';
7
+ import {
8
+ ToggleableAnalytics,
9
+ ThrottledAnalytics,
10
+ SampledAnalytics,
11
+ } from './analytics-helpers';
8
12
 
9
13
  const wait = promisify(setTimeout);
10
14
 
15
+ const timestamp = new Date();
16
+
11
17
  describe('analytics helpers', function () {
12
18
  let events: any[];
13
19
  let target: MongoshAnalytics;
@@ -32,11 +38,16 @@ describe('analytics helpers', function () {
32
38
  const toggleable = new ToggleableAnalytics(target);
33
39
  expect(events).to.have.lengthOf(0);
34
40
 
35
- toggleable.identify({ userId: 'me', traits: { platform: '1234' } });
41
+ toggleable.identify({
42
+ userId: 'me',
43
+ traits: { platform: '1234', session_id: 'abc' },
44
+ timestamp,
45
+ });
36
46
  toggleable.track({
37
47
  userId: 'me',
38
48
  event: 'something',
39
- properties: { mongosh_version: '1.2.3' },
49
+ properties: { mongosh_version: '1.2.3', session_id: 'abc' },
50
+ timestamp,
40
51
  });
41
52
  expect(events).to.have.lengthOf(0);
42
53
 
@@ -46,7 +57,8 @@ describe('analytics helpers', function () {
46
57
  toggleable.track({
47
58
  userId: 'me',
48
59
  event: 'something2',
49
- properties: { mongosh_version: '1.2.3' },
60
+ properties: { mongosh_version: '1.2.3', session_id: 'abc' },
61
+ timestamp,
50
62
  });
51
63
  expect(events).to.have.lengthOf(3);
52
64
 
@@ -54,7 +66,8 @@ describe('analytics helpers', function () {
54
66
  toggleable.track({
55
67
  userId: 'me',
56
68
  event: 'something3',
57
- properties: { mongosh_version: '1.2.3' },
69
+ properties: { mongosh_version: '1.2.3', session_id: 'abc' },
70
+ timestamp,
58
71
  });
59
72
  expect(events).to.have.lengthOf(3);
60
73
 
@@ -63,13 +76,21 @@ describe('analytics helpers', function () {
63
76
  toggleable.enable();
64
77
 
65
78
  expect(events).to.deep.equal([
66
- ['identify', { userId: 'me', traits: { platform: '1234' } }],
79
+ [
80
+ 'identify',
81
+ {
82
+ userId: 'me',
83
+ traits: { platform: '1234', session_id: 'abc' },
84
+ timestamp,
85
+ },
86
+ ],
67
87
  [
68
88
  'track',
69
89
  {
70
90
  userId: 'me',
71
91
  event: 'something',
72
- properties: { mongosh_version: '1.2.3' },
92
+ properties: { mongosh_version: '1.2.3', session_id: 'abc' },
93
+ timestamp,
73
94
  },
74
95
  ],
75
96
  [
@@ -77,7 +98,8 @@ describe('analytics helpers', function () {
77
98
  {
78
99
  userId: 'me',
79
100
  event: 'something2',
80
- properties: { mongosh_version: '1.2.3' },
101
+ properties: { mongosh_version: '1.2.3', session_id: 'abc' },
102
+ timestamp,
81
103
  },
82
104
  ],
83
105
  ]);
@@ -102,16 +124,16 @@ describe('analytics helpers', function () {
102
124
  describe('ThrottledAnalytics', function () {
103
125
  const metadataPath = os.tmpdir();
104
126
  const userId = 'u-' + Date.now();
105
- const iEvt = { userId, traits: { platform: 'what' } };
127
+ const iEvt = { userId, traits: { platform: 'what', session_id: 'abc' } };
106
128
  const tEvt = {
107
129
  userId,
108
130
  event: 'hi',
109
- properties: { mongosh_version: '1.2.3' },
131
+ properties: { mongosh_version: '1.2.3', session_id: 'abc' },
110
132
  };
111
133
  const t2Evt = {
112
134
  userId,
113
135
  event: 'bye',
114
- properties: { mongosh_version: '1.2.3' },
136
+ properties: { mongosh_version: '1.2.3', session_id: 'abc' },
115
137
  };
116
138
 
117
139
  afterEach(async function () {
@@ -227,4 +249,42 @@ describe('analytics helpers', function () {
227
249
  ).to.match(/^(hi,hi,hi|bye,bye,bye)$/);
228
250
  });
229
251
  });
252
+
253
+ describe('SampledAnalytics', function () {
254
+ const userId = `u-${Date.now()}`;
255
+ const iEvt = { userId, traits: { platform: 'what', session_id: 'abc' } };
256
+ const tEvt = {
257
+ userId,
258
+ event: 'hi',
259
+ properties: { mongosh_version: '1.2.3', session_id: 'abc' },
260
+ };
261
+
262
+ it('should send the event forward when sampled', function () {
263
+ const analytics = new SampledAnalytics({
264
+ target,
265
+ sampling: () => true,
266
+ });
267
+
268
+ expect(analytics.enabled).to.be.true;
269
+
270
+ analytics.identify(iEvt);
271
+ analytics.track(tEvt);
272
+
273
+ expect(events.length).to.equal(2);
274
+ });
275
+
276
+ it('should not send the event forward when not sampled', function () {
277
+ const analytics = new SampledAnalytics({
278
+ target,
279
+ sampling: () => false,
280
+ });
281
+
282
+ expect(analytics.enabled).to.be.false;
283
+
284
+ analytics.identify(iEvt);
285
+ analytics.track(tEvt);
286
+
287
+ expect(events.length).to.equal(0);
288
+ });
289
+ });
230
290
  });
@@ -12,15 +12,18 @@ export type MongoshAnalyticsIdentity =
12
12
  };
13
13
 
14
14
  type AnalyticsIdentifyMessage = MongoshAnalyticsIdentity & {
15
- traits: { platform: string };
15
+ traits: { platform: string; session_id: string };
16
+ timestamp?: Date;
16
17
  };
17
18
 
18
19
  type AnalyticsTrackMessage = MongoshAnalyticsIdentity & {
19
20
  event: string;
20
21
  properties: {
21
22
  mongosh_version: string;
23
+ session_id: string;
22
24
  [key: string]: any;
23
25
  };
26
+ timestamp?: Date;
24
27
  };
25
28
 
26
29
  /**
@@ -90,6 +93,12 @@ type AnalyticsEventsQueueItem =
90
93
  | ['identify', Parameters<MongoshAnalytics['identify']>]
91
94
  | ['track', Parameters<MongoshAnalytics['track']>];
92
95
 
96
+ function addTimestamp<T extends { timestamp?: Date }>(
97
+ message: T
98
+ ): T & { timestamp: Date } {
99
+ return { ...message, timestamp: message.timestamp ?? new Date() };
100
+ }
101
+
93
102
  /**
94
103
  * An implementation of MongoshAnalytics that forwards to another implementation
95
104
  * and can be enabled/paused/disabled.
@@ -112,12 +121,12 @@ export class ToggleableAnalytics implements MongoshAnalytics {
112
121
 
113
122
  identify(...args: Parameters<MongoshAnalytics['identify']>): void {
114
123
  this._validateArgs(args);
115
- this._queue.push(['identify', args]);
124
+ this._queue.push(['identify', [addTimestamp(args[0])]]);
116
125
  }
117
126
 
118
127
  track(...args: Parameters<MongoshAnalytics['track']>): void {
119
128
  this._validateArgs(args);
120
- this._queue.push(['track', args]);
129
+ this._queue.push(['track', [addTimestamp(args[0])]]);
121
130
  }
122
131
 
123
132
  enable() {
@@ -262,6 +271,7 @@ export class ThrottledAnalytics implements MongoshAnalytics {
262
271
  }
263
272
 
264
273
  identify(message: AnalyticsIdentifyMessage): void {
274
+ message = addTimestamp(message);
265
275
  if (this.currentUserId) {
266
276
  throw new Error('Identify can only be called once per user session');
267
277
  }
@@ -280,7 +290,7 @@ export class ThrottledAnalytics implements MongoshAnalytics {
280
290
  }
281
291
 
282
292
  track(message: AnalyticsTrackMessage): void {
283
- this.trackQueue.push(message);
293
+ this.trackQueue.push(addTimestamp(message));
284
294
  }
285
295
 
286
296
  // Tries to restore persisted throttle state and returns `true` if telemetry can
@@ -368,3 +378,34 @@ export class ThrottledAnalytics implements MongoshAnalytics {
368
378
  });
369
379
  }
370
380
  }
381
+
382
+ type SampledAnalyticsOptions = {
383
+ target?: MongoshAnalytics;
384
+ sampling: () => boolean;
385
+ };
386
+
387
+ export class SampledAnalytics implements MongoshAnalytics {
388
+ private isEnabled: boolean;
389
+ private target: MongoshAnalytics;
390
+
391
+ constructor(configuration: SampledAnalyticsOptions) {
392
+ this.isEnabled = configuration.sampling();
393
+ this.target = configuration.target || new NoopAnalytics();
394
+ }
395
+
396
+ get enabled(): boolean {
397
+ return this.isEnabled;
398
+ }
399
+
400
+ identify(message: AnalyticsIdentifyMessage): void {
401
+ this.isEnabled && this.target.identify(message);
402
+ }
403
+
404
+ track(message: AnalyticsTrackMessage): void {
405
+ this.isEnabled && this.target.track(message);
406
+ }
407
+
408
+ flush(callback: (err?: Error | undefined) => void): void {
409
+ this.target.flush(callback);
410
+ }
411
+ }
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@ export { setupLoggerAndTelemetry } from './setup-logger-and-telemetry';
2
2
  export {
3
3
  MongoshAnalytics,
4
4
  ToggleableAnalytics,
5
+ SampledAnalytics,
5
6
  NoopAnalytics,
6
7
  ThrottledAnalytics,
7
8
  } from './analytics-helpers';
@@ -4,6 +4,29 @@ import { setupLoggerAndTelemetry } from './';
4
4
  import { EventEmitter } from 'events';
5
5
  import { MongoshInvalidInputError } from '@mongosh/errors';
6
6
  import type { MongoshBus } from '@mongosh/types';
7
+ import { toSnakeCase } from './setup-logger-and-telemetry';
8
+
9
+ describe('toSnakeCase', function () {
10
+ const useCases = [
11
+ { input: 'MongoDB REPL', output: 'mongo_db_repl' },
12
+ {
13
+ input: 'Node.js REPL Instantiation',
14
+ output: 'node_js_repl_instantiation',
15
+ },
16
+ { input: 'A', output: 'a' },
17
+ {
18
+ input: 'OneLongThingInPascalCase',
19
+ output: 'one_long_thing_in_pascal_case',
20
+ },
21
+ { input: 'Removes .Dots in Node.js', output: 'removes_dots_in_node_js' },
22
+ ];
23
+
24
+ for (const { input, output } of useCases) {
25
+ it(`should convert ${input} to ${output}`, function () {
26
+ expect(toSnakeCase(input)).to.equal(output);
27
+ });
28
+ }
29
+ });
7
30
 
8
31
  describe('setupLoggerAndTelemetry', function () {
9
32
  let logOutput: any[];
@@ -60,6 +83,14 @@ describe('setupLoggerAndTelemetry', function () {
60
83
  is_atlas: false,
61
84
  node_version: 'v12.19.0',
62
85
  } as any);
86
+ bus.emit('mongosh:start-session', {
87
+ isInteractive: true,
88
+ timings: {
89
+ 'BoxedNode Bindings': 50,
90
+ NodeREPL: 100,
91
+ },
92
+ });
93
+
63
94
  bus.emit(
64
95
  'mongosh:error',
65
96
  new MongoshInvalidInputError('meow', 'CLIREPL-1005', { cause: 'x' }),
@@ -351,6 +382,7 @@ describe('setupLoggerAndTelemetry', function () {
351
382
  traits: {
352
383
  platform: process.platform,
353
384
  arch: process.arch,
385
+ session_id: '5fb3c20ee1507e894e5340f3',
354
386
  },
355
387
  },
356
388
  ],
@@ -361,6 +393,7 @@ describe('setupLoggerAndTelemetry', function () {
361
393
  traits: {
362
394
  platform: process.platform,
363
395
  arch: process.arch,
396
+ session_id: '5fb3c20ee1507e894e5340f3',
364
397
  },
365
398
  },
366
399
  ],
@@ -378,6 +411,20 @@ describe('setupLoggerAndTelemetry', function () {
378
411
  },
379
412
  },
380
413
  ],
414
+ [
415
+ 'track',
416
+ {
417
+ anonymousId: '53defe995fa47e6c13102d9d',
418
+ event: 'Startup Time',
419
+ properties: {
420
+ is_interactive: true,
421
+ boxed_node_bindings: 50,
422
+ node_repl: 100,
423
+ mongosh_version: '1.0.0',
424
+ session_id: '5fb3c20ee1507e894e5340f3',
425
+ },
426
+ },
427
+ ],
381
428
  [
382
429
  'track',
383
430
  {
@@ -385,6 +432,7 @@ describe('setupLoggerAndTelemetry', function () {
385
432
  event: 'Error',
386
433
  properties: {
387
434
  mongosh_version: '1.0.0',
435
+ session_id: '5fb3c20ee1507e894e5340f3',
388
436
  name: 'MongoshInvalidInputError',
389
437
  code: 'CLIREPL-1005',
390
438
  scope: 'CLIREPL',
@@ -399,6 +447,7 @@ describe('setupLoggerAndTelemetry', function () {
399
447
  event: 'Error',
400
448
  properties: {
401
449
  mongosh_version: '1.0.0',
450
+ session_id: '5fb3c20ee1507e894e5340f3',
402
451
  name: 'MongoshInvalidInputError',
403
452
  code: 'CLIREPL-1005',
404
453
  scope: 'CLIREPL',
@@ -411,7 +460,10 @@ describe('setupLoggerAndTelemetry', function () {
411
460
  {
412
461
  anonymousId: '53defe995fa47e6c13102d9d',
413
462
  event: 'Use',
414
- properties: { mongosh_version: '1.0.0' },
463
+ properties: {
464
+ mongosh_version: '1.0.0',
465
+ session_id: '5fb3c20ee1507e894e5340f3',
466
+ },
415
467
  },
416
468
  ],
417
469
  [
@@ -421,6 +473,7 @@ describe('setupLoggerAndTelemetry', function () {
421
473
  event: 'Show',
422
474
  properties: {
423
475
  mongosh_version: '1.0.0',
476
+ session_id: '5fb3c20ee1507e894e5340f3',
424
477
  method: 'dbs',
425
478
  },
426
479
  },
@@ -431,6 +484,7 @@ describe('setupLoggerAndTelemetry', function () {
431
484
  event: 'Script Loaded CLI',
432
485
  properties: {
433
486
  mongosh_version: '1.0.0',
487
+ session_id: '5fb3c20ee1507e894e5340f3',
434
488
  nested: true,
435
489
  shell: true,
436
490
  },
@@ -443,6 +497,7 @@ describe('setupLoggerAndTelemetry', function () {
443
497
  event: 'Script Loaded',
444
498
  properties: {
445
499
  mongosh_version: '1.0.0',
500
+ session_id: '5fb3c20ee1507e894e5340f3',
446
501
  nested: false,
447
502
  },
448
503
  anonymousId: '53defe995fa47e6c13102d9d',
@@ -454,6 +509,7 @@ describe('setupLoggerAndTelemetry', function () {
454
509
  event: 'Mongoshrc Loaded',
455
510
  properties: {
456
511
  mongosh_version: '1.0.0',
512
+ session_id: '5fb3c20ee1507e894e5340f3',
457
513
  },
458
514
  anonymousId: '53defe995fa47e6c13102d9d',
459
515
  },
@@ -464,6 +520,7 @@ describe('setupLoggerAndTelemetry', function () {
464
520
  event: 'Mongorc Warning',
465
521
  properties: {
466
522
  mongosh_version: '1.0.0',
523
+ session_id: '5fb3c20ee1507e894e5340f3',
467
524
  },
468
525
  anonymousId: '53defe995fa47e6c13102d9d',
469
526
  },
@@ -474,6 +531,7 @@ describe('setupLoggerAndTelemetry', function () {
474
531
  event: 'Script Evaluated',
475
532
  properties: {
476
533
  mongosh_version: '1.0.0',
534
+ session_id: '5fb3c20ee1507e894e5340f3',
477
535
  shell: true,
478
536
  },
479
537
  anonymousId: '53defe995fa47e6c13102d9d',
@@ -486,6 +544,7 @@ describe('setupLoggerAndTelemetry', function () {
486
544
  event: 'Snippet Install',
487
545
  properties: {
488
546
  mongosh_version: '1.0.0',
547
+ session_id: '5fb3c20ee1507e894e5340f3',
489
548
  },
490
549
  },
491
550
  ],
@@ -575,6 +634,7 @@ describe('setupLoggerAndTelemetry', function () {
575
634
  event: 'Deprecated Method',
576
635
  properties: {
577
636
  mongosh_version: '1.0.0',
637
+ session_id: '5fb3c20ee1507e894e5340f3',
578
638
  class: 'Database',
579
639
  method: 'cloneDatabase',
580
640
  },
@@ -587,6 +647,7 @@ describe('setupLoggerAndTelemetry', function () {
587
647
  event: 'Deprecated Method',
588
648
  properties: {
589
649
  mongosh_version: '1.0.0',
650
+ session_id: '5fb3c20ee1507e894e5340f3',
590
651
  class: 'Database',
591
652
  method: 'copyDatabase',
592
653
  },
@@ -599,6 +660,7 @@ describe('setupLoggerAndTelemetry', function () {
599
660
  event: 'Deprecated Method',
600
661
  properties: {
601
662
  mongosh_version: '1.0.0',
663
+ session_id: '5fb3c20ee1507e894e5340f3',
602
664
  class: 'Database',
603
665
  method: 'mangleDatabase',
604
666
  },
@@ -611,6 +673,7 @@ describe('setupLoggerAndTelemetry', function () {
611
673
  event: 'API Call',
612
674
  properties: {
613
675
  mongosh_version: '1.0.0',
676
+ session_id: '5fb3c20ee1507e894e5340f3',
614
677
  class: 'Database',
615
678
  method: 'cloneDatabase',
616
679
  count: 3,
@@ -624,6 +687,7 @@ describe('setupLoggerAndTelemetry', function () {
624
687
  event: 'API Call',
625
688
  properties: {
626
689
  mongosh_version: '1.0.0',
690
+ session_id: '5fb3c20ee1507e894e5340f3',
627
691
  class: 'Database',
628
692
  method: 'copyDatabase',
629
693
  count: 1,
@@ -30,6 +30,7 @@ import type {
30
30
  EditorReadVscodeExtensionsFailedEvent,
31
31
  FetchingUpdateMetadataEvent,
32
32
  FetchingUpdateMetadataCompleteEvent,
33
+ SessionStartedEvent,
33
34
  } from '@mongosh/types';
34
35
  import { inspect } from 'util';
35
36
  import type { MongoLogWriter } from 'mongodb-log-writer';
@@ -58,6 +59,33 @@ class MultiSet<T extends Record<string, any>> {
58
59
  }
59
60
  }
60
61
 
62
+ /**
63
+ * It transforms a random string into snake case. Snake case is completely
64
+ * lowercase and uses '_' to separate words. For example:
65
+ *
66
+ * This function defines a "word" as a sequence of characters until the next `.` or capital letter.
67
+ *
68
+ * 'Random String' => 'random_string'
69
+ *
70
+ * It will also remove any non alphanumeric characters to ensure the string
71
+ * is compatible with Segment. For example:
72
+ *
73
+ * 'Node.js REPL Instantiation' => 'node_js_repl_instantiation'
74
+ *
75
+ * @param str Any non snake-case formatted string
76
+ * @returns The snake-case formatted string
77
+ */
78
+ export function toSnakeCase(str: string): string {
79
+ const matches = str.match(
80
+ /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g
81
+ );
82
+ if (!matches) {
83
+ return str;
84
+ }
85
+
86
+ return matches.map((x) => x.toLowerCase()).join('_');
87
+ }
88
+
61
89
  /**
62
90
  * Connect a MongoshBus instance that emits events to logging and analytics providers.
63
91
  *
@@ -72,10 +100,17 @@ export function setupLoggerAndTelemetry(
72
100
  userTraits: any,
73
101
  mongosh_version: string
74
102
  ): void {
75
- const { logId } = log;
103
+ const { logId: session_id } = log;
76
104
  let userId: string;
77
105
  let telemetryAnonymousId: string;
78
106
 
107
+ userTraits = { ...userTraits, session_id };
108
+
109
+ const trackProperties = {
110
+ mongosh_version,
111
+ session_id,
112
+ };
113
+
79
114
  const getTelemetryUserIdentity = () => {
80
115
  if (telemetryAnonymousId) {
81
116
  return {
@@ -115,7 +150,7 @@ export function setupLoggerAndTelemetry(
115
150
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
116
151
  const { uri: _uri, ...argsWithoutUri } = args;
117
152
  const params = {
118
- session_id: logId,
153
+ session_id,
119
154
  userId,
120
155
  telemetryAnonymousId,
121
156
  connectionUri,
@@ -133,13 +168,32 @@ export function setupLoggerAndTelemetry(
133
168
  ...getTelemetryUserIdentity(),
134
169
  event: 'New Connection',
135
170
  properties: {
136
- mongosh_version,
137
- session_id: logId,
171
+ ...trackProperties,
138
172
  ...argsWithoutUri,
139
173
  },
140
174
  });
141
175
  });
142
176
 
177
+ bus.on('mongosh:start-session', function (args: SessionStartedEvent) {
178
+ const normalisedTimingsArray = Object.entries(args.timings).map(
179
+ ([key, duration]) => {
180
+ const snakeCaseKey = toSnakeCase(key);
181
+ return [snakeCaseKey, duration];
182
+ }
183
+ );
184
+
185
+ const normalisedTimings = Object.fromEntries(normalisedTimingsArray);
186
+ analytics.track({
187
+ ...getTelemetryUserIdentity(),
188
+ event: 'Startup Time',
189
+ properties: {
190
+ ...trackProperties,
191
+ is_interactive: args.isInteractive,
192
+ ...normalisedTimings,
193
+ },
194
+ });
195
+ });
196
+
143
197
  bus.on(
144
198
  'mongosh:new-user',
145
199
  function (newTelemetryUserIdentity: {
@@ -212,7 +266,7 @@ export function setupLoggerAndTelemetry(
212
266
  ...getTelemetryUserIdentity(),
213
267
  event: 'Error',
214
268
  properties: {
215
- mongosh_version,
269
+ ...trackProperties,
216
270
  name: mongoshError.name,
217
271
  code: mongoshError.code,
218
272
  scope: mongoshError.scope,
@@ -258,7 +312,7 @@ export function setupLoggerAndTelemetry(
258
312
  ...getTelemetryUserIdentity(),
259
313
  event: 'Use',
260
314
  properties: {
261
- mongosh_version,
315
+ ...trackProperties,
262
316
  },
263
317
  });
264
318
  });
@@ -276,7 +330,7 @@ export function setupLoggerAndTelemetry(
276
330
  ...getTelemetryUserIdentity(),
277
331
  event: 'Show',
278
332
  properties: {
279
- mongosh_version,
333
+ ...trackProperties,
280
334
  method: args.method,
281
335
  },
282
336
  });
@@ -325,7 +379,7 @@ export function setupLoggerAndTelemetry(
325
379
  ...getTelemetryUserIdentity(),
326
380
  event: hasStartedMongoshRepl ? 'Script Loaded' : 'Script Loaded CLI',
327
381
  properties: {
328
- mongosh_version,
382
+ ...trackProperties,
329
383
  nested: args.nested,
330
384
  ...(hasStartedMongoshRepl ? {} : { shell: usesShellOption }),
331
385
  },
@@ -344,7 +398,7 @@ export function setupLoggerAndTelemetry(
344
398
  ...getTelemetryUserIdentity(),
345
399
  event: 'Script Evaluated',
346
400
  properties: {
347
- mongosh_version,
401
+ ...trackProperties,
348
402
  shell: usesShellOption,
349
403
  },
350
404
  });
@@ -362,7 +416,7 @@ export function setupLoggerAndTelemetry(
362
416
  ...getTelemetryUserIdentity(),
363
417
  event: 'Mongoshrc Loaded',
364
418
  properties: {
365
- mongosh_version,
419
+ ...trackProperties,
366
420
  },
367
421
  });
368
422
  });
@@ -379,7 +433,7 @@ export function setupLoggerAndTelemetry(
379
433
  ...getTelemetryUserIdentity(),
380
434
  event: 'Mongorc Warning',
381
435
  properties: {
382
- mongosh_version,
436
+ ...trackProperties,
383
437
  },
384
438
  });
385
439
  });
@@ -564,7 +618,7 @@ export function setupLoggerAndTelemetry(
564
618
  ...getTelemetryUserIdentity(),
565
619
  event: 'Snippet Install',
566
620
  properties: {
567
- mongosh_version,
621
+ ...trackProperties,
568
622
  },
569
623
  });
570
624
  }
@@ -616,7 +670,7 @@ export function setupLoggerAndTelemetry(
616
670
  ...getTelemetryUserIdentity(),
617
671
  event: 'Deprecated Method',
618
672
  properties: {
619
- mongosh_version,
673
+ ...trackProperties,
620
674
  ...entry,
621
675
  },
622
676
  });
@@ -626,7 +680,7 @@ export function setupLoggerAndTelemetry(
626
680
  ...getTelemetryUserIdentity(),
627
681
  event: 'API Call',
628
682
  properties: {
629
- mongosh_version,
683
+ ...trackProperties,
630
684
  ...entry,
631
685
  count,
632
686
  },