@mongosh/logging 1.1.7 → 1.2.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
@@ -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;
@@ -8,10 +8,7 @@ const mongodb_redact_1 = __importDefault(require("mongodb-redact"));
8
8
  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
- class NoopAnalytics {
12
- identify(_info) { }
13
- track(_info) { }
14
- }
11
+ const devtools_connect_1 = require("@mongodb-js/devtools-connect");
15
12
  class MultiSet {
16
13
  constructor() {
17
14
  this._entries = new Map();
@@ -30,17 +27,9 @@ class MultiSet {
30
27
  }
31
28
  }
32
29
  }
33
- function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_version) {
30
+ function setupLoggerAndTelemetry(bus, log, analytics, userTraits, mongosh_version) {
34
31
  const { logId } = log;
35
32
  let userId;
36
- let telemetry;
37
- let analytics = new NoopAnalytics();
38
- try {
39
- analytics = makeAnalytics();
40
- }
41
- catch (e) {
42
- log.error('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000001), 'analytics', 'Failed to instantiate analytics provider', e);
43
- }
44
33
  let hasStartedMongoshRepl = false;
45
34
  bus.on('mongosh:start-mongosh-repl', (ev) => {
46
35
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000002), 'repl', 'Started REPL', ev);
@@ -56,30 +45,24 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
56
45
  const { uri: _uri, ...argsWithoutUri } = args;
57
46
  const params = { session_id: logId, userId, connectionUri, ...argsWithoutUri };
58
47
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000004), 'connect', 'Connecting to server', params);
59
- if (telemetry) {
60
- analytics.track({
61
- userId,
62
- event: 'New Connection',
63
- properties: {
64
- mongosh_version,
65
- session_id: logId,
66
- ...argsWithoutUri
67
- }
68
- });
69
- }
48
+ analytics.track({
49
+ userId,
50
+ event: 'New Connection',
51
+ properties: {
52
+ mongosh_version,
53
+ session_id: logId,
54
+ ...argsWithoutUri
55
+ }
56
+ });
70
57
  });
71
- bus.on('mongosh:new-user', function (id, enableTelemetry) {
58
+ bus.on('mongosh:new-user', function (id) {
72
59
  userId = id;
73
- telemetry = enableTelemetry;
74
- if (telemetry)
75
- analytics.identify({ userId, traits: userTraits });
60
+ analytics.identify({ userId, traits: userTraits });
76
61
  });
77
- bus.on('mongosh:update-user', function (id, enableTelemetry) {
62
+ bus.on('mongosh:update-user', function (id) {
78
63
  userId = id;
79
- telemetry = enableTelemetry;
80
- if (telemetry)
81
- analytics.identify({ userId, traits: userTraits });
82
- 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');
83
66
  });
84
67
  bus.on('mongosh:error', function (error, context) {
85
68
  if (context === 'fatal') {
@@ -88,7 +71,7 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
88
71
  else {
89
72
  log.error('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000006), context, `${error.name}: ${error.message}`, error);
90
73
  }
91
- if (telemetry && error.name.includes('Mongosh')) {
74
+ if (error.name.includes('Mongosh')) {
92
75
  analytics.track({
93
76
  userId,
94
77
  event: 'Error',
@@ -102,33 +85,32 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
102
85
  });
103
86
  }
104
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
+ });
105
91
  bus.on('mongosh:evaluate-input', function (args) {
106
92
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000007), 'repl', 'Evaluating input', args);
107
93
  });
108
94
  bus.on('mongosh:use', function (args) {
109
95
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000008), 'shell-api', 'Used "use" command', args);
110
- if (telemetry) {
111
- analytics.track({
112
- userId,
113
- event: 'Use',
114
- properties: {
115
- mongosh_version
116
- }
117
- });
118
- }
96
+ analytics.track({
97
+ userId,
98
+ event: 'Use',
99
+ properties: {
100
+ mongosh_version
101
+ }
102
+ });
119
103
  });
120
104
  bus.on('mongosh:show', function (args) {
121
105
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000009), 'shell-api', 'Used "show" command', args);
122
- if (telemetry) {
123
- analytics.track({
124
- userId,
125
- event: 'Show',
126
- properties: {
127
- mongosh_version,
128
- method: args.method
129
- }
130
- });
131
- }
106
+ analytics.track({
107
+ userId,
108
+ event: 'Show',
109
+ properties: {
110
+ mongosh_version,
111
+ method: args.method
112
+ }
113
+ });
132
114
  });
133
115
  bus.on('mongosh:setCtx', function (args) {
134
116
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000010), 'shell-api', 'Initialized context', args);
@@ -145,54 +127,46 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
145
127
  });
146
128
  bus.on('mongosh:api-load-file', function (args) {
147
129
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000012), 'shell-api', 'Loading file via load()', args);
148
- if (telemetry) {
149
- analytics.track({
150
- userId,
151
- event: hasStartedMongoshRepl ? 'Script Loaded' : 'Script Loaded CLI',
152
- properties: {
153
- mongosh_version,
154
- nested: args.nested,
155
- ...(hasStartedMongoshRepl ? {} : { shell: usesShellOption })
156
- }
157
- });
158
- }
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
+ });
159
139
  });
160
140
  bus.on('mongosh:eval-cli-script', function () {
161
141
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000013), 'repl', 'Evaluating script passed on the command line');
162
- if (telemetry) {
163
- analytics.track({
164
- userId,
165
- event: 'Script Evaluated',
166
- properties: {
167
- mongosh_version,
168
- shell: usesShellOption
169
- }
170
- });
171
- }
142
+ analytics.track({
143
+ userId,
144
+ event: 'Script Evaluated',
145
+ properties: {
146
+ mongosh_version,
147
+ shell: usesShellOption
148
+ }
149
+ });
172
150
  });
173
151
  bus.on('mongosh:mongoshrc-load', function () {
174
152
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000014), 'repl', 'Loading .mongoshrc.js');
175
- if (telemetry) {
176
- analytics.track({
177
- userId,
178
- event: 'Mongoshrc Loaded',
179
- properties: {
180
- mongosh_version
181
- }
182
- });
183
- }
153
+ analytics.track({
154
+ userId,
155
+ event: 'Mongoshrc Loaded',
156
+ properties: {
157
+ mongosh_version
158
+ }
159
+ });
184
160
  });
185
161
  bus.on('mongosh:mongoshrc-mongorc-warn', function () {
186
162
  log.info('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000015), 'repl', 'Warning about .mongorc.js/.mongoshrc.js mismatch');
187
- if (telemetry) {
188
- analytics.track({
189
- userId,
190
- event: 'Mongorc Warning',
191
- properties: {
192
- mongosh_version
193
- }
194
- });
195
- }
163
+ analytics.track({
164
+ userId,
165
+ event: 'Mongorc Warning',
166
+ properties: {
167
+ mongosh_version
168
+ }
169
+ });
196
170
  });
197
171
  bus.on('mongosh:mongocryptd-tryspawn', function (ev) {
198
172
  log.info('MONGOCRYPTD', mongodb_log_writer_1.mongoLogId(1000000016), 'mongocryptd', 'Trying to spawn mongocryptd', ev);
@@ -245,7 +219,7 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
245
219
  });
246
220
  bus.on('mongosh-snippets:snippet-command', function (ev) {
247
221
  log.info('MONGOSH-SNIPPETS', mongodb_log_writer_1.mongoLogId(1000000031), 'snippets', 'Running snippet command', ev);
248
- if (telemetry && ev.args[0] === 'install') {
222
+ if (ev.args[0] === 'install') {
249
223
  analytics.track({
250
224
  userId,
251
225
  event: 'Snippet Install',
@@ -275,80 +249,35 @@ function setupLoggerAndTelemetry(bus, log, makeAnalytics, userTraits, mongosh_ve
275
249
  bus.on('mongosh:evaluate-finished', function () {
276
250
  for (const [entry] of deprecatedApiCalls) {
277
251
  log.warn('MONGOSH', mongodb_log_writer_1.mongoLogId(1000000033), 'shell-api', 'Deprecated API call', entry);
278
- if (telemetry) {
279
- analytics.track({
280
- userId,
281
- event: 'Deprecated Method',
282
- properties: {
283
- mongosh_version,
284
- ...entry
285
- }
286
- });
287
- }
252
+ analytics.track({
253
+ userId,
254
+ event: 'Deprecated Method',
255
+ properties: {
256
+ mongosh_version,
257
+ ...entry
258
+ }
259
+ });
288
260
  }
289
261
  for (const [entry, count] of apiCalls) {
290
- if (telemetry) {
291
- analytics.track({
292
- userId,
293
- event: 'API Call',
294
- properties: {
295
- mongosh_version,
296
- ...entry,
297
- count
298
- }
299
- });
300
- }
262
+ analytics.track({
263
+ userId,
264
+ event: 'API Call',
265
+ properties: {
266
+ mongosh_version,
267
+ ...entry,
268
+ count
269
+ }
270
+ });
301
271
  }
302
272
  deprecatedApiCalls.clear();
303
273
  apiCalls.clear();
304
274
  });
305
- bus.on('mongosh-sp:connect-attempt-initialized', function (ev) {
306
- log.info('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000042), 'connect', 'Initiating connection attempt', {
307
- ...ev,
308
- uri: history_1.redactURICredentials(ev.uri)
309
- });
310
- });
311
- bus.on('mongosh-sp:connect-heartbeat-failure', function (ev) {
312
- var _a;
313
- log.warn('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000034), 'connect', 'Server heartbeat failure', {
314
- ...ev,
315
- failure: (_a = ev.failure) === null || _a === void 0 ? void 0 : _a.message
316
- });
317
- });
318
- bus.on('mongosh-sp:connect-heartbeat-succeeded', function (ev) {
319
- log.info('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000035), 'connect', 'Server heartbeat succeeded', ev);
320
- });
321
- bus.on('mongosh-sp:connect-fail-early', function () {
322
- log.warn('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000036), 'connect', 'Aborting connection attempt as irrecoverable');
323
- });
324
- bus.on('mongosh-sp:connect-attempt-finished', function () {
325
- log.info('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000037), 'connect', 'Connection attempt finished');
326
- });
327
- bus.on('mongosh-sp:resolve-srv-error', function (ev) {
328
- var _a;
329
- log.error('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000038), 'connect', 'Resolving SRV record failed', {
330
- from: history_1.redactURICredentials(ev.from),
331
- error: (_a = ev.error) === null || _a === void 0 ? void 0 : _a.message,
332
- duringLoad: ev.duringLoad
333
- });
334
- });
335
- bus.on('mongosh-sp:resolve-srv-succeeded', function (ev) {
336
- log.info('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000039), 'connect', 'Resolving SRV record succeeded', {
337
- from: history_1.redactURICredentials(ev.from),
338
- to: history_1.redactURICredentials(ev.to)
339
- });
340
- });
275
+ devtools_connect_1.hookLogger(bus, log, 'mongosh', history_1.redactURICredentials);
341
276
  bus.on('mongosh-sp:reset-connection-options', function () {
342
277
  log.info('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000040), 'connect', 'Reconnect because of changed connection options');
343
278
  });
344
- bus.on('mongosh-sp:missing-optional-dependency', function (ev) {
345
- log.error('MONGOSH-SP', mongodb_log_writer_1.mongoLogId(1000000041), 'deps', 'Missing optional dependency', {
346
- name: ev.name,
347
- error: ev === null || ev === void 0 ? void 0 : ev.error.message
348
- });
349
- });
350
279
  bus.on('mongosh-editor:run-edit-command', function (ev) {
351
- log.error('MONGOSH-EDITOR', mongodb_log_writer_1.mongoLogId(1000000042), '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));
352
281
  });
353
282
  bus.on('mongosh-editor:read-vscode-extensions-done', function (ev) {
354
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.7",
3
+ "version": "1.2.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,11 @@
17
17
  "node": ">=12.4.0"
18
18
  },
19
19
  "dependencies": {
20
- "@mongosh/errors": "1.1.7",
21
- "@mongosh/history": "1.1.7",
22
- "@mongosh/types": "1.1.7",
23
- "mongodb-log-writer": "^1.0.3",
20
+ "@mongodb-js/devtools-connect": "^1.2.4",
21
+ "@mongosh/errors": "1.2.1",
22
+ "@mongosh/history": "1.2.1",
23
+ "@mongosh/types": "1.2.1",
24
+ "mongodb-log-writer": "^1.1.3",
24
25
  "mongodb-redact": "^0.2.2"
25
26
  },
26
27
  "scripts": {
@@ -34,5 +35,5 @@
34
35
  "mongosh": {
35
36
  "unitTestsOnly": true
36
37
  },
37
- "gitHead": "01997aba3b8e001c8668656731e12d491972756a"
38
+ "gitHead": "62b1dff4ce48f4dd3706d4fd9ccd4582df403ee3"
38
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 });
@@ -93,27 +90,35 @@ describe('setupLoggerAndTelemetry', () => {
93
90
 
94
91
  const connAttemptData = {
95
92
  driver: { name: 'nodejs', version: '3.6.1' },
96
- serviceProviderVersion: '1.0.0',
93
+ devtoolsConnectVersion: '1.0.0',
97
94
  host: 'localhost',
98
95
  uri: 'mongodb://localhost/'
99
96
  };
100
- bus.emit('mongosh-sp:connect-attempt-initialized', connAttemptData);
101
- bus.emit('mongosh-sp:connect-heartbeat-failure', { connectionId: 'localhost', failure: new Error('cause'), isFailFast: true, isKnownServer: true });
102
- bus.emit('mongosh-sp:connect-heartbeat-succeeded', { connectionId: 'localhost' });
103
- bus.emit('mongosh-sp:connect-fail-early');
104
- bus.emit('mongosh-sp:connect-attempt-finished');
105
- bus.emit('mongosh-sp:resolve-srv-error', { from: 'mongodb+srv://foo:bar@hello.world/', error: new Error('failed'), duringLoad: false });
106
- bus.emit('mongosh-sp:resolve-srv-succeeded', { from: 'mongodb+srv://foo:bar@hello.world/', to: 'mongodb://foo:bar@db.hello.world/' });
97
+ bus.emit('devtools-connect:connect-attempt-initialized', connAttemptData);
98
+ bus.emit('devtools-connect:connect-heartbeat-failure', { connectionId: 'localhost', failure: new Error('cause'), isFailFast: true, isKnownServer: true });
99
+ bus.emit('devtools-connect:connect-heartbeat-succeeded', { connectionId: 'localhost' });
100
+ bus.emit('devtools-connect:connect-fail-early');
101
+ bus.emit('devtools-connect:connect-attempt-finished');
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
+ });
113
+ bus.emit('devtools-connect:missing-optional-dependency', { name: 'kerberos', error: new Error('no kerberos') });
107
114
  bus.emit('mongosh-sp:reset-connection-options');
108
- bus.emit('mongosh-sp:missing-optional-dependency', { name: 'kerberos', error: new Error('no kerberos') });
109
115
 
110
116
  bus.emit('mongosh-editor:run-edit-command', { tmpDoc: 'tmpDoc', editor: 'editor', code: '<code>' });
111
117
  bus.emit('mongosh-editor:read-vscode-extensions-done', { vscodeDir: 'vscodir', hasMongodbExtension: false });
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,12 +197,12 @@ 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/' });
207
- expect(logOutput[i++].msg).to.equal('Reconnect because of changed connection options');
202
+ expect(logOutput[i++].attr).to.deep.equal({ from: 'mongodb+srv://<credentials>@hello.world/', to: 'mongodb://<credentials>@db.hello.world/', resolutionDetails: [] });
208
203
  expect(logOutput[i].msg).to.equal('Missing optional dependency');
209
204
  expect(logOutput[i++].attr).to.deep.equal({ name: 'kerberos', error: 'no kerberos' });
205
+ expect(logOutput[i++].msg).to.equal('Reconnect because of changed connection options');
210
206
  expect(logOutput[i].msg).to.equal('Open external editor');
211
207
  expect(logOutput[i++].attr).to.deep.equal({ tmpDoc: 'tmpDoc', editor: 'editor', code: '<code>' });
212
208
  expect(logOutput[i].msg).to.equal('Reading vscode extensions from file system succeeded');
@@ -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,
@@ -26,47 +27,14 @@ import type {
26
27
  SnippetsNpmLookupEvent,
27
28
  SnippetsRunNpmEvent,
28
29
  SnippetsTransformErrorEvent,
29
- SpConnectAttemptInitializedEvent,
30
- SpConnectHeartbeatFailureEvent,
31
- SpConnectHeartbeatSucceededEvent,
32
- SpResolveSrvErrorEvent,
33
- SpResolveSrvSucceededEvent,
34
- SpMissingOptionalDependencyEvent,
35
30
  EditorRunEditCommandEvent,
36
31
  EditorReadVscodeExtensionsDoneEvent,
37
32
  EditorReadVscodeExtensionsFailedEvent
38
33
  } from '@mongosh/types';
39
34
  import { inspect } from 'util';
40
35
  import { MongoLogWriter, mongoLogId } from 'mongodb-log-writer';
41
-
42
- /**
43
- * General interface for an Analytics provider that mongosh can use.
44
- */
45
- export interface MongoshAnalytics {
46
- identify(message: {
47
- userId: string,
48
- traits: { platform: string }
49
- }): void;
50
-
51
- track(message: {
52
- userId: string,
53
- event: string,
54
- properties: {
55
- mongosh_version: string,
56
- [key: string]: any;
57
- }
58
- }): void;
59
- }
60
-
61
- /**
62
- * A no-op implementation of MongoshAnalytics that can be used when
63
- * actually connecting to the telemetry provider is not possible
64
- * (e.g. because we are running without an API key).
65
- */
66
- class NoopAnalytics implements MongoshAnalytics {
67
- identify(_info: any): void {} // eslint-disable-line @typescript-eslint/no-unused-vars
68
- track(_info: any): void {} // eslint-disable-line @typescript-eslint/no-unused-vars
69
- }
36
+ import { hookLogger as devtoolsConnectHookLogger } from '@mongodb-js/devtools-connect';
37
+ import { MongoshAnalytics } from './analytics-helpers';
70
38
 
71
39
  /**
72
40
  * A helper class for keeping track of how often specific events occurred.
@@ -100,19 +68,11 @@ class MultiSet<T> {
100
68
  export function setupLoggerAndTelemetry(
101
69
  bus: MongoshBus,
102
70
  log: MongoLogWriter,
103
- makeAnalytics: () => MongoshAnalytics,
71
+ analytics: MongoshAnalytics,
104
72
  userTraits: any,
105
73
  mongosh_version: string): void {
106
74
  const { logId } = log;
107
75
  let userId: string;
108
- let telemetry: boolean;
109
-
110
- let analytics: MongoshAnalytics = new NoopAnalytics();
111
- try {
112
- analytics = makeAnalytics();
113
- } catch (e) {
114
- log.error('MONGOSH', mongoLogId(1_000_000_001), 'analytics', 'Failed to instantiate analytics provider', e);
115
- }
116
76
 
117
77
  // We emit different analytics events for loading files and evaluating scripts
118
78
  // depending on whether we're already in the REPL or not yet. We store the
@@ -136,30 +96,26 @@ export function setupLoggerAndTelemetry(
136
96
  const params = { session_id: logId, userId, connectionUri, ...argsWithoutUri };
137
97
  log.info('MONGOSH', mongoLogId(1_000_000_004), 'connect', 'Connecting to server', params);
138
98
 
139
- if (telemetry) {
140
- analytics.track({
141
- userId,
142
- event: 'New Connection',
143
- properties: {
144
- mongosh_version,
145
- session_id: logId,
146
- ...argsWithoutUri
147
- }
148
- });
149
- }
99
+ analytics.track({
100
+ userId,
101
+ event: 'New Connection',
102
+ properties: {
103
+ mongosh_version,
104
+ session_id: logId,
105
+ ...argsWithoutUri
106
+ }
107
+ });
150
108
  });
151
109
 
152
- bus.on('mongosh:new-user', function(id: string, enableTelemetry: boolean) {
110
+ bus.on('mongosh:new-user', function(id: string) {
153
111
  userId = id;
154
- telemetry = enableTelemetry;
155
- if (telemetry) analytics.identify({ userId, traits: userTraits });
112
+ analytics.identify({ userId, traits: userTraits });
156
113
  });
157
114
 
158
- bus.on('mongosh:update-user', function(id: string, enableTelemetry: boolean) {
115
+ bus.on('mongosh:update-user', function(id: string) {
159
116
  userId = id;
160
- telemetry = enableTelemetry;
161
- if (telemetry) analytics.identify({ userId, traits: userTraits });
162
- 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');
163
119
  });
164
120
 
165
121
  bus.on('mongosh:error', function(error: any, context: string) {
@@ -169,7 +125,7 @@ export function setupLoggerAndTelemetry(
169
125
  log.error('MONGOSH', mongoLogId(1_000_000_006), context, `${error.name}: ${error.message}`, error);
170
126
  }
171
127
 
172
- if (telemetry && error.name.includes('Mongosh')) {
128
+ if (error.name.includes('Mongosh')) {
173
129
  analytics.track({
174
130
  userId,
175
131
  event: 'Error',
@@ -184,6 +140,10 @@ export function setupLoggerAndTelemetry(
184
140
  }
185
141
  });
186
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
+
187
147
  bus.on('mongosh:evaluate-input', function(args: EvaluateInputEvent) {
188
148
  log.info('MONGOSH', mongoLogId(1_000_000_007), 'repl', 'Evaluating input', args);
189
149
  });
@@ -191,30 +151,26 @@ export function setupLoggerAndTelemetry(
191
151
  bus.on('mongosh:use', function(args: UseEvent) {
192
152
  log.info('MONGOSH', mongoLogId(1_000_000_008), 'shell-api', 'Used "use" command', args);
193
153
 
194
- if (telemetry) {
195
- analytics.track({
196
- userId,
197
- event: 'Use',
198
- properties: {
199
- mongosh_version
200
- }
201
- });
202
- }
154
+ analytics.track({
155
+ userId,
156
+ event: 'Use',
157
+ properties: {
158
+ mongosh_version
159
+ }
160
+ });
203
161
  });
204
162
 
205
163
  bus.on('mongosh:show', function(args: ShowEvent) {
206
164
  log.info('MONGOSH', mongoLogId(1_000_000_009), 'shell-api', 'Used "show" command', args);
207
165
 
208
- if (telemetry) {
209
- analytics.track({
210
- userId,
211
- event: 'Show',
212
- properties: {
213
- mongosh_version,
214
- method: args.method
215
- }
216
- });
217
- }
166
+ analytics.track({
167
+ userId,
168
+ event: 'Show',
169
+ properties: {
170
+ mongosh_version,
171
+ method: args.method
172
+ }
173
+ });
218
174
  });
219
175
 
220
176
  bus.on('mongosh:setCtx', function(args: ApiEventWithArguments) {
@@ -235,60 +191,52 @@ export function setupLoggerAndTelemetry(
235
191
  bus.on('mongosh:api-load-file', function(args: ScriptLoadFileEvent) {
236
192
  log.info('MONGOSH', mongoLogId(1_000_000_012), 'shell-api', 'Loading file via load()', args);
237
193
 
238
- if (telemetry) {
239
- analytics.track({
240
- userId,
241
- event: hasStartedMongoshRepl ? 'Script Loaded' : 'Script Loaded CLI',
242
- properties: {
243
- mongosh_version,
244
- nested: args.nested,
245
- ...(hasStartedMongoshRepl ? {} : { shell: usesShellOption })
246
- }
247
- });
248
- }
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
+ });
249
203
  });
250
204
 
251
205
  bus.on('mongosh:eval-cli-script', function() {
252
206
  log.info('MONGOSH', mongoLogId(1_000_000_013), 'repl', 'Evaluating script passed on the command line');
253
207
 
254
- if (telemetry) {
255
- analytics.track({
256
- userId,
257
- event: 'Script Evaluated',
258
- properties: {
259
- mongosh_version,
260
- shell: usesShellOption
261
- }
262
- });
263
- }
208
+ analytics.track({
209
+ userId,
210
+ event: 'Script Evaluated',
211
+ properties: {
212
+ mongosh_version,
213
+ shell: usesShellOption
214
+ }
215
+ });
264
216
  });
265
217
 
266
218
  bus.on('mongosh:mongoshrc-load', function() {
267
219
  log.info('MONGOSH', mongoLogId(1_000_000_014), 'repl', 'Loading .mongoshrc.js');
268
220
 
269
- if (telemetry) {
270
- analytics.track({
271
- userId,
272
- event: 'Mongoshrc Loaded',
273
- properties: {
274
- mongosh_version
275
- }
276
- });
277
- }
221
+ analytics.track({
222
+ userId,
223
+ event: 'Mongoshrc Loaded',
224
+ properties: {
225
+ mongosh_version
226
+ }
227
+ });
278
228
  });
279
229
 
280
230
  bus.on('mongosh:mongoshrc-mongorc-warn', function() {
281
231
  log.info('MONGOSH', mongoLogId(1_000_000_015), 'repl', 'Warning about .mongorc.js/.mongoshrc.js mismatch');
282
232
 
283
- if (telemetry) {
284
- analytics.track({
285
- userId,
286
- event: 'Mongorc Warning',
287
- properties: {
288
- mongosh_version
289
- }
290
- });
291
- }
233
+ analytics.track({
234
+ userId,
235
+ event: 'Mongorc Warning',
236
+ properties: {
237
+ mongosh_version
238
+ }
239
+ });
292
240
  });
293
241
 
294
242
  bus.on('mongosh:mongocryptd-tryspawn', function(ev: MongocryptdTrySpawnEvent) {
@@ -357,7 +305,7 @@ export function setupLoggerAndTelemetry(
357
305
  bus.on('mongosh-snippets:snippet-command', function(ev: SnippetsCommandEvent) {
358
306
  log.info('MONGOSH-SNIPPETS', mongoLogId(1_000_000_031), 'snippets', 'Running snippet command', ev);
359
307
 
360
- if (telemetry && ev.args[0] === 'install') {
308
+ if (ev.args[0] === 'install') {
361
309
  analytics.track({
362
310
  userId,
363
311
  event: 'Snippet Install',
@@ -394,88 +342,40 @@ export function setupLoggerAndTelemetry(
394
342
  for (const [entry] of deprecatedApiCalls) {
395
343
  log.warn('MONGOSH', mongoLogId(1_000_000_033), 'shell-api', 'Deprecated API call', entry);
396
344
 
397
- if (telemetry) {
398
- analytics.track({
399
- userId,
400
- event: 'Deprecated Method',
401
- properties: {
402
- mongosh_version,
403
- ...entry
404
- }
405
- });
406
- }
345
+ analytics.track({
346
+ userId,
347
+ event: 'Deprecated Method',
348
+ properties: {
349
+ mongosh_version,
350
+ ...entry
351
+ }
352
+ });
407
353
  }
408
354
  for (const [entry, count] of apiCalls) {
409
- if (telemetry) {
410
- analytics.track({
411
- userId,
412
- event: 'API Call',
413
- properties: {
414
- mongosh_version,
415
- ...entry,
416
- count
417
- }
418
- });
419
- }
355
+ analytics.track({
356
+ userId,
357
+ event: 'API Call',
358
+ properties: {
359
+ mongosh_version,
360
+ ...entry,
361
+ count
362
+ }
363
+ });
420
364
  }
421
365
  deprecatedApiCalls.clear();
422
366
  apiCalls.clear();
423
367
  });
424
368
 
425
- bus.on('mongosh-sp:connect-attempt-initialized', function(ev: SpConnectAttemptInitializedEvent) {
426
- log.info('MONGOSH-SP', mongoLogId(1_000_000_042), 'connect', 'Initiating connection attempt', {
427
- ...ev,
428
- uri: redactURICredentials(ev.uri)
429
- });
430
- });
431
-
432
- bus.on('mongosh-sp:connect-heartbeat-failure', function(ev: SpConnectHeartbeatFailureEvent) {
433
- log.warn('MONGOSH-SP', mongoLogId(1_000_000_034), 'connect', 'Server heartbeat failure', {
434
- ...ev,
435
- failure: ev.failure?.message
436
- });
437
- });
438
-
439
- bus.on('mongosh-sp:connect-heartbeat-succeeded', function(ev: SpConnectHeartbeatSucceededEvent) {
440
- log.info('MONGOSH-SP', mongoLogId(1_000_000_035), 'connect', 'Server heartbeat succeeded', ev);
441
- });
442
-
443
- bus.on('mongosh-sp:connect-fail-early', function() {
444
- log.warn('MONGOSH-SP', mongoLogId(1_000_000_036), 'connect', 'Aborting connection attempt as irrecoverable');
445
- });
446
-
447
- bus.on('mongosh-sp:connect-attempt-finished', function() {
448
- log.info('MONGOSH-SP', mongoLogId(1_000_000_037), 'connect', 'Connection attempt finished');
449
- });
450
-
451
- bus.on('mongosh-sp:resolve-srv-error', function(ev: SpResolveSrvErrorEvent) {
452
- log.error('MONGOSH-SP', mongoLogId(1_000_000_038), 'connect', 'Resolving SRV record failed', {
453
- from: redactURICredentials(ev.from),
454
- error: ev.error?.message,
455
- duringLoad: ev.duringLoad
456
- });
457
- });
458
-
459
- bus.on('mongosh-sp:resolve-srv-succeeded', function(ev: SpResolveSrvSucceededEvent) {
460
- log.info('MONGOSH-SP', mongoLogId(1_000_000_039), 'connect', 'Resolving SRV record succeeded', {
461
- from: redactURICredentials(ev.from),
462
- to: redactURICredentials(ev.to)
463
- });
464
- });
369
+ // Log ids 1_000_000_034 through 1_000_000_042 are reserved for the
370
+ // devtools-connect package which was split out from mongosh.
371
+ devtoolsConnectHookLogger(bus, log, 'mongosh', redactURICredentials);
465
372
 
466
373
  bus.on('mongosh-sp:reset-connection-options', function() {
467
374
  log.info('MONGOSH-SP', mongoLogId(1_000_000_040), 'connect', 'Reconnect because of changed connection options');
468
375
  });
469
376
 
470
- bus.on('mongosh-sp:missing-optional-dependency', function(ev: SpMissingOptionalDependencyEvent) {
471
- log.error('MONGOSH-SP', mongoLogId(1_000_000_041), 'deps', 'Missing optional dependency', {
472
- name: ev.name,
473
- error: ev?.error.message
474
- });
475
- });
476
-
477
377
  bus.on('mongosh-editor:run-edit-command', function(ev: EditorRunEditCommandEvent) {
478
- log.error('MONGOSH-EDITOR', mongoLogId(1_000_000_042), 'editor', 'Open external editor', redactInfo(ev));
378
+ log.error('MONGOSH-EDITOR', mongoLogId(1_000_000_047), 'editor', 'Open external editor', redactInfo(ev));
479
379
  });
480
380
 
481
381
  bus.on('mongosh-editor:read-vscode-extensions-done', function(ev: EditorReadVscodeExtensionsDoneEvent) {
@@ -490,4 +390,6 @@ export function setupLoggerAndTelemetry(
490
390
  });
491
391
 
492
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
493
395
  }