@mongosh/logging 3.2.0 → 3.4.0
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 +1 -0
- package/lib/analytics-helpers.d.ts +1 -1
- package/lib/helpers.d.ts +7 -0
- package/lib/helpers.js +31 -0
- package/lib/helpers.js.map +1 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/logging-and-telemetry.d.ts +2 -0
- package/lib/logging-and-telemetry.js +429 -0
- package/lib/logging-and-telemetry.js.map +1 -0
- package/lib/types.d.ts +33 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/package.json +5 -5
- package/src/analytics-helpers.ts +1 -1
- package/src/helpers.spec.ts +26 -0
- package/src/helpers.ts +49 -0
- package/src/index.ts +2 -1
- package/src/{setup-logger-and-telemetry.spec.ts → logging-and-telemetry.spec.ts} +193 -94
- package/src/logging-and-telemetry.ts +871 -0
- package/src/types.ts +35 -0
- package/lib/setup-logger-and-telemetry.d.ts +0 -5
- package/lib/setup-logger-and-telemetry.js +0 -364
- package/lib/setup-logger-and-telemetry.js.map +0 -1
- package/src/setup-logger-and-telemetry.ts +0 -795
package/AUTHORS
CHANGED
|
@@ -5,7 +5,7 @@ export type MongoshAnalyticsIdentity = {
|
|
|
5
5
|
userId?: never;
|
|
6
6
|
anonymousId: string;
|
|
7
7
|
};
|
|
8
|
-
type AnalyticsIdentifyMessage = MongoshAnalyticsIdentity & {
|
|
8
|
+
export type AnalyticsIdentifyMessage = MongoshAnalyticsIdentity & {
|
|
9
9
|
traits: {
|
|
10
10
|
platform: string;
|
|
11
11
|
session_id: string;
|
package/lib/helpers.d.ts
ADDED
package/lib/helpers.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toSnakeCase = exports.MultiSet = void 0;
|
|
4
|
+
class MultiSet {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._entries = new Map();
|
|
7
|
+
}
|
|
8
|
+
add(entry) {
|
|
9
|
+
var _a;
|
|
10
|
+
const key = JSON.stringify(Object.entries(entry).sort());
|
|
11
|
+
this._entries.set(key, ((_a = this._entries.get(key)) !== null && _a !== void 0 ? _a : 0) + 1);
|
|
12
|
+
}
|
|
13
|
+
clear() {
|
|
14
|
+
this._entries.clear();
|
|
15
|
+
}
|
|
16
|
+
*[Symbol.iterator]() {
|
|
17
|
+
for (const [key, count] of this._entries) {
|
|
18
|
+
yield [Object.fromEntries(JSON.parse(key)), count];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.MultiSet = MultiSet;
|
|
23
|
+
function toSnakeCase(str) {
|
|
24
|
+
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);
|
|
25
|
+
if (!matches) {
|
|
26
|
+
return str;
|
|
27
|
+
}
|
|
28
|
+
return matches.map((x) => x.toLowerCase()).join('_');
|
|
29
|
+
}
|
|
30
|
+
exports.toSnakeCase = toSnakeCase;
|
|
31
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAGA,MAAa,QAAQ;IAArB;QACE,aAAQ,GAAwB,IAAI,GAAG,EAAE,CAAC;IAiB5C,CAAC;IAfC,GAAG,CAAC,KAAQ;;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAM,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CACF;AAlBD,4BAkBC;AAkBD,SAAgB,WAAW,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CACvB,oEAAoE,CACrE,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AATD,kCASC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { setupLoggerAndTelemetry } from './setup-logger-and-telemetry';
|
|
2
1
|
export { MongoshAnalytics, ToggleableAnalytics, SampledAnalytics, NoopAnalytics, ThrottledAnalytics, } from './analytics-helpers';
|
|
2
|
+
export { MongoshLoggingAndTelemetry } from './types';
|
|
3
|
+
export { setupLoggingAndTelemetry } from './logging-and-telemetry';
|
package/lib/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var setup_logger_and_telemetry_1 = require("./setup-logger-and-telemetry");
|
|
5
|
-
Object.defineProperty(exports, "setupLoggerAndTelemetry", { enumerable: true, get: function () { return setup_logger_and_telemetry_1.setupLoggerAndTelemetry; } });
|
|
3
|
+
exports.setupLoggingAndTelemetry = exports.ThrottledAnalytics = exports.NoopAnalytics = exports.SampledAnalytics = exports.ToggleableAnalytics = void 0;
|
|
6
4
|
var analytics_helpers_1 = require("./analytics-helpers");
|
|
7
5
|
Object.defineProperty(exports, "ToggleableAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.ToggleableAnalytics; } });
|
|
8
6
|
Object.defineProperty(exports, "SampledAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.SampledAnalytics; } });
|
|
9
7
|
Object.defineProperty(exports, "NoopAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.NoopAnalytics; } });
|
|
10
8
|
Object.defineProperty(exports, "ThrottledAnalytics", { enumerable: true, get: function () { return analytics_helpers_1.ThrottledAnalytics; } });
|
|
9
|
+
var logging_and_telemetry_1 = require("./logging-and-telemetry");
|
|
10
|
+
Object.defineProperty(exports, "setupLoggingAndTelemetry", { enumerable: true, get: function () { return logging_and_telemetry_1.setupLoggingAndTelemetry; } });
|
|
11
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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAM6B;AAJ3B,wHAAA,mBAAmB,OAAA;AACnB,qHAAA,gBAAgB,OAAA;AAChB,kHAAA,aAAa,OAAA;AACb,uHAAA,kBAAkB,OAAA;AAGpB,iEAAmE;AAA1D,iIAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setupLoggingAndTelemetry = void 0;
|
|
7
|
+
const mongodb_redact_1 = __importDefault(require("mongodb-redact"));
|
|
8
|
+
const history_1 = require("@mongosh/history");
|
|
9
|
+
const util_1 = require("util");
|
|
10
|
+
const mongodb_log_writer_1 = require("mongodb-log-writer");
|
|
11
|
+
const mongodb_log_writer_2 = require("mongodb-log-writer");
|
|
12
|
+
const devtools_connect_1 = require("@mongodb-js/devtools-connect");
|
|
13
|
+
const helpers_1 = require("./helpers");
|
|
14
|
+
const stream_1 = require("stream");
|
|
15
|
+
function setupLoggingAndTelemetry(props) {
|
|
16
|
+
const loggingAndTelemetry = new LoggingAndTelemetry(props);
|
|
17
|
+
loggingAndTelemetry.setup();
|
|
18
|
+
return loggingAndTelemetry;
|
|
19
|
+
}
|
|
20
|
+
exports.setupLoggingAndTelemetry = setupLoggingAndTelemetry;
|
|
21
|
+
class LoggingAndTelemetry {
|
|
22
|
+
constructor({ bus, analytics, userTraits, mongoshVersion, }) {
|
|
23
|
+
this.pendingLogEvents = [];
|
|
24
|
+
this.isSetup = false;
|
|
25
|
+
this.isBufferingEvents = false;
|
|
26
|
+
this.busEventState = {
|
|
27
|
+
hasStartedMongoshRepl: false,
|
|
28
|
+
apiCallTracking: {
|
|
29
|
+
isEnabled: false,
|
|
30
|
+
apiCalls: new helpers_1.MultiSet(),
|
|
31
|
+
deprecatedApiCalls: new helpers_1.MultiSet(),
|
|
32
|
+
},
|
|
33
|
+
usesShellOption: false,
|
|
34
|
+
telemetryAnonymousId: undefined,
|
|
35
|
+
userId: undefined,
|
|
36
|
+
};
|
|
37
|
+
this.bus = bus;
|
|
38
|
+
this.analytics = analytics;
|
|
39
|
+
this.log = LoggingAndTelemetry.dummyLogger;
|
|
40
|
+
this.userTraits = userTraits;
|
|
41
|
+
this.mongoshVersion = mongoshVersion;
|
|
42
|
+
}
|
|
43
|
+
setup() {
|
|
44
|
+
if (this.isSetup) {
|
|
45
|
+
throw new Error('Setup can only be called once.');
|
|
46
|
+
}
|
|
47
|
+
this.setupBusEventListeners();
|
|
48
|
+
this.isSetup = true;
|
|
49
|
+
this.isBufferingEvents = true;
|
|
50
|
+
}
|
|
51
|
+
attachLogger(logger) {
|
|
52
|
+
if (!this.isSetup) {
|
|
53
|
+
throw new Error('Run setup() before setting up the log writer.');
|
|
54
|
+
}
|
|
55
|
+
if (this.log !== LoggingAndTelemetry.dummyLogger) {
|
|
56
|
+
throw new Error('Previously set logger has not been detached. Run detachLogger() before setting.');
|
|
57
|
+
}
|
|
58
|
+
this.log = logger;
|
|
59
|
+
this.isBufferingEvents = false;
|
|
60
|
+
this.runAndClearPendingEvents();
|
|
61
|
+
this.bus.emit('mongosh:log-initialized');
|
|
62
|
+
}
|
|
63
|
+
detachLogger() {
|
|
64
|
+
this.log = LoggingAndTelemetry.dummyLogger;
|
|
65
|
+
this.runAndClearPendingEvents();
|
|
66
|
+
}
|
|
67
|
+
runAndClearPendingEvents() {
|
|
68
|
+
let pendingEvent;
|
|
69
|
+
while ((pendingEvent = this.pendingLogEvents.shift())) {
|
|
70
|
+
pendingEvent();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
setupBusEventListeners() {
|
|
74
|
+
const onBus = (event, listener) => {
|
|
75
|
+
this.bus.on(event, ((...args) => {
|
|
76
|
+
if (this.isBufferingEvents) {
|
|
77
|
+
this.pendingLogEvents.push(() => listener(...args));
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
listener(...args);
|
|
81
|
+
}));
|
|
82
|
+
return this.bus;
|
|
83
|
+
};
|
|
84
|
+
const getUserTraits = () => ({
|
|
85
|
+
...this.userTraits,
|
|
86
|
+
session_id: this.log.logId,
|
|
87
|
+
});
|
|
88
|
+
const getTrackingProperties = () => ({
|
|
89
|
+
mongosh_version: this.mongoshVersion,
|
|
90
|
+
session_id: this.log.logId,
|
|
91
|
+
});
|
|
92
|
+
const getTelemetryUserIdentity = () => {
|
|
93
|
+
var _a;
|
|
94
|
+
return {
|
|
95
|
+
anonymousId: (_a = this.busEventState.telemetryAnonymousId) !== null && _a !== void 0 ? _a : this.busEventState.userId,
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
onBus('mongosh:start-mongosh-repl', (ev) => {
|
|
99
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000002), 'repl', 'Started REPL', ev);
|
|
100
|
+
this.busEventState.hasStartedMongoshRepl = true;
|
|
101
|
+
});
|
|
102
|
+
onBus('mongosh:start-loading-cli-scripts', (event) => {
|
|
103
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000003), 'repl', 'Start loading CLI scripts');
|
|
104
|
+
this.busEventState.usesShellOption = event.usesShellOption;
|
|
105
|
+
});
|
|
106
|
+
onBus('mongosh:connect', (args) => {
|
|
107
|
+
const { uri, resolved_hostname, ...argsWithoutUriAndHostname } = args;
|
|
108
|
+
const connectionUri = uri && (0, history_1.redactURICredentials)(uri);
|
|
109
|
+
const atlasHostname = {
|
|
110
|
+
atlas_hostname: args.is_atlas ? resolved_hostname : null,
|
|
111
|
+
};
|
|
112
|
+
const properties = {
|
|
113
|
+
...getTrackingProperties(),
|
|
114
|
+
...argsWithoutUriAndHostname,
|
|
115
|
+
...atlasHostname,
|
|
116
|
+
};
|
|
117
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000004), 'connect', 'Connecting to server', {
|
|
118
|
+
userId: this.busEventState.userId,
|
|
119
|
+
telemetryAnonymousId: this.busEventState.telemetryAnonymousId,
|
|
120
|
+
connectionUri,
|
|
121
|
+
...properties,
|
|
122
|
+
});
|
|
123
|
+
this.analytics.track({
|
|
124
|
+
...getTelemetryUserIdentity(),
|
|
125
|
+
event: 'New Connection',
|
|
126
|
+
properties,
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
onBus('mongosh:start-session', (args) => {
|
|
130
|
+
const normalizedTimingsArray = Object.entries(args.timings).map(([key, duration]) => {
|
|
131
|
+
const snakeCaseKey = (0, helpers_1.toSnakeCase)(key);
|
|
132
|
+
return [snakeCaseKey, duration];
|
|
133
|
+
});
|
|
134
|
+
const normalizedTimings = Object.fromEntries(normalizedTimingsArray);
|
|
135
|
+
this.analytics.track({
|
|
136
|
+
...getTelemetryUserIdentity(),
|
|
137
|
+
event: 'Startup Time',
|
|
138
|
+
properties: {
|
|
139
|
+
...getTrackingProperties(),
|
|
140
|
+
is_interactive: args.isInteractive,
|
|
141
|
+
js_context: args.jsContext,
|
|
142
|
+
...normalizedTimings,
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
onBus('mongosh:new-user', (newTelemetryUserIdentity) => {
|
|
147
|
+
if (!newTelemetryUserIdentity.anonymousId) {
|
|
148
|
+
this.busEventState.userId = newTelemetryUserIdentity.userId;
|
|
149
|
+
}
|
|
150
|
+
this.busEventState.telemetryAnonymousId =
|
|
151
|
+
newTelemetryUserIdentity.anonymousId;
|
|
152
|
+
this.analytics.identify({
|
|
153
|
+
anonymousId: newTelemetryUserIdentity.anonymousId,
|
|
154
|
+
traits: getUserTraits(),
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
onBus('mongosh:update-user', (updatedTelemetryUserIdentity) => {
|
|
158
|
+
if (updatedTelemetryUserIdentity.anonymousId) {
|
|
159
|
+
this.busEventState.telemetryAnonymousId =
|
|
160
|
+
updatedTelemetryUserIdentity.anonymousId;
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
this.busEventState.userId = updatedTelemetryUserIdentity.userId;
|
|
164
|
+
}
|
|
165
|
+
this.analytics.identify({
|
|
166
|
+
...getTelemetryUserIdentity(),
|
|
167
|
+
traits: getUserTraits(),
|
|
168
|
+
});
|
|
169
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000005), 'config', 'User updated');
|
|
170
|
+
});
|
|
171
|
+
onBus('mongosh:error', (error, context) => {
|
|
172
|
+
const mongoshError = error;
|
|
173
|
+
this.log[context === 'fatal' ? 'fatal' : 'error']('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000006), context, `${mongoshError.name}: ${mongoshError.message}`, error);
|
|
174
|
+
if (error.name.includes('Mongosh')) {
|
|
175
|
+
this.analytics.track({
|
|
176
|
+
...getTelemetryUserIdentity(),
|
|
177
|
+
event: 'Error',
|
|
178
|
+
properties: {
|
|
179
|
+
...getTrackingProperties(),
|
|
180
|
+
name: mongoshError.name,
|
|
181
|
+
code: mongoshError.code,
|
|
182
|
+
scope: mongoshError.scope,
|
|
183
|
+
metadata: mongoshError.metadata,
|
|
184
|
+
},
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
onBus('mongosh:write-custom-log', (event) => {
|
|
189
|
+
this.log[event.method]('MONGOSH-SCRIPTS', (0, mongodb_log_writer_2.mongoLogId)(1000000054), 'custom-log', event.message, event.attr, event.level);
|
|
190
|
+
});
|
|
191
|
+
onBus('mongosh:globalconfig-load', (args) => {
|
|
192
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000048), 'config', 'Loading global configuration file', args);
|
|
193
|
+
});
|
|
194
|
+
onBus('mongosh:evaluate-input', (args) => {
|
|
195
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000007), 'repl', 'Evaluating input', args);
|
|
196
|
+
});
|
|
197
|
+
onBus('mongosh:use', (args) => {
|
|
198
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000008), 'shell-api', 'Used "use" command', args);
|
|
199
|
+
this.analytics.track({
|
|
200
|
+
...getTelemetryUserIdentity(),
|
|
201
|
+
event: 'Use',
|
|
202
|
+
properties: {
|
|
203
|
+
...getTrackingProperties(),
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
onBus('mongosh:show', (args) => {
|
|
208
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000009), 'shell-api', 'Used "show" command', args);
|
|
209
|
+
this.analytics.track({
|
|
210
|
+
...getTelemetryUserIdentity(),
|
|
211
|
+
event: 'Show',
|
|
212
|
+
properties: {
|
|
213
|
+
...getTrackingProperties(),
|
|
214
|
+
method: args.method,
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
onBus('mongosh:setCtx', (args) => {
|
|
219
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000010), 'shell-api', 'Initialized context', args);
|
|
220
|
+
});
|
|
221
|
+
onBus('mongosh:api-call-with-arguments', (args) => {
|
|
222
|
+
let arg;
|
|
223
|
+
try {
|
|
224
|
+
arg = JSON.parse(JSON.stringify(args));
|
|
225
|
+
}
|
|
226
|
+
catch (_a) {
|
|
227
|
+
arg = { _inspected: (0, util_1.inspect)(args) };
|
|
228
|
+
}
|
|
229
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000011), 'shell-api', 'Performed API call', (0, mongodb_redact_1.default)(arg));
|
|
230
|
+
});
|
|
231
|
+
onBus('mongosh:api-load-file', (args) => {
|
|
232
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000012), 'shell-api', 'Loading file via load()', args);
|
|
233
|
+
this.analytics.track({
|
|
234
|
+
...getTelemetryUserIdentity(),
|
|
235
|
+
event: this.busEventState.hasStartedMongoshRepl
|
|
236
|
+
? 'Script Loaded'
|
|
237
|
+
: 'Script Loaded CLI',
|
|
238
|
+
properties: {
|
|
239
|
+
...getTrackingProperties(),
|
|
240
|
+
nested: args.nested,
|
|
241
|
+
...(this.busEventState.hasStartedMongoshRepl
|
|
242
|
+
? {}
|
|
243
|
+
: { shell: this.busEventState.usesShellOption }),
|
|
244
|
+
},
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
onBus('mongosh:eval-cli-script', () => {
|
|
248
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000013), 'repl', 'Evaluating script passed on the command line');
|
|
249
|
+
this.analytics.track({
|
|
250
|
+
...getTelemetryUserIdentity(),
|
|
251
|
+
event: 'Script Evaluated',
|
|
252
|
+
properties: {
|
|
253
|
+
...getTrackingProperties(),
|
|
254
|
+
shell: this.busEventState.usesShellOption,
|
|
255
|
+
},
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
onBus('mongosh:mongoshrc-load', () => {
|
|
259
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000014), 'repl', 'Loading .mongoshrc.js');
|
|
260
|
+
this.analytics.track({
|
|
261
|
+
...getTelemetryUserIdentity(),
|
|
262
|
+
event: 'Mongoshrc Loaded',
|
|
263
|
+
properties: {
|
|
264
|
+
...getTrackingProperties(),
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
onBus('mongosh:mongoshrc-mongorc-warn', () => {
|
|
269
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000015), 'repl', 'Warning about .mongorc.js/.mongoshrc.js mismatch');
|
|
270
|
+
this.analytics.track({
|
|
271
|
+
...getTelemetryUserIdentity(),
|
|
272
|
+
event: 'Mongorc Warning',
|
|
273
|
+
properties: {
|
|
274
|
+
...getTrackingProperties(),
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
onBus('mongosh:crypt-library-load-skip', (ev) => {
|
|
279
|
+
this.log.info('AUTO-ENCRYPTION', (0, mongodb_log_writer_2.mongoLogId)(1000000050), 'crypt-library', 'Skipping shared library candidate', ev);
|
|
280
|
+
});
|
|
281
|
+
onBus('mongosh:crypt-library-load-found', (ev) => {
|
|
282
|
+
this.log.warn('AUTO-ENCRYPTION', (0, mongodb_log_writer_2.mongoLogId)(1000000051), 'crypt-library', 'Accepted shared library candidate', {
|
|
283
|
+
cryptSharedLibPath: ev.cryptSharedLibPath,
|
|
284
|
+
expectedVersion: ev.expectedVersion.versionStr,
|
|
285
|
+
});
|
|
286
|
+
});
|
|
287
|
+
onBus('mongosh-snippets:loaded', (ev) => {
|
|
288
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000019), 'snippets', 'Loaded snippets', ev);
|
|
289
|
+
});
|
|
290
|
+
onBus('mongosh-snippets:npm-lookup', (ev) => {
|
|
291
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000020), 'snippets', 'Performing npm lookup', ev);
|
|
292
|
+
});
|
|
293
|
+
onBus('mongosh-snippets:npm-lookup-stopped', () => {
|
|
294
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000021), 'snippets', 'npm lookup stopped');
|
|
295
|
+
});
|
|
296
|
+
onBus('mongosh-snippets:npm-download-failed', (ev) => {
|
|
297
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000022), 'snippets', 'npm download failed', ev);
|
|
298
|
+
});
|
|
299
|
+
onBus('mongosh-snippets:npm-download-active', (ev) => {
|
|
300
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000023), 'snippets', 'npm download active', ev);
|
|
301
|
+
});
|
|
302
|
+
onBus('mongosh-snippets:fetch-index', (ev) => {
|
|
303
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000024), 'snippets', 'Fetching snippet index', ev);
|
|
304
|
+
});
|
|
305
|
+
onBus('mongosh-snippets:fetch-cache-invalid', () => {
|
|
306
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000025), 'snippets', 'Snippet cache invalid');
|
|
307
|
+
});
|
|
308
|
+
onBus('mongosh-snippets:fetch-index-error', (ev) => {
|
|
309
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000026), 'snippets', 'Fetching snippet index failed', ev);
|
|
310
|
+
});
|
|
311
|
+
onBus('mongosh-snippets:fetch-index-done', () => {
|
|
312
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000027), 'snippets', 'Fetching snippet index done');
|
|
313
|
+
});
|
|
314
|
+
onBus('mongosh-snippets:package-json-edit-error', (ev) => {
|
|
315
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000028), 'snippets', 'Modifying snippets package.json failed', ev);
|
|
316
|
+
});
|
|
317
|
+
onBus('mongosh-snippets:spawn-child', (ev) => {
|
|
318
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000029), 'snippets', 'Spawning helper', ev);
|
|
319
|
+
});
|
|
320
|
+
onBus('mongosh-snippets:load-snippet', (ev) => {
|
|
321
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000030), 'snippets', 'Loading snippet', ev);
|
|
322
|
+
});
|
|
323
|
+
onBus('mongosh-snippets:snippet-command', (ev) => {
|
|
324
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000031), 'snippets', 'Running snippet command', ev);
|
|
325
|
+
if (ev.args[0] === 'install') {
|
|
326
|
+
this.analytics.track({
|
|
327
|
+
...getTelemetryUserIdentity(),
|
|
328
|
+
event: 'Snippet Install',
|
|
329
|
+
properties: {
|
|
330
|
+
...getTrackingProperties(),
|
|
331
|
+
},
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
onBus('mongosh-snippets:transform-error', (ev) => {
|
|
336
|
+
this.log.info('MONGOSH-SNIPPETS', (0, mongodb_log_writer_2.mongoLogId)(1000000032), 'snippets', 'Rewrote error message', ev);
|
|
337
|
+
});
|
|
338
|
+
onBus('mongosh:api-call', (ev) => {
|
|
339
|
+
if (!this.busEventState.apiCallTracking.isEnabled)
|
|
340
|
+
return;
|
|
341
|
+
const { apiCalls, deprecatedApiCalls } = this.busEventState.apiCallTracking;
|
|
342
|
+
if (ev.deprecated) {
|
|
343
|
+
deprecatedApiCalls.add({ class: ev.class, method: ev.method });
|
|
344
|
+
}
|
|
345
|
+
if (ev.callDepth === 0 && ev.isAsync) {
|
|
346
|
+
apiCalls.add({ class: ev.class, method: ev.method });
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
onBus('mongosh:evaluate-started', () => {
|
|
350
|
+
const { apiCalls, deprecatedApiCalls } = this.busEventState.apiCallTracking;
|
|
351
|
+
this.busEventState.apiCallTracking.isEnabled = true;
|
|
352
|
+
deprecatedApiCalls.clear();
|
|
353
|
+
apiCalls.clear();
|
|
354
|
+
});
|
|
355
|
+
onBus('mongosh:evaluate-finished', () => {
|
|
356
|
+
const { apiCalls, deprecatedApiCalls } = this.busEventState.apiCallTracking;
|
|
357
|
+
for (const [entry] of deprecatedApiCalls) {
|
|
358
|
+
this.log.warn('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000033), 'shell-api', 'Deprecated API call', entry);
|
|
359
|
+
this.analytics.track({
|
|
360
|
+
...getTelemetryUserIdentity(),
|
|
361
|
+
event: 'Deprecated Method',
|
|
362
|
+
properties: {
|
|
363
|
+
...getTrackingProperties(),
|
|
364
|
+
...entry,
|
|
365
|
+
},
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
for (const [entry, count] of apiCalls) {
|
|
369
|
+
this.analytics.track({
|
|
370
|
+
...getTelemetryUserIdentity(),
|
|
371
|
+
event: 'API Call',
|
|
372
|
+
properties: {
|
|
373
|
+
...getTrackingProperties(),
|
|
374
|
+
...entry,
|
|
375
|
+
count,
|
|
376
|
+
},
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
deprecatedApiCalls.clear();
|
|
380
|
+
apiCalls.clear();
|
|
381
|
+
this.busEventState.apiCallTracking.isEnabled = false;
|
|
382
|
+
});
|
|
383
|
+
onBus('mongosh-sp:reset-connection-options', () => {
|
|
384
|
+
this.log.info('MONGOSH-SP', (0, mongodb_log_writer_2.mongoLogId)(1000000040), 'connect', 'Reconnect because of changed connection options');
|
|
385
|
+
});
|
|
386
|
+
onBus('mongosh-editor:run-edit-command', (ev) => {
|
|
387
|
+
this.log.error('MONGOSH-EDITOR', (0, mongodb_log_writer_2.mongoLogId)(1000000047), 'editor', 'Open external editor', (0, mongodb_redact_1.default)(ev));
|
|
388
|
+
});
|
|
389
|
+
onBus('mongosh-editor:read-vscode-extensions-done', (ev) => {
|
|
390
|
+
this.log.error('MONGOSH-EDITOR', (0, mongodb_log_writer_2.mongoLogId)(1000000043), 'editor', 'Reading vscode extensions from file system succeeded', ev);
|
|
391
|
+
});
|
|
392
|
+
onBus('mongosh-editor:read-vscode-extensions-failed', (ev) => {
|
|
393
|
+
this.log.error('MONGOSH-EDITOR', (0, mongodb_log_writer_2.mongoLogId)(1000000044), 'editor', 'Reading vscode extensions from file system failed', {
|
|
394
|
+
...ev,
|
|
395
|
+
error: ev.error.message,
|
|
396
|
+
});
|
|
397
|
+
});
|
|
398
|
+
onBus('mongosh:fetching-update-metadata', (ev) => {
|
|
399
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000052), 'startup', 'Fetching update metadata', {
|
|
400
|
+
...ev,
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
onBus('mongosh:fetching-update-metadata-complete', (ev) => {
|
|
404
|
+
this.log.info('MONGOSH', (0, mongodb_log_writer_2.mongoLogId)(1000000053), 'startup', 'Fetching update metadata complete', {
|
|
405
|
+
...ev,
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
(0, devtools_connect_1.hookLogger)(this.bus, {
|
|
409
|
+
info: (...args) => {
|
|
410
|
+
return this.log.info(...args);
|
|
411
|
+
},
|
|
412
|
+
warn: (...args) => {
|
|
413
|
+
return this.log.warn(...args);
|
|
414
|
+
},
|
|
415
|
+
error: (...args) => {
|
|
416
|
+
return this.log.error(...args);
|
|
417
|
+
},
|
|
418
|
+
mongoLogId: (...args) => {
|
|
419
|
+
return this.log.mongoLogId(...args);
|
|
420
|
+
},
|
|
421
|
+
}, 'mongosh', (uri) => (0, history_1.redactURICredentials)(uri));
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
LoggingAndTelemetry.dummyLogger = new mongodb_log_writer_1.MongoLogWriter('', null, new stream_1.Writable({
|
|
425
|
+
write(chunk, encoding, callback) {
|
|
426
|
+
callback();
|
|
427
|
+
},
|
|
428
|
+
}));
|
|
429
|
+
//# sourceMappingURL=logging-and-telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging-and-telemetry.js","sourceRoot":"","sources":["../src/logging-and-telemetry.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ApiEvent, MongoshBus } from '@mongosh/types';
|
|
2
|
+
import type { MongoLogWriter } from 'mongodb-log-writer';
|
|
3
|
+
import type { MongoshAnalytics } from './analytics-helpers';
|
|
4
|
+
import type { MultiSet } from './helpers';
|
|
5
|
+
export interface MongoshLoggingAndTelemetry {
|
|
6
|
+
attachLogger(logger: MongoLogWriter): void;
|
|
7
|
+
detachLogger(): void;
|
|
8
|
+
}
|
|
9
|
+
export type MongoshLoggingAndTelemetryArguments = {
|
|
10
|
+
bus: MongoshBus;
|
|
11
|
+
analytics: MongoshAnalytics;
|
|
12
|
+
userTraits: {
|
|
13
|
+
platform: string;
|
|
14
|
+
} & {
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
};
|
|
17
|
+
mongoshVersion: string;
|
|
18
|
+
};
|
|
19
|
+
export type MongoshTrackingProperties = {
|
|
20
|
+
mongosh_version: string;
|
|
21
|
+
session_id: string;
|
|
22
|
+
};
|
|
23
|
+
export type LoggingAndTelemetryBusEventState = {
|
|
24
|
+
hasStartedMongoshRepl: boolean;
|
|
25
|
+
apiCallTracking: {
|
|
26
|
+
isEnabled: boolean;
|
|
27
|
+
apiCalls: MultiSet<Pick<ApiEvent, 'class' | 'method'>>;
|
|
28
|
+
deprecatedApiCalls: MultiSet<Pick<ApiEvent, 'class' | 'method'>>;
|
|
29
|
+
};
|
|
30
|
+
usesShellOption: boolean;
|
|
31
|
+
telemetryAnonymousId: string | undefined;
|
|
32
|
+
userId: string | undefined;
|
|
33
|
+
};
|
package/lib/types.js
ADDED
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongosh/logging",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "MongoDB Shell Logging Utilities Package",
|
|
5
5
|
"homepage": "https://github.com/mongodb-js/mongosh",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@mongodb-js/devtools-connect": "^3.4.1",
|
|
21
21
|
"@mongosh/errors": "2.4.0",
|
|
22
|
-
"@mongosh/history": "2.4.
|
|
23
|
-
"@mongosh/types": "3.
|
|
24
|
-
"mongodb-log-writer": "^2.1
|
|
22
|
+
"@mongosh/history": "2.4.4",
|
|
23
|
+
"@mongosh/types": "3.4.0",
|
|
24
|
+
"mongodb-log-writer": "^2.3.1",
|
|
25
25
|
"mongodb-redact": "^1.1.5"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"mongosh": {
|
|
50
50
|
"unitTestsOnly": true
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "27df9518d3f56ec3028e0c320936fedf2dcd6764"
|
|
53
53
|
}
|
package/src/analytics-helpers.ts
CHANGED
|
@@ -11,7 +11,7 @@ export type MongoshAnalyticsIdentity =
|
|
|
11
11
|
anonymousId: string;
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
type AnalyticsIdentifyMessage = MongoshAnalyticsIdentity & {
|
|
14
|
+
export type AnalyticsIdentifyMessage = MongoshAnalyticsIdentity & {
|
|
15
15
|
traits: { platform: string; session_id: string };
|
|
16
16
|
timestamp?: Date;
|
|
17
17
|
};
|