@mongosh/logging 1.1.8 → 1.2.2

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
@@ -1,3 +1,4 @@
1
1
  Anna Henningsen <anna@addaleax.net>
2
2
  Alena Khineika <alena.khineika@gmail.com>
3
3
  github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
4
+ Sergey Petushkov <petushkov.sergey@gmail.com>
@@ -0,0 +1,31 @@
1
+ export interface MongoshAnalytics {
2
+ identify(message: {
3
+ userId: string;
4
+ traits: {
5
+ platform: string;
6
+ };
7
+ }): void;
8
+ track(message: {
9
+ userId: string;
10
+ event: string;
11
+ properties: {
12
+ mongosh_version: string;
13
+ [key: string]: any;
14
+ };
15
+ }): void;
16
+ }
17
+ export declare class NoopAnalytics implements MongoshAnalytics {
18
+ identify(_info: any): void;
19
+ track(_info: any): void;
20
+ }
21
+ export declare class ToggleableAnalytics implements MongoshAnalytics {
22
+ _queue: Array<['identify', Parameters<MongoshAnalytics['identify']>] | ['track', Parameters<MongoshAnalytics['track']>]>;
23
+ _state: 'enabled' | 'disabled' | 'paused';
24
+ _target: MongoshAnalytics;
25
+ constructor(target?: MongoshAnalytics);
26
+ identify(...args: Parameters<MongoshAnalytics['identify']>): void;
27
+ track(...args: Parameters<MongoshAnalytics['track']>): void;
28
+ enable(): void;
29
+ disable(): void;
30
+ pause(): void;
31
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToggleableAnalytics = exports.NoopAnalytics = void 0;
4
+ class NoopAnalytics {
5
+ identify(_info) { }
6
+ track(_info) { }
7
+ }
8
+ exports.NoopAnalytics = NoopAnalytics;
9
+ class ToggleableAnalytics {
10
+ constructor(target = new NoopAnalytics()) {
11
+ this._queue = [];
12
+ this._state = 'paused';
13
+ this._target = target;
14
+ }
15
+ identify(...args) {
16
+ switch (this._state) {
17
+ case 'enabled':
18
+ this._target.identify(...args);
19
+ break;
20
+ case 'paused':
21
+ this._queue.push(['identify', args]);
22
+ break;
23
+ default:
24
+ break;
25
+ }
26
+ }
27
+ track(...args) {
28
+ switch (this._state) {
29
+ case 'enabled':
30
+ this._target.track(...args);
31
+ break;
32
+ case 'paused':
33
+ this._queue.push(['track', args]);
34
+ break;
35
+ default:
36
+ break;
37
+ }
38
+ }
39
+ enable() {
40
+ this._state = 'enabled';
41
+ const queue = this._queue;
42
+ this._queue = [];
43
+ for (const entry of queue) {
44
+ if (entry[0] === 'identify')
45
+ this.identify(...entry[1]);
46
+ if (entry[0] === 'track')
47
+ this.track(...entry[1]);
48
+ }
49
+ }
50
+ disable() {
51
+ this._state = 'disabled';
52
+ this._queue = [];
53
+ }
54
+ pause() {
55
+ this._state = 'paused';
56
+ }
57
+ }
58
+ exports.ToggleableAnalytics = ToggleableAnalytics;
59
+ //# sourceMappingURL=analytics-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-helpers.js","sourceRoot":"","sources":["../src/analytics-helpers.ts"],"names":[],"mappings":";;;AAyBA,MAAa,aAAa;IACxB,QAAQ,CAAC,KAAU,IAAS,CAAC;IAC7B,KAAK,CAAC,KAAU,IAAS,CAAC;CAC3B;AAHD,sCAGC;AAMD,MAAa,mBAAmB;IAK9B,YAAY,SAA2B,IAAI,aAAa,EAAE;QAJ1D,WAAM,GAAqH,EAAE,CAAC;QAC9H,WAAM,GAAsC,QAAQ,CAAC;QAInD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,GAAG,IAA8C;QACxD,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,SAAS;gBACZ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;gBACrC,MAAM;YACR;gBACE,MAAM;SACT;IACH,CAAC;IAED,KAAK,CAAC,GAAG,IAA2C;QAClD,QAAQ,IAAI,CAAC,MAAM,EAAE;YACnB,KAAK,SAAS;gBACZ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBAClC,MAAM;YACR;gBACE,MAAM;SACT;IACH,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACnD;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACzB,CAAC;CACF;AArDD,kDAqDC"}
package/lib/index.d.ts CHANGED
@@ -1 +1,2 @@
1
- export { MongoshAnalytics, setupLoggerAndTelemetry } from './setup-logger-and-telemetry';
1
+ export { setupLoggerAndTelemetry } from './setup-logger-and-telemetry';
2
+ export { MongoshAnalytics, ToggleableAnalytics, NoopAnalytics } from './analytics-helpers';
package/lib/index.js CHANGED
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupLoggerAndTelemetry = void 0;
3
+ exports.NoopAnalytics = 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
+ var analytics_helpers_1 = require("./analytics-helpers");
7
+ Object.defineProperty(exports, "ToggleableAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.ToggleableAnalytics; } });
8
+ Object.defineProperty(exports, "NoopAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.NoopAnalytics; } });
6
9
  //# 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,2EAAyF;AAA9D,qIAAA,uBAAuB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,yDAA2F;AAAhE,wHAAA,mBAAmB,OAAA;AAAE,kHAAA,aAAa,OAAA"}
@@ -1,19 +1,4 @@
1
1
  import type { MongoshBus } from '@mongosh/types';
2
2
  import { MongoLogWriter } from 'mongodb-log-writer';
3
- export interface MongoshAnalytics {
4
- identify(message: {
5
- userId: string;
6
- traits: {
7
- platform: string;
8
- };
9
- }): void;
10
- track(message: {
11
- userId: string;
12
- event: string;
13
- properties: {
14
- mongosh_version: string;
15
- [key: string]: any;
16
- };
17
- }): void;
18
- }
19
- export declare function setupLoggerAndTelemetry(bus: MongoshBus, log: MongoLogWriter, makeAnalytics: () => MongoshAnalytics, userTraits: any, mongosh_version: string): void;
3
+ import { MongoshAnalytics } from './analytics-helpers';
4
+ export declare function setupLoggerAndTelemetry(bus: MongoshBus, log: MongoLogWriter, analytics: MongoshAnalytics, userTraits: any, mongosh_version: string): void;
@@ -9,10 +9,6 @@ const history_1 = require("@mongosh/history");
9
9
  const util_1 = require("util");
10
10
  const mongodb_log_writer_1 = require("mongodb-log-writer");
11
11
  const devtools_connect_1 = require("@mongodb-js/devtools-connect");
12
- class NoopAnalytics {
13
- identify(_info) { }
14
- track(_info) { }
15
- }
16
12
  class MultiSet {
17
13
  constructor() {
18
14
  this._entries = new Map();
@@ -31,17 +27,9 @@ class MultiSet {
31
27
  }
32
28
  }
33
29
  }
34
- function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_version) {
30
+ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_version) {
35
31
  const { logId } = log;
36
32
  let userId;
37
- let telemetry;
38
- let analytics = new NoopAnalytics();
39
- try {
40
- analytics = makeAnalytics();
41
- }
42
- catch (e) {
43
- log.error('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000001), 'analytics', 'Failed to instantiate analytics provider', e);
44
- }
45
33
  let hasStartedMongoshRepl = false;
46
34
  bus.on('mongosh:start-mongosh-repl', (ev) => {
47
35
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000002), 'repl', 'Started REPL', ev);
@@ -57,30 +45,24 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
57
45
  const { uri: _uri, ...argsWithoutUri } = args;
58
46
  const params = { session_id: logId, userId, connectionUri, ...argsWithoutUri };
59
47
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000004), 'connect', 'Connecting to server', params);
60
- if (telemetry) {
61
- analytics.track({
62
- userId,
63
- event: 'New Connection',
64
- properties: {
65
- mongosh_version,
66
- session_id: logId,
67
- ...argsWithoutUri
68
- }
69
- });
70
- }
48
+ analytics.track({
49
+ userId,
50
+ event: 'New Connection',
51
+ properties: {
52
+ mongosh_version,
53
+ session_id: logId,
54
+ ...argsWithoutUri
55
+ }
56
+ });
71
57
  });
72
- bus.on('mongosh:new-user', function (id, enableTelemetry) {
58
+ bus.on('mongosh:new-user', function (id) {
73
59
  userId = id;
74
- telemetry = enableTelemetry;
75
- if (telemetry)
76
- analytics.identify({ userId, traits: userTraits });
60
+ analytics.identify({ userId, traits: userTraits });
77
61
  });
78
- bus.on('mongosh:update-user', function (id, enableTelemetry) {
62
+ bus.on('mongosh:update-user', function (id) {
79
63
  userId = id;
80
- telemetry = enableTelemetry;
81
- if (telemetry)
82
- analytics.identify({ userId, traits: userTraits });
83
- log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000005), 'config', 'User updated', { enableTelemetry });
64
+ analytics.identify({ userId, traits: userTraits });
65
+ log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000005), 'config', 'User updated');
84
66
  });
85
67
  bus.on('mongosh:error', function (error, context) {
86
68
  if (context === 'fatal') {
@@ -89,7 +71,7 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
89
71
  else {
90
72
  log.error('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000006), context, `${error.name}: ${error.message}`, error);
91
73
  }
92
- if (telemetry && error.name.includes('Mongosh')) {
74
+ if (error.name.includes('Mongosh')) {
93
75
  analytics.track({
94
76
  userId,
95
77
  event: 'Error',
@@ -103,33 +85,32 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
103
85
  });
104
86
  }
105
87
  });
88
+ bus.on('mongosh:globalconfig-load', function (args) {
89
+ log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000048), 'config', 'Loading global configuration file', args);
90
+ });
106
91
  bus.on('mongosh:evaluate-input', function (args) {
107
92
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000007), 'repl', 'Evaluating input', args);
108
93
  });
109
94
  bus.on('mongosh:use', function (args) {
110
95
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000008), 'shell-api', 'Used "use" command', args);
111
- if (telemetry) {
112
- analytics.track({
113
- userId,
114
- event: 'Use',
115
- properties: {
116
- mongosh_version
117
- }
118
- });
119
- }
96
+ analytics.track({
97
+ userId,
98
+ event: 'Use',
99
+ properties: {
100
+ mongosh_version
101
+ }
102
+ });
120
103
  });
121
104
  bus.on('mongosh:show', function (args) {
122
105
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000009), 'shell-api', 'Used "show" command', args);
123
- if (telemetry) {
124
- analytics.track({
125
- userId,
126
- event: 'Show',
127
- properties: {
128
- mongosh_version,
129
- method: args.method
130
- }
131
- });
132
- }
106
+ analytics.track({
107
+ userId,
108
+ event: 'Show',
109
+ properties: {
110
+ mongosh_version,
111
+ method: args.method
112
+ }
113
+ });
133
114
  });
134
115
  bus.on('mongosh:setCtx', function (args) {
135
116
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000010), 'shell-api', 'Initialized context', args);
@@ -146,54 +127,46 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
146
127
  });
147
128
  bus.on('mongosh:api-load-file', function (args) {
148
129
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000012), 'shell-api', 'Loading file via load()', args);
149
- if (telemetry) {
150
- analytics.track({
151
- userId,
152
- event: hasStartedMongoshRepl ? 'Script Loaded' : 'Script Loaded CLI',
153
- properties: {
154
- mongosh_version,
155
- nested: args.nested,
156
- ...(hasStartedMongoshRepl ? {} : { shell: usesShellOption })
157
- }
158
- });
159
- }
130
+ analytics.track({
131
+ userId,
132
+ event: hasStartedMongoshRepl ? 'Script Loaded' : 'Script Loaded CLI',
133
+ properties: {
134
+ mongosh_version,
135
+ nested: args.nested,
136
+ ...(hasStartedMongoshRepl ? {} : { shell: usesShellOption })
137
+ }
138
+ });
160
139
  });
161
140
  bus.on('mongosh:eval-cli-script', function () {
162
141
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000013), 'repl', 'Evaluating script passed on the command line');
163
- if (telemetry) {
164
- analytics.track({
165
- userId,
166
- event: 'Script Evaluated',
167
- properties: {
168
- mongosh_version,
169
- shell: usesShellOption
170
- }
171
- });
172
- }
142
+ analytics.track({
143
+ userId,
144
+ event: 'Script Evaluated',
145
+ properties: {
146
+ mongosh_version,
147
+ shell: usesShellOption
148
+ }
149
+ });
173
150
  });
174
151
  bus.on('mongosh:mongoshrc-load', function () {
175
152
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000014), 'repl', 'Loading .mongoshrc.js');
176
- if (telemetry) {
177
- analytics.track({
178
- userId,
179
- event: 'Mongoshrc Loaded',
180
- properties: {
181
- mongosh_version
182
- }
183
- });
184
- }
153
+ analytics.track({
154
+ userId,
155
+ event: 'Mongoshrc Loaded',
156
+ properties: {
157
+ mongosh_version
158
+ }
159
+ });
185
160
  });
186
161
  bus.on('mongosh:mongoshrc-mongorc-warn', function () {
187
162
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000015), 'repl', 'Warning about .mongorc.js/.mongoshrc.js mismatch');
188
- if (telemetry) {
189
- analytics.track({
190
- userId,
191
- event: 'Mongorc Warning',
192
- properties: {
193
- mongosh_version
194
- }
195
- });
196
- }
163
+ analytics.track({
164
+ userId,
165
+ event: 'Mongorc Warning',
166
+ properties: {
167
+ mongosh_version
168
+ }
169
+ });
197
170
  });
198
171
  bus.on('mongosh:mongocryptd-tryspawn', function (ev) {
199
172
  log.info('MONGOCRYPTD', mongodb_log_writer_1.mongoLogId(1000000016), 'mongocryptd', 'Trying to spawn mongocryptd', ev);
@@ -246,7 +219,7 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
246
219
  });
247
220
  bus.on('mongosh-snippets:snippet-command', function (ev) {
248
221
  log.info('MONGOSH-SNIPPETS', mongodb_log_writer_1.mongoLogId(1000000031), 'snippets', 'Running snippet command', ev);
249
- if (telemetry && ev.args[0] === 'install') {
222
+ if (ev.args[0] === 'install') {
250
223
  analytics.track({
251
224
  userId,
252
225
  event: 'Snippet Install',
@@ -276,29 +249,25 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
276
249
  bus.on('mongosh:evaluate-finished', function () {
277
250
  for (const [entry] of deprecatedApiCalls) {
278
251
  log.warn('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000033), 'shell-api', 'Deprecated API call', entry);
279
- if (telemetry) {
280
- analytics.track({
281
- userId,
282
- event: 'Deprecated Method',
283
- properties: {
284
- mongosh_version,
285
- ...entry
286
- }
287
- });
288
- }
252
+ analytics.track({
253
+ userId,
254
+ event: 'Deprecated Method',
255
+ properties: {
256
+ mongosh_version,
257
+ ...entry
258
+ }
259
+ });
289
260
  }
290
261
  for (const [entry, count] of apiCalls) {
291
- if (telemetry) {
292
- analytics.track({
293
- userId,
294
- event: 'API Call',
295
- properties: {
296
- mongosh_version,
297
- ...entry,
298
- count
299
- }
300
- });
301
- }
262
+ analytics.track({
263
+ userId,
264
+ event: 'API Call',
265
+ properties: {
266
+ mongosh_version,
267
+ ...entry,
268
+ count
269
+ }
270
+ });
302
271
  }
303
272
  deprecatedApiCalls.clear();
304
273
  apiCalls.clear();
@@ -308,7 +277,7 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
308
277
  log.info('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000040), 'connect', 'Reconnect because of changed connection options');
309
278
  });
310
279
  bus.on('mongosh-editor:run-edit-command', function (ev) {
311
- log.error('MONGOSH-EDITOR', mongodb_log_writer_1.mongoLogId(1000000045), 'editor', 'Open external editor', mongodb_redact_1.default(ev));
280
+ log.error('MONGOSH-EDITOR', mongodb_log_writer_1.mongoLogId(1000000047), 'editor', 'Open external editor', mongodb_redact_1.default(ev));
312
281
  });
313
282
  bus.on('mongosh-editor:read-vscode-extensions-done', function (ev) {
314
283
  log.error('MONGOSH-EDITOR', mongodb_log_writer_1.mongoLogId(1000000043), 'editor', 'Reading vscode extensions from file system succeeded', ev);
@@ -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": "1.1.8",
3
+ "version": "1.2.2",
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": ">=12.4.0"
18
18
  },
19
19
  "dependencies": {
20
- "@mongodb-js/devtools-connect": "^1.0.0",
21
- "@mongosh/errors": "1.1.8",
22
- "@mongosh/history": "1.1.8",
23
- "@mongosh/types": "1.1.8",
20
+ "@mongodb-js/devtools-connect": "^1.2.4",
21
+ "@mongosh/errors": "1.2.2",
22
+ "@mongosh/history": "1.2.2",
23
+ "@mongosh/types": "1.2.2",
24
24
  "mongodb-log-writer": "^1.1.3",
25
25
  "mongodb-redact": "^0.2.2"
26
26
  },
@@ -35,5 +35,5 @@
35
35
  "mongosh": {
36
36
  "unitTestsOnly": true
37
37
  },
38
- "gitHead": "4e85ce5da2c82852b3de012b584fbf615f0477d9"
38
+ "gitHead": "7956ae40dde9eb7e6ee8cad058f88953781dc049"
39
39
  }
@@ -0,0 +1,44 @@
1
+ import { expect } from 'chai';
2
+ import { ToggleableAnalytics, MongoshAnalytics } from './analytics-helpers';
3
+
4
+ describe('ToggleableAnalytics', () => {
5
+ let events: any[];
6
+ let target: MongoshAnalytics;
7
+
8
+ beforeEach(() => {
9
+ events = [];
10
+ target = {
11
+ identify(info: any) { events.push(['identify', info]); },
12
+ track(info: any) { events.push(['track', info]); }
13
+ };
14
+ });
15
+
16
+ it('starts out in paused state and can be toggled on and off', () => {
17
+ const toggleable = new ToggleableAnalytics(target);
18
+ expect(events).to.have.lengthOf(0);
19
+
20
+ toggleable.identify({ userId: 'me', traits: { platform: '1234' } });
21
+ toggleable.track({ userId: 'me', event: 'something', properties: { mongosh_version: '1.2.3' } });
22
+ expect(events).to.have.lengthOf(0);
23
+
24
+ toggleable.enable();
25
+ expect(events).to.have.lengthOf(2);
26
+
27
+ toggleable.track({ userId: 'me', event: 'something2', properties: { mongosh_version: '1.2.3' } });
28
+ expect(events).to.have.lengthOf(3);
29
+
30
+ toggleable.pause();
31
+ toggleable.track({ userId: 'me', event: 'something3', properties: { mongosh_version: '1.2.3' } });
32
+ expect(events).to.have.lengthOf(3);
33
+
34
+ toggleable.disable();
35
+ expect(events).to.have.lengthOf(3);
36
+ toggleable.enable();
37
+
38
+ expect(events).to.deep.equal([
39
+ [ 'identify', { userId: 'me', traits: { platform: '1234' } } ],
40
+ [ 'track', { userId: 'me', event: 'something', properties: { mongosh_version: '1.2.3' } } ],
41
+ [ 'track', { userId: 'me', event: 'something2', properties: { mongosh_version: '1.2.3' } } ]
42
+ ]);
43
+ });
44
+ });
@@ -0,0 +1,88 @@
1
+ /**
2
+ * General interface for an Analytics provider that mongosh can use.
3
+ */
4
+ export interface MongoshAnalytics {
5
+ identify(message: {
6
+ userId: string,
7
+ traits: { platform: string }
8
+ }): void;
9
+
10
+ track(message: {
11
+ userId: string,
12
+ event: string,
13
+ properties: {
14
+ // eslint-disable-next-line camelcase
15
+ mongosh_version: string,
16
+ [key: string]: any;
17
+ }
18
+ }): void;
19
+ }
20
+
21
+ /**
22
+ * A no-op implementation of MongoshAnalytics that can be used when
23
+ * actually connecting to the telemetry provider is not possible
24
+ * (e.g. because we are running without an API key).
25
+ */
26
+ export class NoopAnalytics implements MongoshAnalytics {
27
+ identify(_info: any): void {} // eslint-disable-line @typescript-eslint/no-unused-vars
28
+ track(_info: any): void {} // eslint-disable-line @typescript-eslint/no-unused-vars
29
+ }
30
+
31
+ /**
32
+ * An implementation of MongoshAnalytics that forwards to another implementation
33
+ * and can be enabled/paused/disabled.
34
+ */
35
+ export class ToggleableAnalytics implements MongoshAnalytics {
36
+ _queue: Array<['identify', Parameters<MongoshAnalytics['identify']>] | ['track', Parameters<MongoshAnalytics['track']>]> = [];
37
+ _state: 'enabled' | 'disabled' | 'paused' = 'paused';
38
+ _target: MongoshAnalytics;
39
+
40
+ constructor(target: MongoshAnalytics = new NoopAnalytics()) {
41
+ this._target = target;
42
+ }
43
+
44
+ identify(...args: Parameters<MongoshAnalytics['identify']>): void {
45
+ switch (this._state) {
46
+ case 'enabled':
47
+ this._target.identify(...args);
48
+ break;
49
+ case 'paused':
50
+ this._queue.push(['identify', args]);
51
+ break;
52
+ default:
53
+ break;
54
+ }
55
+ }
56
+
57
+ track(...args: Parameters<MongoshAnalytics['track']>): void {
58
+ switch (this._state) {
59
+ case 'enabled':
60
+ this._target.track(...args);
61
+ break;
62
+ case 'paused':
63
+ this._queue.push(['track', args]);
64
+ break;
65
+ default:
66
+ break;
67
+ }
68
+ }
69
+
70
+ enable() {
71
+ this._state = 'enabled';
72
+ const queue = this._queue;
73
+ this._queue = [];
74
+ for (const entry of queue) {
75
+ if (entry[0] === 'identify') this.identify(...entry[1]);
76
+ if (entry[0] === 'track') this.track(...entry[1]);
77
+ }
78
+ }
79
+
80
+ disable() {
81
+ this._state = 'disabled';
82
+ this._queue = [];
83
+ }
84
+
85
+ pause() {
86
+ this._state = 'paused';
87
+ }
88
+ }
package/src/index.ts CHANGED
@@ -1 +1,2 @@
1
- export { MongoshAnalytics, setupLoggerAndTelemetry } from './setup-logger-and-telemetry';
1
+ export { setupLoggerAndTelemetry } from './setup-logger-and-telemetry';
2
+ export { MongoshAnalytics, ToggleableAnalytics, NoopAnalytics } from './analytics-helpers';
@@ -29,30 +29,26 @@ describe('setupLoggerAndTelemetry', () => {
29
29
  });
30
30
 
31
31
  it('works', () => {
32
- setupLoggerAndTelemetry(bus, logger, () => analytics, {
32
+ setupLoggerAndTelemetry(bus, logger, analytics, {
33
33
  platform: process.platform,
34
34
  arch: process.arch
35
35
  }, '1.0.0');
36
36
  expect(logOutput).to.have.lengthOf(0);
37
37
  expect(analyticsOutput).to.be.empty;
38
38
 
39
- bus.emit('mongosh:new-user', userId, false);
40
- bus.emit('mongosh:new-user', userId, true);
39
+ bus.emit('mongosh:new-user', userId);
41
40
 
42
- // Test some events with and without telemetry enabled
43
- for (const telemetry of [ false, true ]) {
44
- bus.emit('mongosh:update-user', userId, telemetry);
45
- bus.emit('mongosh:connect', {
46
- uri: 'mongodb://localhost/',
47
- is_localhost: true,
48
- is_atlas: false,
49
- node_version: 'v12.19.0'
50
- } as any);
51
- bus.emit('mongosh:error', new MongoshInvalidInputError('meow', 'CLIREPL-1005', { cause: 'x' }), 'repl');
52
- bus.emit('mongosh:error', new MongoshInvalidInputError('meow', 'CLIREPL-1005', { cause: 'x' }), 'fatal');
53
- bus.emit('mongosh:use', { db: 'admin' });
54
- bus.emit('mongosh:show', { method: 'dbs' });
55
- }
41
+ bus.emit('mongosh:update-user', userId);
42
+ bus.emit('mongosh:connect', {
43
+ uri: 'mongodb://localhost/',
44
+ is_localhost: true,
45
+ is_atlas: false,
46
+ node_version: 'v12.19.0'
47
+ } as any);
48
+ bus.emit('mongosh:error', new MongoshInvalidInputError('meow', 'CLIREPL-1005', { cause: 'x' }), 'repl');
49
+ bus.emit('mongosh:error', new MongoshInvalidInputError('meow', 'CLIREPL-1005', { cause: 'x' }), 'fatal');
50
+ bus.emit('mongosh:use', { db: 'admin' });
51
+ bus.emit('mongosh:show', { method: 'dbs' });
56
52
 
57
53
  bus.emit('mongosh:setCtx', { method: 'setCtx' });
58
54
  bus.emit('mongosh:api-call-with-arguments', { method: 'auth', class: 'Database', db: 'test-1603986682000', arguments: { } });
@@ -71,6 +67,7 @@ describe('setupLoggerAndTelemetry', () => {
71
67
  bus.emit('mongosh:mongoshrc-load');
72
68
  bus.emit('mongosh:mongoshrc-mongorc-warn');
73
69
  bus.emit('mongosh:eval-cli-script');
70
+ bus.emit('mongosh:globalconfig-load', { filename: '/etc/mongosh.conf', found: true });
74
71
 
75
72
  bus.emit('mongosh:mongocryptd-tryspawn', { spawnPath: ['mongocryptd'], path: 'path' });
76
73
  bus.emit('mongosh:mongocryptd-error', { cause: 'something', error: new Error('mongocryptd error!'), stderr: 'stderr', pid: 12345 });
@@ -102,8 +99,17 @@ describe('setupLoggerAndTelemetry', () => {
102
99
  bus.emit('devtools-connect:connect-heartbeat-succeeded', { connectionId: 'localhost' });
103
100
  bus.emit('devtools-connect:connect-fail-early');
104
101
  bus.emit('devtools-connect:connect-attempt-finished');
105
- bus.emit('devtools-connect:resolve-srv-error', { from: 'mongodb+srv://foo:bar@hello.world/', error: new Error('failed'), duringLoad: false });
106
- bus.emit('devtools-connect:resolve-srv-succeeded', { from: 'mongodb+srv://foo:bar@hello.world/', to: 'mongodb://foo:bar@db.hello.world/' });
102
+ bus.emit('devtools-connect:resolve-srv-error', {
103
+ from: 'mongodb+srv://foo:bar@hello.world/',
104
+ error: new Error('failed'),
105
+ duringLoad: false,
106
+ resolutionDetails: []
107
+ });
108
+ bus.emit('devtools-connect:resolve-srv-succeeded', {
109
+ from: 'mongodb+srv://foo:bar@hello.world/',
110
+ to: 'mongodb://foo:bar@db.hello.world/',
111
+ resolutionDetails: []
112
+ });
107
113
  bus.emit('devtools-connect:missing-optional-dependency', { name: 'kerberos', error: new Error('no kerberos') });
108
114
  bus.emit('mongosh-sp:reset-connection-options');
109
115
 
@@ -112,8 +118,7 @@ describe('setupLoggerAndTelemetry', () => {
112
118
  bus.emit('mongosh-editor:read-vscode-extensions-failed', { vscodeDir: 'vscodir', error: new Error('failed') });
113
119
 
114
120
  let i = 0;
115
- expect(logOutput[i].msg).to.equal('User updated');
116
- expect(logOutput[i++].attr).to.deep.equal({ enableTelemetry: false });
121
+ expect(logOutput[i++].msg).to.equal('User updated');
117
122
  expect(logOutput[i].msg).to.equal('Connecting to server');
118
123
  expect(logOutput[i].attr.session_id).to.equal('5fb3c20ee1507e894e5340f3');
119
124
  expect(logOutput[i].attr.userId).to.equal('53defe995fa47e6c13102d9d');
@@ -129,17 +134,6 @@ describe('setupLoggerAndTelemetry', () => {
129
134
  expect(logOutput[i++].attr).to.deep.equal({ db: 'admin' });
130
135
  expect(logOutput[i].msg).to.equal('Used "show" command');
131
136
  expect(logOutput[i++].attr).to.deep.equal({ method: 'dbs' });
132
- expect(logOutput[i].msg).to.equal('User updated');
133
- expect(logOutput[i++].attr).to.deep.equal({ enableTelemetry: true });
134
- expect(logOutput[i++].msg).to.equal('Connecting to server');
135
- expect(logOutput[i].s).to.equal('E');
136
- expect(logOutput[i++].attr.message).to.match(/meow/);
137
- expect(logOutput[i].s).to.equal('F');
138
- expect(logOutput[i++].attr.message).to.match(/meow/);
139
- expect(logOutput[i].msg).to.equal('Used "use" command');
140
- expect(logOutput[i++].attr).to.deep.equal({ db: 'admin' });
141
- expect(logOutput[i].msg).to.equal('Used "show" command');
142
- expect(logOutput[i++].attr).to.deep.equal({ method: 'dbs' });
143
137
  expect(logOutput[i++].msg).to.equal('Initialized context');
144
138
  expect(logOutput[i].msg).to.equal('Performed API call');
145
139
  expect(logOutput[i++].attr.db).to.equal('test-1603986682000');
@@ -160,6 +154,8 @@ describe('setupLoggerAndTelemetry', () => {
160
154
  expect(logOutput[i++].msg).to.equal('Loading .mongoshrc.js');
161
155
  expect(logOutput[i++].msg).to.equal('Warning about .mongorc.js/.mongoshrc.js mismatch');
162
156
  expect(logOutput[i++].msg).to.equal('Evaluating script passed on the command line');
157
+ expect(logOutput[i].msg).to.equal('Loading global configuration file');
158
+ expect(logOutput[i++].attr.filename).to.equal('/etc/mongosh.conf');
163
159
  expect(logOutput[i].msg).to.equal('Trying to spawn mongocryptd');
164
160
  expect(logOutput[i++].attr).to.deep.equal({ spawnPath: ['mongocryptd'], path: 'path' });
165
161
  expect(logOutput[i].msg).to.equal('Error running mongocryptd');
@@ -201,9 +197,9 @@ describe('setupLoggerAndTelemetry', () => {
201
197
  expect(logOutput[i++].msg).to.equal('Aborting connection attempt as irrecoverable');
202
198
  expect(logOutput[i++].msg).to.equal('Connection attempt finished');
203
199
  expect(logOutput[i].msg).to.equal('Resolving SRV record failed');
204
- expect(logOutput[i++].attr).to.deep.equal({ from: 'mongodb+srv://<credentials>@hello.world/', error: 'failed', duringLoad: false });
200
+ expect(logOutput[i++].attr).to.deep.equal({ from: 'mongodb+srv://<credentials>@hello.world/', error: 'failed', duringLoad: false, resolutionDetails: [] });
205
201
  expect(logOutput[i].msg).to.equal('Resolving SRV record succeeded');
206
- expect(logOutput[i++].attr).to.deep.equal({ from: 'mongodb+srv://<credentials>@hello.world/', to: 'mongodb://<credentials>@db.hello.world/' });
202
+ expect(logOutput[i++].attr).to.deep.equal({ from: 'mongodb+srv://<credentials>@hello.world/', to: 'mongodb://<credentials>@db.hello.world/', resolutionDetails: [] });
207
203
  expect(logOutput[i].msg).to.equal('Missing optional dependency');
208
204
  expect(logOutput[i++].attr).to.deep.equal({ name: 'kerberos', error: 'no kerberos' });
209
205
  expect(logOutput[i++].msg).to.equal('Reconnect because of changed connection options');
@@ -365,11 +361,11 @@ describe('setupLoggerAndTelemetry', () => {
365
361
  });
366
362
 
367
363
  it('buffers deprecated API calls', () => {
368
- setupLoggerAndTelemetry(bus, logger, () => analytics, {}, '1.0.0');
364
+ setupLoggerAndTelemetry(bus, logger, analytics, {}, '1.0.0');
369
365
  expect(logOutput).to.have.lengthOf(0);
370
366
  expect(analyticsOutput).to.be.empty;
371
367
 
372
- bus.emit('mongosh:new-user', userId, true);
368
+ bus.emit('mongosh:new-user', userId);
373
369
 
374
370
  logOutput = [];
375
371
  analyticsOutput = [];
@@ -459,7 +455,7 @@ describe('setupLoggerAndTelemetry', () => {
459
455
  ],
460
456
  ]);
461
457
 
462
- bus.emit('mongosh:new-user', userId, false);
458
+ bus.emit('mongosh:new-user', userId);
463
459
  logOutput = [];
464
460
  analyticsOutput = [];
465
461
 
@@ -472,14 +468,6 @@ describe('setupLoggerAndTelemetry', () => {
472
468
  expect(logOutput).to.have.length(1);
473
469
  expect(logOutput[0].msg).to.equal('Deprecated API call');
474
470
  expect(logOutput[0].attr).to.deep.equal({ class: 'Database', method: 'cloneDatabase' });
475
- expect(analyticsOutput).to.be.empty;
476
- });
477
-
478
- it('works when analytics are not available', () => {
479
- setupLoggerAndTelemetry(bus, logger, () => { throw new Error(); }, {}, '1.0.0');
480
- bus.emit('mongosh:new-user', userId, true);
481
- expect(analyticsOutput).to.be.empty;
482
- expect(logOutput).to.have.lengthOf(1);
483
- expect(logOutput[0].s).to.equal('E');
471
+ expect(analyticsOutput).to.have.lengthOf(2);
484
472
  });
485
473
  });
@@ -12,6 +12,7 @@ import type {
12
12
  ScriptLoadFileEvent,
13
13
  StartLoadingCliScriptsEvent,
14
14
  StartMongoshReplEvent,
15
+ GlobalConfigFileLoadEvent,
15
16
  MongocryptdTrySpawnEvent,
16
17
  MongocryptdLogEvent,
17
18
  MongocryptdErrorEvent,
@@ -33,35 +34,7 @@ import type {
33
34
  import { inspect } from 'util';
34
35
  import { MongoLogWriter, mongoLogId } from 'mongodb-log-writer';
35
36
  import { hookLogger as devtoolsConnectHookLogger } from '@mongodb-js/devtools-connect';
36
-
37
- /**
38
- * General interface for an Analytics provider that mongosh can use.
39
- */
40
- export interface MongoshAnalytics {
41
- identify(message: {
42
- userId: string,
43
- traits: { platform: string }
44
- }): void;
45
-
46
- track(message: {
47
- userId: string,
48
- event: string,
49
- properties: {
50
- mongosh_version: string,
51
- [key: string]: any;
52
- }
53
- }): void;
54
- }
55
-
56
- /**
57
- * A no-op implementation of MongoshAnalytics that can be used when
58
- * actually connecting to the telemetry provider is not possible
59
- * (e.g. because we are running without an API key).
60
- */
61
- class NoopAnalytics implements MongoshAnalytics {
62
- identify(_info: any): void {} // eslint-disable-line @typescript-eslint/no-unused-vars
63
- track(_info: any): void {} // eslint-disable-line @typescript-eslint/no-unused-vars
64
- }
37
+ import { MongoshAnalytics } from './analytics-helpers';
65
38
 
66
39
  /**
67
40
  * A helper class for keeping track of how often specific events occurred.
@@ -95,19 +68,11 @@ class MultiSet<T> {
95
68
  export function setupLoggerAndTelemetry(
96
69
  bus: MongoshBus,
97
70
  log: MongoLogWriter,
98
- makeAnalytics: () => MongoshAnalytics,
71
+ analytics: MongoshAnalytics,
99
72
  userTraits: any,
100
73
  mongosh_version: string): void {
101
74
  const { logId } = log;
102
75
  let userId: string;
103
- let telemetry: boolean;
104
-
105
- let analytics: MongoshAnalytics = new NoopAnalytics();
106
- try {
107
- analytics = makeAnalytics();
108
- } catch (e) {
109
- log.error('MONGOSH', mongoLogId(1_000_000_001), 'analytics', 'Failed to instantiate analytics provider', e);
110
- }
111
76
 
112
77
  // We emit different analytics events for loading files and evaluating scripts
113
78
  // depending on whether we're already in the REPL or not yet. We store the
@@ -131,30 +96,26 @@ export function setupLoggerAndTelemetry(
131
96
  const params = { session_id: logId, userId, connectionUri, ...argsWithoutUri };
132
97
  log.info('MONGOSH', mongoLogId(1_000_000_004), 'connect', 'Connecting to server', params);
133
98
 
134
- if (telemetry) {
135
- analytics.track({
136
- userId,
137
- event: 'New Connection',
138
- properties: {
139
- mongosh_version,
140
- session_id: logId,
141
- ...argsWithoutUri
142
- }
143
- });
144
- }
99
+ analytics.track({
100
+ userId,
101
+ event: 'New Connection',
102
+ properties: {
103
+ mongosh_version,
104
+ session_id: logId,
105
+ ...argsWithoutUri
106
+ }
107
+ });
145
108
  });
146
109
 
147
- bus.on('mongosh:new-user', function(id: string, enableTelemetry: boolean) {
110
+ bus.on('mongosh:new-user', function(id: string) {
148
111
  userId = id;
149
- telemetry = enableTelemetry;
150
- if (telemetry) analytics.identify({ userId, traits: userTraits });
112
+ analytics.identify({ userId, traits: userTraits });
151
113
  });
152
114
 
153
- bus.on('mongosh:update-user', function(id: string, enableTelemetry: boolean) {
115
+ bus.on('mongosh:update-user', function(id: string) {
154
116
  userId = id;
155
- telemetry = enableTelemetry;
156
- if (telemetry) analytics.identify({ userId, traits: userTraits });
157
- log.info('MONGOSH', mongoLogId(1_000_000_005), 'config', 'User updated', { enableTelemetry });
117
+ analytics.identify({ userId, traits: userTraits });
118
+ log.info('MONGOSH', mongoLogId(1_000_000_005), 'config', 'User updated');
158
119
  });
159
120
 
160
121
  bus.on('mongosh:error', function(error: any, context: string) {
@@ -164,7 +125,7 @@ export function setupLoggerAndTelemetry(
164
125
  log.error('MONGOSH', mongoLogId(1_000_000_006), context, `${error.name}: ${error.message}`, error);
165
126
  }
166
127
 
167
- if (telemetry && error.name.includes('Mongosh')) {
128
+ if (error.name.includes('Mongosh')) {
168
129
  analytics.track({
169
130
  userId,
170
131
  event: 'Error',
@@ -179,6 +140,10 @@ export function setupLoggerAndTelemetry(
179
140
  }
180
141
  });
181
142
 
143
+ bus.on('mongosh:globalconfig-load', function(args: GlobalConfigFileLoadEvent) {
144
+ log.info('MONGOSH', mongoLogId(1_000_000_048), 'config', 'Loading global configuration file', args);
145
+ });
146
+
182
147
  bus.on('mongosh:evaluate-input', function(args: EvaluateInputEvent) {
183
148
  log.info('MONGOSH', mongoLogId(1_000_000_007), 'repl', 'Evaluating input', args);
184
149
  });
@@ -186,30 +151,26 @@ export function setupLoggerAndTelemetry(
186
151
  bus.on('mongosh:use', function(args: UseEvent) {
187
152
  log.info('MONGOSH', mongoLogId(1_000_000_008), 'shell-api', 'Used "use" command', args);
188
153
 
189
- if (telemetry) {
190
- analytics.track({
191
- userId,
192
- event: 'Use',
193
- properties: {
194
- mongosh_version
195
- }
196
- });
197
- }
154
+ analytics.track({
155
+ userId,
156
+ event: 'Use',
157
+ properties: {
158
+ mongosh_version
159
+ }
160
+ });
198
161
  });
199
162
 
200
163
  bus.on('mongosh:show', function(args: ShowEvent) {
201
164
  log.info('MONGOSH', mongoLogId(1_000_000_009), 'shell-api', 'Used "show" command', args);
202
165
 
203
- if (telemetry) {
204
- analytics.track({
205
- userId,
206
- event: 'Show',
207
- properties: {
208
- mongosh_version,
209
- method: args.method
210
- }
211
- });
212
- }
166
+ analytics.track({
167
+ userId,
168
+ event: 'Show',
169
+ properties: {
170
+ mongosh_version,
171
+ method: args.method
172
+ }
173
+ });
213
174
  });
214
175
 
215
176
  bus.on('mongosh:setCtx', function(args: ApiEventWithArguments) {
@@ -230,60 +191,52 @@ export function setupLoggerAndTelemetry(
230
191
  bus.on('mongosh:api-load-file', function(args: ScriptLoadFileEvent) {
231
192
  log.info('MONGOSH', mongoLogId(1_000_000_012), 'shell-api', 'Loading file via load()', args);
232
193
 
233
- if (telemetry) {
234
- analytics.track({
235
- userId,
236
- event: hasStartedMongoshRepl ? 'Script Loaded' : 'Script Loaded CLI',
237
- properties: {
238
- mongosh_version,
239
- nested: args.nested,
240
- ...(hasStartedMongoshRepl ? {} : { shell: usesShellOption })
241
- }
242
- });
243
- }
194
+ analytics.track({
195
+ userId,
196
+ event: hasStartedMongoshRepl ? 'Script Loaded' : 'Script Loaded CLI',
197
+ properties: {
198
+ mongosh_version,
199
+ nested: args.nested,
200
+ ...(hasStartedMongoshRepl ? {} : { shell: usesShellOption })
201
+ }
202
+ });
244
203
  });
245
204
 
246
205
  bus.on('mongosh:eval-cli-script', function() {
247
206
  log.info('MONGOSH', mongoLogId(1_000_000_013), 'repl', 'Evaluating script passed on the command line');
248
207
 
249
- if (telemetry) {
250
- analytics.track({
251
- userId,
252
- event: 'Script Evaluated',
253
- properties: {
254
- mongosh_version,
255
- shell: usesShellOption
256
- }
257
- });
258
- }
208
+ analytics.track({
209
+ userId,
210
+ event: 'Script Evaluated',
211
+ properties: {
212
+ mongosh_version,
213
+ shell: usesShellOption
214
+ }
215
+ });
259
216
  });
260
217
 
261
218
  bus.on('mongosh:mongoshrc-load', function() {
262
219
  log.info('MONGOSH', mongoLogId(1_000_000_014), 'repl', 'Loading .mongoshrc.js');
263
220
 
264
- if (telemetry) {
265
- analytics.track({
266
- userId,
267
- event: 'Mongoshrc Loaded',
268
- properties: {
269
- mongosh_version
270
- }
271
- });
272
- }
221
+ analytics.track({
222
+ userId,
223
+ event: 'Mongoshrc Loaded',
224
+ properties: {
225
+ mongosh_version
226
+ }
227
+ });
273
228
  });
274
229
 
275
230
  bus.on('mongosh:mongoshrc-mongorc-warn', function() {
276
231
  log.info('MONGOSH', mongoLogId(1_000_000_015), 'repl', 'Warning about .mongorc.js/.mongoshrc.js mismatch');
277
232
 
278
- if (telemetry) {
279
- analytics.track({
280
- userId,
281
- event: 'Mongorc Warning',
282
- properties: {
283
- mongosh_version
284
- }
285
- });
286
- }
233
+ analytics.track({
234
+ userId,
235
+ event: 'Mongorc Warning',
236
+ properties: {
237
+ mongosh_version
238
+ }
239
+ });
287
240
  });
288
241
 
289
242
  bus.on('mongosh:mongocryptd-tryspawn', function(ev: MongocryptdTrySpawnEvent) {
@@ -352,7 +305,7 @@ export function setupLoggerAndTelemetry(
352
305
  bus.on('mongosh-snippets:snippet-command', function(ev: SnippetsCommandEvent) {
353
306
  log.info('MONGOSH-SNIPPETS', mongoLogId(1_000_000_031), 'snippets', 'Running snippet command', ev);
354
307
 
355
- if (telemetry && ev.args[0] === 'install') {
308
+ if (ev.args[0] === 'install') {
356
309
  analytics.track({
357
310
  userId,
358
311
  event: 'Snippet Install',
@@ -389,29 +342,25 @@ export function setupLoggerAndTelemetry(
389
342
  for (const [entry] of deprecatedApiCalls) {
390
343
  log.warn('MONGOSH', mongoLogId(1_000_000_033), 'shell-api', 'Deprecated API call', entry);
391
344
 
392
- if (telemetry) {
393
- analytics.track({
394
- userId,
395
- event: 'Deprecated Method',
396
- properties: {
397
- mongosh_version,
398
- ...entry
399
- }
400
- });
401
- }
345
+ analytics.track({
346
+ userId,
347
+ event: 'Deprecated Method',
348
+ properties: {
349
+ mongosh_version,
350
+ ...entry
351
+ }
352
+ });
402
353
  }
403
354
  for (const [entry, count] of apiCalls) {
404
- if (telemetry) {
405
- analytics.track({
406
- userId,
407
- event: 'API Call',
408
- properties: {
409
- mongosh_version,
410
- ...entry,
411
- count
412
- }
413
- });
414
- }
355
+ analytics.track({
356
+ userId,
357
+ event: 'API Call',
358
+ properties: {
359
+ mongosh_version,
360
+ ...entry,
361
+ count
362
+ }
363
+ });
415
364
  }
416
365
  deprecatedApiCalls.clear();
417
366
  apiCalls.clear();
@@ -426,7 +375,7 @@ export function setupLoggerAndTelemetry(
426
375
  });
427
376
 
428
377
  bus.on('mongosh-editor:run-edit-command', function(ev: EditorRunEditCommandEvent) {
429
- log.error('MONGOSH-EDITOR', mongoLogId(1_000_000_045), 'editor', 'Open external editor', redactInfo(ev));
378
+ log.error('MONGOSH-EDITOR', mongoLogId(1_000_000_047), 'editor', 'Open external editor', redactInfo(ev));
430
379
  });
431
380
 
432
381
  bus.on('mongosh-editor:read-vscode-extensions-done', function(ev: EditorReadVscodeExtensionsDoneEvent) {
@@ -441,4 +390,6 @@ export function setupLoggerAndTelemetry(
441
390
  });
442
391
 
443
392
  // NB: mongoLogId(1_000_000_045) is used in cli-repl itself
393
+ // NB: mongoLogId(1_000_000_034) through mongoLogId(1_000_000_042) are used in devtools-connect
394
+ // NB: mongoLogId(1_000_000_049) is used in devtools-connect
444
395
  }