@multiplayer-app/session-recorder-node 1.2.5 → 1.2.9

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/README.md CHANGED
@@ -76,10 +76,10 @@ import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http"
76
76
  // set up Multiplayer exporters. Note: GRPC exporters are also available.
77
77
  // see: `SessionRecorderGrpcTraceExporter` and `SessionRecorderGrpcLogsExporter`
78
78
  const multiplayerTraceExporter = new SessionRecorderHttpTraceExporter({
79
- apiKey: "MULTIPLAYER_OTLP_KEY", // note: replace with your Multiplayer OTLP key
79
+ apiKey: "MULTIPLAYER_API_KEY", // note: replace with your Multiplayer API key
80
80
  })
81
81
  const multiplayerLogExporter = new SessionRecorderHttpLogsExporter({
82
- apiKey: "MULTIPLAYER_OTLP_KEY", // note: replace with your Multiplayer OTLP key
82
+ apiKey: "MULTIPLAYER_API_KEY", // note: replace with your Multiplayer API key
83
83
  })
84
84
 
85
85
  // Multiplayer exporter wrappers filter out session recording atrtributes before passing to provided exporter
@@ -183,6 +183,10 @@ See an additional example below.
183
183
 
184
184
  Use the following code below to initialize and run the session recorder.
185
185
 
186
+ The example relies on [opentelemetry.ts](./examples/cli/src/opentelemetry.ts). Copy that file and put it next to quick start code.
187
+
188
+ ### Initialize
189
+
186
190
  ```javascript
187
191
  // IMPORTANT: set up OpenTelemetry
188
192
  // for an example see ./examples/cli/src/opentelemetry.ts
@@ -198,21 +202,27 @@ import {
198
202
  } from "@multiplayer-app/session-recorder-node"
199
203
 
200
204
  SessionRecorder.init({
201
- apiKey: "MULTIPLAYER_OTLP_KEY", // note: replace with your Multiplayer OTLP key
205
+ apiKey: "MULTIPLAYER_API_KEY", // note: replace with your Multiplayer API key
202
206
  traceIdGenerator: idGenerator,
203
207
  resourceAttributes: {
204
- serviceName: "{YOUR_APPLICATION_NAME}"
208
+ componentName: "{YOUR_APPLICATION_NAME}",
205
209
  version: "{YOUR_APPLICATION_VERSION}",
206
210
  environment: "{YOUR_APPLICATION_ENVIRONMENT}",
207
211
  }
208
212
  })
213
+ ```
209
214
 
215
+ ### Manual session recording
216
+
217
+ Below is an example showing how to create a session recording in `MANUAL` mode. Manual session recordings stream and save all the data between calling `start` and `stop`.
218
+
219
+ ```javascript
210
220
  await sessionRecorder.start(
211
- SessionType.PLAIN,
221
+ SessionType.MANUAL,
212
222
  {
213
223
  name: "This is test session",
214
224
  sessionAttributes: {
215
- accountId: "687e2c0d3ec8ef6053e9dc97",
225
+ accountId: "1234",
216
226
  accountName: "Acme Corporation"
217
227
  }
218
228
  }
@@ -223,8 +233,61 @@ await sessionRecorder.start(
223
233
  await sessionRecorder.stop()
224
234
  ```
225
235
 
226
- Replace the placeholders with your application’s version, name, environment, and API key.
236
+ ### Continuous session recording
237
+
238
+ Below is an example showing how to create a session in `CONTINUOUS` mode. Continuous session recordings **stream** all the data received between calling `start` and `stop` -
239
+ but only **save** a rolling window data (90 seconds by default) when:
240
+
241
+ - an exception or error occurs;
242
+ - when `save` is called; or
243
+ - programmatically, when the auto-save attribute is attached to a span.
244
+
245
+
246
+ ```javascript
247
+ await sessionRecorder.start(
248
+ SessionType.CONTINUOUS,
249
+ {
250
+ name: "This is test session",
251
+ sessionAttributes: {
252
+ accountId: "1234",
253
+ accountName: "Acme Corporation"
254
+ }
255
+ }
256
+ )
257
+
258
+ // do something here
227
259
 
228
- ## License
260
+ await sessionRecorder.save()
229
261
 
230
- MIT see [LICENSE](./LICENSE).
262
+ // do something here
263
+
264
+ await sessionRecorder.save()
265
+
266
+ // do something here
267
+
268
+ await sessionRecorder.stop()
269
+ ```
270
+
271
+ Continuous session recordings may also be saved from within any service or component involved in a trace by adding the attributes below to a span:
272
+
273
+ ```javascript
274
+ import { trace, context } from "@opentelemetry/api"
275
+ import SessionRecorder from "@multiplayer-app/session-recorder-node"
276
+
277
+ const activeContext = context.active()
278
+
279
+ const activeSpan = trace.getSpan(activeContext)
280
+
281
+ activeSpan.setAttribute(
282
+ SessionRecorder.ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE,
283
+ true
284
+ )
285
+ activeSpan.setAttribute(
286
+ SessionRecorder.ATTR_MULTIPLAYER_CONTINUOUS_SESSION_AUTO_SAVE_REASON,
287
+ "Some reason"
288
+ )
289
+
290
+ ```
291
+
292
+
293
+ Replace the placeholders with your application’s version, name, environment, and API key.
@@ -1 +1 @@
1
- {"version":3,"file":"sessionRecorder.d.ts","sourceRoot":"","sources":["../src/sessionRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,0BAA0B,EAG3B,MAAM,0CAA0C,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlC,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,eAAe,CAA0B;IAEjD,OAAO,CAAC,iBAAiB,CAAwC;IACjE,OAAO,CAAC,YAAY,CAAiC;IACrD,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,wBAAwB,CAAqF;IAErH,OAAO,CAAC,mBAAmB,CAAa;IAExC;;OAEG;;IAGH;;;;;;;;OAQG;IACI,IAAI,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,0BAA0B,CAAC;QAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,6BAA6B,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;QACzD,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,IAAI;IAyBR;;;;;OAKG;IACU,KAAK,CAChB,WAAW,EAAE,WAAW,EACxB,cAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC;IAqDhB;;;;OAIG;WACU,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM;IAIjC;;;;OAIG;IACU,IAAI,CACf,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,IAAI,CAAC;IAiChB;;;;OAIG;IACU,IAAI,CACf,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,IAAI,CAAC;IAiChB;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BpC;;;;OAIG;IACU,4BAA4B,CACvC,cAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC;CAsBjB"}
1
+ {"version":3,"file":"sessionRecorder.d.ts","sourceRoot":"","sources":["../src/sessionRecorder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,0BAA0B,EAG3B,MAAM,0CAA0C,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAIlC,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAQ;IAE9B,OAAO,CAAC,eAAe,CAA0B;IAEjD,OAAO,CAAC,iBAAiB,CAAwC;IACjE,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,wBAAwB,CAAqF;IAErH,OAAO,CAAC,mBAAmB,CAAa;IAExC;;OAEG;;IAGH;;;;;;;;OAQG;IACI,IAAI,CAAC,MAAM,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,0BAA0B,CAAC;QAC7C,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,6BAA6B,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;QACzD,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,GAAG,IAAI;IAyBR;;;;;OAKG;IACU,KAAK,CAChB,WAAW,EAAE,WAAW,EACxB,cAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GACrC,OAAO,CAAC,IAAI,CAAC;IAqDhB;;;;OAIG;WACU,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM;IAIjC;;;;OAIG;IACU,IAAI,CACf,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,IAAI,CAAC;IAiChB;;;;OAIG;IACU,IAAI,CACf,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,IAAI,CAAC;IAiChB;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BpC;;;;OAIG;IACU,4BAA4B,CACvC,cAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC;CAsBjB"}
@@ -12,7 +12,7 @@ class SessionRecorder {
12
12
  constructor() {
13
13
  this._isInitialized = false;
14
14
  this._shortSessionId = false;
15
- this._sessionType = session_recorder_common_1.SessionType.PLAIN;
15
+ this._sessionType = session_recorder_common_1.SessionType.MANUAL;
16
16
  this._sessionState = 'STOPPED';
17
17
  this._apiService = new api_service_1.ApiService();
18
18
  this._sessionShortIdGenerator = session_recorder_common_1.SessionRecorderSdk.getIdGenerator(session_recorder_common_1.MULTIPLAYER_TRACE_DEBUG_SESSION_SHORT_ID_LENGTH);
@@ -139,7 +139,7 @@ class SessionRecorder {
139
139
  || typeof this._shortSessionId !== 'string') {
140
140
  throw new Error('Session should be active or paused');
141
141
  }
142
- if (this._sessionType !== session_recorder_common_1.SessionType.PLAIN) {
142
+ if (this._sessionType !== session_recorder_common_1.SessionType.MANUAL) {
143
143
  throw new Error('Invalid session type');
144
144
  }
145
145
  await this._apiService.stopSession(this._shortSessionId, sessionData || {});
@@ -169,7 +169,7 @@ class SessionRecorder {
169
169
  if (this._sessionType === session_recorder_common_1.SessionType.CONTINUOUS) {
170
170
  await this._apiService.stopContinuousSession(this._shortSessionId);
171
171
  }
172
- else if (this._sessionType === session_recorder_common_1.SessionType.PLAIN) {
172
+ else if (this._sessionType === session_recorder_common_1.SessionType.MANUAL) {
173
173
  await this._apiService.cancelSession(this._shortSessionId);
174
174
  }
175
175
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sessionRecorder.js","sourceRoot":"","sources":["../src/sessionRecorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionRecorder.js","sourceRoot":"","sources":["../src/sessionRecorder.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@
30
30
  "lint": "eslint src/**/*.ts --config ../../.eslintrc"
31
31
  },
32
32
  "dependencies": {
33
- "@multiplayer-app/session-recorder-common": "1.2.2",
33
+ "@multiplayer-app/session-recorder-common": "1.2.9",
34
34
  "@opentelemetry/api": "1.9.0",
35
35
  "@opentelemetry/api-logs": "0.203.0",
36
36
  "@opentelemetry/auto-instrumentations-node": "0.62.1",
@@ -53,4 +53,4 @@
53
53
  "ts-node": "10.9.1",
54
54
  "typescript": "5.7.3"
55
55
  }
56
- }
56
+ }
@@ -22,7 +22,7 @@ const main = async () => {
22
22
  })
23
23
 
24
24
  await sessionRecorder.start(
25
- SessionType.PLAIN,
25
+ SessionType.MANUAL,
26
26
  {
27
27
  name: 'Test nodejs cli app debug session',
28
28
  resourceAttributes: {
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "author": "Multiplayer",
19
19
  "dependencies": {
20
- "@multiplayer-app/session-recorder-node": "1.2.2",
20
+ "@multiplayer-app/session-recorder-node": "1.2.9",
21
21
  "@opentelemetry/api": "1.9.0",
22
22
  "@opentelemetry/api-logs": "0.203.0",
23
23
  "@opentelemetry/auto-instrumentations-node": "0.62.1",
@@ -45,4 +45,4 @@
45
45
  "ts-node": "10.9.1",
46
46
  "typescript": "5.7.3"
47
47
  }
48
- }
48
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplayer-app/session-recorder-node",
3
- "version": "1.2.5",
3
+ "version": "1.2.9",
4
4
  "description": "Multiplayer Fullstack Session Recorder for Node.js",
5
5
  "author": {
6
6
  "name": "Multiplayer Software, Inc.",
@@ -36,7 +36,7 @@
36
36
  "prepublishOnly": "npm run build"
37
37
  },
38
38
  "dependencies": {
39
- "@multiplayer-app/session-recorder-common": "1.2.4",
39
+ "@multiplayer-app/session-recorder-common": "1.2.9",
40
40
  "@opentelemetry/api": "^1.9.0",
41
41
  "@opentelemetry/core": "^2.0.1",
42
42
  "@opentelemetry/otlp-exporter-base": "^0.203.0",
@@ -49,4 +49,4 @@
49
49
  "@types/node": "24.0.12",
50
50
  "typescript": "5.8.3"
51
51
  }
52
- }
52
+ }
@@ -16,7 +16,7 @@ export class SessionRecorder {
16
16
  private _shortSessionId: string | boolean = false
17
17
 
18
18
  private _traceIdGenerator: SessionRecorderIdGenerator | undefined
19
- private _sessionType: SessionType = SessionType.PLAIN
19
+ private _sessionType: SessionType = SessionType.MANUAL
20
20
  private _sessionState: 'STARTED' | 'STOPPED' | 'PAUSED' = 'STOPPED'
21
21
  private _apiService = new ApiService()
22
22
  private _sessionShortIdGenerator = SessionRecorderSdk.getIdGenerator(MULTIPLAYER_TRACE_DEBUG_SESSION_SHORT_ID_LENGTH)
@@ -201,7 +201,7 @@ export class SessionRecorder {
201
201
  throw new Error('Session should be active or paused')
202
202
  }
203
203
 
204
- if (this._sessionType !== SessionType.PLAIN) {
204
+ if (this._sessionType !== SessionType.MANUAL) {
205
205
  throw new Error('Invalid session type')
206
206
  }
207
207
 
@@ -240,7 +240,7 @@ export class SessionRecorder {
240
240
 
241
241
  if (this._sessionType === SessionType.CONTINUOUS) {
242
242
  await this._apiService.stopContinuousSession(this._shortSessionId)
243
- } else if (this._sessionType === SessionType.PLAIN) {
243
+ } else if (this._sessionType === SessionType.MANUAL) {
244
244
  await this._apiService.cancelSession(this._shortSessionId)
245
245
  }
246
246
  } catch (e) {