@fluidframework/container-runtime 1.2.1 → 2.0.0-internal.1.0.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.
Files changed (136) hide show
  1. package/dist/batchTracker.js +1 -1
  2. package/dist/batchTracker.js.map +1 -1
  3. package/dist/blobManager.d.ts +81 -25
  4. package/dist/blobManager.d.ts.map +1 -1
  5. package/dist/blobManager.js +301 -100
  6. package/dist/blobManager.js.map +1 -1
  7. package/dist/containerRuntime.d.ts +66 -49
  8. package/dist/containerRuntime.d.ts.map +1 -1
  9. package/dist/containerRuntime.js +129 -164
  10. package/dist/containerRuntime.js.map +1 -1
  11. package/dist/dataStore.js +29 -24
  12. package/dist/dataStore.js.map +1 -1
  13. package/dist/dataStoreContext.d.ts +3 -4
  14. package/dist/dataStoreContext.d.ts.map +1 -1
  15. package/dist/dataStoreContext.js +16 -23
  16. package/dist/dataStoreContext.js.map +1 -1
  17. package/dist/dataStores.d.ts +6 -3
  18. package/dist/dataStores.d.ts.map +1 -1
  19. package/dist/dataStores.js +13 -5
  20. package/dist/dataStores.js.map +1 -1
  21. package/dist/garbageCollection.d.ts.map +1 -1
  22. package/dist/garbageCollection.js +17 -12
  23. package/dist/garbageCollection.js.map +1 -1
  24. package/dist/opProperties.d.ts +7 -0
  25. package/dist/opProperties.d.ts.map +1 -0
  26. package/dist/opProperties.js +20 -0
  27. package/dist/opProperties.js.map +1 -0
  28. package/dist/packageVersion.d.ts +1 -1
  29. package/dist/packageVersion.d.ts.map +1 -1
  30. package/dist/packageVersion.js +1 -1
  31. package/dist/packageVersion.js.map +1 -1
  32. package/dist/runningSummarizer.d.ts +28 -4
  33. package/dist/runningSummarizer.d.ts.map +1 -1
  34. package/dist/runningSummarizer.js +93 -26
  35. package/dist/runningSummarizer.js.map +1 -1
  36. package/dist/summarizer.d.ts +0 -2
  37. package/dist/summarizer.d.ts.map +1 -1
  38. package/dist/summarizer.js +34 -15
  39. package/dist/summarizer.js.map +1 -1
  40. package/dist/summarizerHeuristics.d.ts +26 -4
  41. package/dist/summarizerHeuristics.d.ts.map +1 -1
  42. package/dist/summarizerHeuristics.js +95 -18
  43. package/dist/summarizerHeuristics.js.map +1 -1
  44. package/dist/summarizerTypes.d.ts +30 -10
  45. package/dist/summarizerTypes.d.ts.map +1 -1
  46. package/dist/summarizerTypes.js.map +1 -1
  47. package/dist/summaryCollection.js +1 -1
  48. package/dist/summaryCollection.js.map +1 -1
  49. package/dist/summaryFormat.d.ts +0 -5
  50. package/dist/summaryFormat.d.ts.map +1 -1
  51. package/dist/summaryFormat.js.map +1 -1
  52. package/dist/summaryGenerator.d.ts +1 -0
  53. package/dist/summaryGenerator.d.ts.map +1 -1
  54. package/dist/summaryGenerator.js +11 -9
  55. package/dist/summaryGenerator.js.map +1 -1
  56. package/lib/batchTracker.js +1 -1
  57. package/lib/batchTracker.js.map +1 -1
  58. package/lib/blobManager.d.ts +81 -25
  59. package/lib/blobManager.d.ts.map +1 -1
  60. package/lib/blobManager.js +302 -101
  61. package/lib/blobManager.js.map +1 -1
  62. package/lib/containerRuntime.d.ts +66 -49
  63. package/lib/containerRuntime.d.ts.map +1 -1
  64. package/lib/containerRuntime.js +131 -166
  65. package/lib/containerRuntime.js.map +1 -1
  66. package/lib/dataStore.js +29 -24
  67. package/lib/dataStore.js.map +1 -1
  68. package/lib/dataStoreContext.d.ts +3 -4
  69. package/lib/dataStoreContext.d.ts.map +1 -1
  70. package/lib/dataStoreContext.js +17 -24
  71. package/lib/dataStoreContext.js.map +1 -1
  72. package/lib/dataStores.d.ts +6 -3
  73. package/lib/dataStores.d.ts.map +1 -1
  74. package/lib/dataStores.js +13 -5
  75. package/lib/dataStores.js.map +1 -1
  76. package/lib/garbageCollection.d.ts.map +1 -1
  77. package/lib/garbageCollection.js +17 -12
  78. package/lib/garbageCollection.js.map +1 -1
  79. package/lib/opProperties.d.ts +7 -0
  80. package/lib/opProperties.d.ts.map +1 -0
  81. package/lib/opProperties.js +16 -0
  82. package/lib/opProperties.js.map +1 -0
  83. package/lib/packageVersion.d.ts +1 -1
  84. package/lib/packageVersion.d.ts.map +1 -1
  85. package/lib/packageVersion.js +1 -1
  86. package/lib/packageVersion.js.map +1 -1
  87. package/lib/runningSummarizer.d.ts +28 -4
  88. package/lib/runningSummarizer.d.ts.map +1 -1
  89. package/lib/runningSummarizer.js +93 -26
  90. package/lib/runningSummarizer.js.map +1 -1
  91. package/lib/summarizer.d.ts +0 -2
  92. package/lib/summarizer.d.ts.map +1 -1
  93. package/lib/summarizer.js +36 -17
  94. package/lib/summarizer.js.map +1 -1
  95. package/lib/summarizerHeuristics.d.ts +26 -4
  96. package/lib/summarizerHeuristics.d.ts.map +1 -1
  97. package/lib/summarizerHeuristics.js +95 -18
  98. package/lib/summarizerHeuristics.js.map +1 -1
  99. package/lib/summarizerTypes.d.ts +30 -10
  100. package/lib/summarizerTypes.d.ts.map +1 -1
  101. package/lib/summarizerTypes.js.map +1 -1
  102. package/lib/summaryCollection.js +1 -1
  103. package/lib/summaryCollection.js.map +1 -1
  104. package/lib/summaryFormat.d.ts +0 -5
  105. package/lib/summaryFormat.d.ts.map +1 -1
  106. package/lib/summaryFormat.js.map +1 -1
  107. package/lib/summaryGenerator.d.ts +1 -0
  108. package/lib/summaryGenerator.d.ts.map +1 -1
  109. package/lib/summaryGenerator.js +11 -9
  110. package/lib/summaryGenerator.js.map +1 -1
  111. package/package.json +55 -21
  112. package/src/batchTracker.ts +1 -1
  113. package/src/blobManager.ts +364 -119
  114. package/src/containerRuntime.ts +232 -216
  115. package/src/dataStore.ts +49 -37
  116. package/src/dataStoreContext.ts +16 -23
  117. package/src/dataStores.ts +27 -16
  118. package/src/garbageCollection.ts +13 -7
  119. package/src/opProperties.ts +19 -0
  120. package/src/packageVersion.ts +1 -1
  121. package/src/runningSummarizer.ts +108 -23
  122. package/src/summarizer.ts +47 -28
  123. package/src/summarizerHeuristics.ts +133 -19
  124. package/src/summarizerTypes.ts +37 -10
  125. package/src/summaryCollection.ts +1 -1
  126. package/src/summaryFormat.ts +0 -6
  127. package/src/summaryGenerator.ts +40 -22
  128. package/dist/opTelemetry.d.ts +0 -22
  129. package/dist/opTelemetry.d.ts.map +0 -1
  130. package/dist/opTelemetry.js +0 -59
  131. package/dist/opTelemetry.js.map +0 -1
  132. package/lib/opTelemetry.d.ts +0 -22
  133. package/lib/opTelemetry.d.ts.map +0 -1
  134. package/lib/opTelemetry.js +0 -55
  135. package/lib/opTelemetry.js.map +0 -1
  136. package/src/opTelemetry.ts +0 -71
@@ -370,7 +370,7 @@ export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEve
370
370
  // Potential causes for it to be later than our initialSequenceNumber
371
371
  // are that the summaryOp was nacked then acked, double-acked, or
372
372
  // the summarySequenceNumber is incorrect.
373
- this.logger.sendErrorEvent({
373
+ this.logger.sendTelemetryEvent({
374
374
  eventName: "SummaryAckWithoutOp",
375
375
  sequenceNumber: op.sequenceNumber, // summary ack seq #
376
376
  summarySequenceNumber: seq, // missing summary seq #
@@ -73,7 +73,6 @@ export function getAttributesFormatVersion(attributes: ReadFluidDataStoreAttribu
73
73
  export function hasIsolatedChannels(attributes: ReadFluidDataStoreAttributes): boolean {
74
74
  return !!attributes.summaryFormatVersion && !attributes.disableIsolatedChannels;
75
75
  }
76
-
77
76
  export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGCMetadata {
78
77
  readonly summaryFormatVersion: 1;
79
78
  /** The last message processed at the time of summary. Only primitive property types are added to the summary. */
@@ -82,11 +81,6 @@ export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGC
82
81
  readonly disableIsolatedChannels?: true;
83
82
  /** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */
84
83
  readonly summaryNumber?: number;
85
- /**
86
- * @deprecated - User summaryNumber instead.
87
- * Counter of the last summary happened, increments every time we summarize
88
- */
89
- readonly summaryCount?: number;
90
84
  }
91
85
 
92
86
  export interface ICreateContainerMetadata {
@@ -264,28 +264,7 @@ export class SummaryGenerator {
264
264
  opsSinceLastAttempt: referenceSequenceNumber - this.heuristicData.lastAttempt.refSequenceNumber,
265
265
  opsSinceLastSummary,
266
266
  };
267
- if (summaryData.stage !== "base") {
268
- summarizeTelemetryProps = {
269
- ...summarizeTelemetryProps,
270
- ...summaryData.summaryStats,
271
- generateDuration: summaryData.generateDuration,
272
- };
273
-
274
- if (summaryData.stage !== "generate") {
275
- summarizeTelemetryProps = {
276
- ...summarizeTelemetryProps,
277
- handle: summaryData.handle,
278
- uploadDuration: summaryData.uploadDuration,
279
- };
280
-
281
- if (summaryData.stage !== "upload") {
282
- summarizeTelemetryProps = {
283
- ...summarizeTelemetryProps,
284
- clientSequenceNumber: summaryData.clientSequenceNumber,
285
- };
286
- }
287
- }
288
- }
267
+ summarizeTelemetryProps = this.addSummaryDataToTelemetryProps(summaryData, summarizeTelemetryProps);
289
268
 
290
269
  if (summaryData.stage !== "submit") {
291
270
  return fail("submitSummaryFailure", summaryData.error, summarizeTelemetryProps);
@@ -408,6 +387,45 @@ export class SummaryGenerator {
408
387
  }
409
388
  }
410
389
 
390
+ private addSummaryDataToTelemetryProps(
391
+ summaryData: SubmitSummaryResult,
392
+ initialProps: SummaryGeneratorTelemetry,
393
+ ): SummaryGeneratorTelemetry {
394
+ switch (summaryData.stage) {
395
+ case "base": return initialProps;
396
+
397
+ case "generate": return {
398
+ ...initialProps,
399
+ ...summaryData.summaryStats,
400
+ generateDuration: summaryData.generateDuration,
401
+ };
402
+
403
+ case "upload": return {
404
+ ...initialProps,
405
+ ...summaryData.summaryStats,
406
+ generateDuration: summaryData.generateDuration,
407
+ handle: summaryData.handle,
408
+ uploadDuration: summaryData.uploadDuration,
409
+ };
410
+
411
+ case "submit": return {
412
+ ...initialProps,
413
+ ...summaryData.summaryStats,
414
+ generateDuration: summaryData.generateDuration,
415
+ handle: summaryData.handle,
416
+ uploadDuration: summaryData.uploadDuration,
417
+ clientSequenceNumber: summaryData.clientSequenceNumber,
418
+ hasMissingOpData: this.heuristicData.hasMissingOpData,
419
+ opsSizesSinceLastSummary: this.heuristicData.totalOpsSize,
420
+ nonRuntimeOpsSinceLastSummary: this.heuristicData.numNonRuntimeOps,
421
+ };
422
+
423
+ default: assert(true, 0x397 /* Unexpected summary stage */);
424
+ }
425
+
426
+ return initialProps;
427
+ }
428
+
411
429
  private summarizeTimerHandler(time: number, count: number) {
412
430
  this.logger.sendPerformanceEvent({
413
431
  eventName: "SummarizeTimeout",
@@ -1,22 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { IDeltaManager } from "@fluidframework/container-definitions";
6
- import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
7
- export declare class OpTracker {
8
- /**
9
- * Used for storing the message content size when
10
- * the message is pushed onto the inbound queue.
11
- */
12
- private readonly messageSize;
13
- private _nonSystemOpCount;
14
- get nonSystemOpCount(): number;
15
- private _opsSizeAccumulator;
16
- get opsSizeAccumulator(): number;
17
- constructor(deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>, disabled: boolean);
18
- private static messageId;
19
- private static messageHasData;
20
- reset(): void;
21
- }
22
- //# sourceMappingURL=opTelemetry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opTelemetry.d.ts","sourceRoot":"","sources":["../src/opTelemetry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EACH,gBAAgB,EAChB,yBAAyB,EAE5B,MAAM,sCAAsC,CAAC;AAG9C,qBAAa,SAAS;IAClB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,iBAAiB,CAAa;IACtC,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED,OAAO,CAAC,mBAAmB,CAAa;IACxC,IAAW,kBAAkB,IAAI,MAAM,CAEtC;gBAGG,YAAY,EAAE,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,EACxE,QAAQ,EAAE,OAAO;IA2BrB,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB,OAAO,CAAC,MAAM,CAAC,cAAc;IAItB,KAAK;CAIf"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- /*!
3
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
4
- * Licensed under the MIT License.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.OpTracker = void 0;
8
- const driver_utils_1 = require("@fluidframework/driver-utils");
9
- class OpTracker {
10
- constructor(deltaManager, disabled) {
11
- /**
12
- * Used for storing the message content size when
13
- * the message is pushed onto the inbound queue.
14
- */
15
- this.messageSize = new Map();
16
- this._nonSystemOpCount = 0;
17
- this._opsSizeAccumulator = 0;
18
- if (disabled) {
19
- return;
20
- }
21
- // Record the message content size when we receive it.
22
- // We should not log this value, as summarization can happen between the time the message
23
- // is received and until it is processed (the 'op' event).
24
- deltaManager.inbound.on("push", (message) => {
25
- // Some messages my already have string contents at this point,
26
- // so stringifying them again will add inaccurate overhead.
27
- const messageContent = typeof message.contents === "string" ?
28
- message.contents :
29
- JSON.stringify(message.contents);
30
- const messageData = OpTracker.messageHasData(message) ? message.data : "";
31
- this.messageSize[OpTracker.messageId(message)] = messageContent.length + messageData.length;
32
- });
33
- deltaManager.on("op", (message) => {
34
- var _a;
35
- this._nonSystemOpCount += !(0, driver_utils_1.isRuntimeMessage)(message) ? 0 : 1;
36
- const id = OpTracker.messageId(message);
37
- this._opsSizeAccumulator += (_a = this.messageSize[id]) !== null && _a !== void 0 ? _a : 0;
38
- this.messageSize.delete(id);
39
- });
40
- }
41
- get nonSystemOpCount() {
42
- return this._nonSystemOpCount;
43
- }
44
- get opsSizeAccumulator() {
45
- return this._opsSizeAccumulator;
46
- }
47
- static messageId(message) {
48
- return message.sequenceNumber;
49
- }
50
- static messageHasData(message) {
51
- return message.data !== undefined;
52
- }
53
- reset() {
54
- this._nonSystemOpCount = 0;
55
- this._opsSizeAccumulator = 0;
56
- }
57
- }
58
- exports.OpTracker = OpTracker;
59
- //# sourceMappingURL=opTelemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opTelemetry.js","sourceRoot":"","sources":["../src/opTelemetry.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAQH,+DAAgE;AAEhE,MAAa,SAAS;IAgBlB,YACI,YAAwE,EACxE,QAAiB;QAjBrB;;;WAGG;QACc,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,sBAAiB,GAAW,CAAC,CAAC;QAK9B,wBAAmB,GAAW,CAAC,CAAC;QASpC,IAAI,QAAQ,EAAE;YACV,OAAO;SACV;QAED,sDAAsD;QACtD,yFAAyF;QACzF,0DAA0D;QAC1D,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAkC,EAAE,EAAE;YACnE,+DAA+D;YAC/D,2DAA2D;YAC3D,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;gBACzD,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,OAAkC,EAAE,EAAE;;YACzD,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAA,+BAAgB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,IAAI,MAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC;YACtD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IApCD,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAGD,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IA+BO,MAAM,CAAC,SAAS,CAAC,OAAkC;QACvD,OAAO,OAAO,CAAC,cAAc,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,OAAkC;QAC5D,OAAQ,OAA2C,CAAC,IAAI,KAAK,SAAS,CAAC;IAC3E,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ;AAzDD,8BAyDC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IDeltaManager } from \"@fluidframework/container-definitions\";\nimport {\n IDocumentMessage,\n ISequencedDocumentMessage,\n ISequencedDocumentSystemMessage,\n} from \"@fluidframework/protocol-definitions\";\nimport { isRuntimeMessage } from \"@fluidframework/driver-utils\";\n\nexport class OpTracker {\n /**\n * Used for storing the message content size when\n * the message is pushed onto the inbound queue.\n */\n private readonly messageSize = new Map<number, number>();\n private _nonSystemOpCount: number = 0;\n public get nonSystemOpCount(): number {\n return this._nonSystemOpCount;\n }\n\n private _opsSizeAccumulator: number = 0;\n public get opsSizeAccumulator(): number {\n return this._opsSizeAccumulator;\n }\n\n public constructor(\n deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,\n disabled: boolean,\n ) {\n if (disabled) {\n return;\n }\n\n // Record the message content size when we receive it.\n // We should not log this value, as summarization can happen between the time the message\n // is received and until it is processed (the 'op' event).\n deltaManager.inbound.on(\"push\", (message: ISequencedDocumentMessage) => {\n // Some messages my already have string contents at this point,\n // so stringifying them again will add inaccurate overhead.\n const messageContent = typeof message.contents === \"string\" ?\n message.contents :\n JSON.stringify(message.contents);\n const messageData = OpTracker.messageHasData(message) ? message.data : \"\";\n this.messageSize[OpTracker.messageId(message)] = messageContent.length + messageData.length;\n });\n\n deltaManager.on(\"op\", (message: ISequencedDocumentMessage) => {\n this._nonSystemOpCount += !isRuntimeMessage(message) ? 0 : 1;\n const id = OpTracker.messageId(message);\n this._opsSizeAccumulator += this.messageSize[id] ?? 0;\n this.messageSize.delete(id);\n });\n }\n\n private static messageId(message: ISequencedDocumentMessage): number {\n return message.sequenceNumber;\n }\n\n private static messageHasData(message: ISequencedDocumentMessage): message is ISequencedDocumentSystemMessage {\n return (message as ISequencedDocumentSystemMessage).data !== undefined;\n }\n\n public reset() {\n this._nonSystemOpCount = 0;\n this._opsSizeAccumulator = 0;\n }\n}\n"]}
@@ -1,22 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { IDeltaManager } from "@fluidframework/container-definitions";
6
- import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
7
- export declare class OpTracker {
8
- /**
9
- * Used for storing the message content size when
10
- * the message is pushed onto the inbound queue.
11
- */
12
- private readonly messageSize;
13
- private _nonSystemOpCount;
14
- get nonSystemOpCount(): number;
15
- private _opsSizeAccumulator;
16
- get opsSizeAccumulator(): number;
17
- constructor(deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>, disabled: boolean);
18
- private static messageId;
19
- private static messageHasData;
20
- reset(): void;
21
- }
22
- //# sourceMappingURL=opTelemetry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opTelemetry.d.ts","sourceRoot":"","sources":["../src/opTelemetry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EACH,gBAAgB,EAChB,yBAAyB,EAE5B,MAAM,sCAAsC,CAAC;AAG9C,qBAAa,SAAS;IAClB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,iBAAiB,CAAa;IACtC,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED,OAAO,CAAC,mBAAmB,CAAa;IACxC,IAAW,kBAAkB,IAAI,MAAM,CAEtC;gBAGG,YAAY,EAAE,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,EACxE,QAAQ,EAAE,OAAO;IA2BrB,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB,OAAO,CAAC,MAAM,CAAC,cAAc;IAItB,KAAK;CAIf"}
@@ -1,55 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
- import { isRuntimeMessage } from "@fluidframework/driver-utils";
6
- export class OpTracker {
7
- constructor(deltaManager, disabled) {
8
- /**
9
- * Used for storing the message content size when
10
- * the message is pushed onto the inbound queue.
11
- */
12
- this.messageSize = new Map();
13
- this._nonSystemOpCount = 0;
14
- this._opsSizeAccumulator = 0;
15
- if (disabled) {
16
- return;
17
- }
18
- // Record the message content size when we receive it.
19
- // We should not log this value, as summarization can happen between the time the message
20
- // is received and until it is processed (the 'op' event).
21
- deltaManager.inbound.on("push", (message) => {
22
- // Some messages my already have string contents at this point,
23
- // so stringifying them again will add inaccurate overhead.
24
- const messageContent = typeof message.contents === "string" ?
25
- message.contents :
26
- JSON.stringify(message.contents);
27
- const messageData = OpTracker.messageHasData(message) ? message.data : "";
28
- this.messageSize[OpTracker.messageId(message)] = messageContent.length + messageData.length;
29
- });
30
- deltaManager.on("op", (message) => {
31
- var _a;
32
- this._nonSystemOpCount += !isRuntimeMessage(message) ? 0 : 1;
33
- const id = OpTracker.messageId(message);
34
- this._opsSizeAccumulator += (_a = this.messageSize[id]) !== null && _a !== void 0 ? _a : 0;
35
- this.messageSize.delete(id);
36
- });
37
- }
38
- get nonSystemOpCount() {
39
- return this._nonSystemOpCount;
40
- }
41
- get opsSizeAccumulator() {
42
- return this._opsSizeAccumulator;
43
- }
44
- static messageId(message) {
45
- return message.sequenceNumber;
46
- }
47
- static messageHasData(message) {
48
- return message.data !== undefined;
49
- }
50
- reset() {
51
- this._nonSystemOpCount = 0;
52
- this._opsSizeAccumulator = 0;
53
- }
54
- }
55
- //# sourceMappingURL=opTelemetry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"opTelemetry.js","sourceRoot":"","sources":["../src/opTelemetry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAO,SAAS;IAgBlB,YACI,YAAwE,EACxE,QAAiB;QAjBrB;;;WAGG;QACc,gBAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,sBAAiB,GAAW,CAAC,CAAC;QAK9B,wBAAmB,GAAW,CAAC,CAAC;QASpC,IAAI,QAAQ,EAAE;YACV,OAAO;SACV;QAED,sDAAsD;QACtD,yFAAyF;QACzF,0DAA0D;QAC1D,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAkC,EAAE,EAAE;YACnE,+DAA+D;YAC/D,2DAA2D;YAC3D,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;gBACzD,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,OAAkC,EAAE,EAAE;;YACzD,IAAI,CAAC,iBAAiB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,IAAI,MAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,mCAAI,CAAC,CAAC;YACtD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IApCD,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAGD,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IA+BO,MAAM,CAAC,SAAS,CAAC,OAAkC;QACvD,OAAO,OAAO,CAAC,cAAc,CAAC;IAClC,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,OAAkC;QAC5D,OAAQ,OAA2C,CAAC,IAAI,KAAK,SAAS,CAAC;IAC3E,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IDeltaManager } from \"@fluidframework/container-definitions\";\nimport {\n IDocumentMessage,\n ISequencedDocumentMessage,\n ISequencedDocumentSystemMessage,\n} from \"@fluidframework/protocol-definitions\";\nimport { isRuntimeMessage } from \"@fluidframework/driver-utils\";\n\nexport class OpTracker {\n /**\n * Used for storing the message content size when\n * the message is pushed onto the inbound queue.\n */\n private readonly messageSize = new Map<number, number>();\n private _nonSystemOpCount: number = 0;\n public get nonSystemOpCount(): number {\n return this._nonSystemOpCount;\n }\n\n private _opsSizeAccumulator: number = 0;\n public get opsSizeAccumulator(): number {\n return this._opsSizeAccumulator;\n }\n\n public constructor(\n deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,\n disabled: boolean,\n ) {\n if (disabled) {\n return;\n }\n\n // Record the message content size when we receive it.\n // We should not log this value, as summarization can happen between the time the message\n // is received and until it is processed (the 'op' event).\n deltaManager.inbound.on(\"push\", (message: ISequencedDocumentMessage) => {\n // Some messages my already have string contents at this point,\n // so stringifying them again will add inaccurate overhead.\n const messageContent = typeof message.contents === \"string\" ?\n message.contents :\n JSON.stringify(message.contents);\n const messageData = OpTracker.messageHasData(message) ? message.data : \"\";\n this.messageSize[OpTracker.messageId(message)] = messageContent.length + messageData.length;\n });\n\n deltaManager.on(\"op\", (message: ISequencedDocumentMessage) => {\n this._nonSystemOpCount += !isRuntimeMessage(message) ? 0 : 1;\n const id = OpTracker.messageId(message);\n this._opsSizeAccumulator += this.messageSize[id] ?? 0;\n this.messageSize.delete(id);\n });\n }\n\n private static messageId(message: ISequencedDocumentMessage): number {\n return message.sequenceNumber;\n }\n\n private static messageHasData(message: ISequencedDocumentMessage): message is ISequencedDocumentSystemMessage {\n return (message as ISequencedDocumentSystemMessage).data !== undefined;\n }\n\n public reset() {\n this._nonSystemOpCount = 0;\n this._opsSizeAccumulator = 0;\n }\n}\n"]}
@@ -1,71 +0,0 @@
1
- /*!
2
- * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
- * Licensed under the MIT License.
4
- */
5
-
6
- import { IDeltaManager } from "@fluidframework/container-definitions";
7
- import {
8
- IDocumentMessage,
9
- ISequencedDocumentMessage,
10
- ISequencedDocumentSystemMessage,
11
- } from "@fluidframework/protocol-definitions";
12
- import { isRuntimeMessage } from "@fluidframework/driver-utils";
13
-
14
- export class OpTracker {
15
- /**
16
- * Used for storing the message content size when
17
- * the message is pushed onto the inbound queue.
18
- */
19
- private readonly messageSize = new Map<number, number>();
20
- private _nonSystemOpCount: number = 0;
21
- public get nonSystemOpCount(): number {
22
- return this._nonSystemOpCount;
23
- }
24
-
25
- private _opsSizeAccumulator: number = 0;
26
- public get opsSizeAccumulator(): number {
27
- return this._opsSizeAccumulator;
28
- }
29
-
30
- public constructor(
31
- deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,
32
- disabled: boolean,
33
- ) {
34
- if (disabled) {
35
- return;
36
- }
37
-
38
- // Record the message content size when we receive it.
39
- // We should not log this value, as summarization can happen between the time the message
40
- // is received and until it is processed (the 'op' event).
41
- deltaManager.inbound.on("push", (message: ISequencedDocumentMessage) => {
42
- // Some messages my already have string contents at this point,
43
- // so stringifying them again will add inaccurate overhead.
44
- const messageContent = typeof message.contents === "string" ?
45
- message.contents :
46
- JSON.stringify(message.contents);
47
- const messageData = OpTracker.messageHasData(message) ? message.data : "";
48
- this.messageSize[OpTracker.messageId(message)] = messageContent.length + messageData.length;
49
- });
50
-
51
- deltaManager.on("op", (message: ISequencedDocumentMessage) => {
52
- this._nonSystemOpCount += !isRuntimeMessage(message) ? 0 : 1;
53
- const id = OpTracker.messageId(message);
54
- this._opsSizeAccumulator += this.messageSize[id] ?? 0;
55
- this.messageSize.delete(id);
56
- });
57
- }
58
-
59
- private static messageId(message: ISequencedDocumentMessage): number {
60
- return message.sequenceNumber;
61
- }
62
-
63
- private static messageHasData(message: ISequencedDocumentMessage): message is ISequencedDocumentSystemMessage {
64
- return (message as ISequencedDocumentSystemMessage).data !== undefined;
65
- }
66
-
67
- public reset() {
68
- this._nonSystemOpCount = 0;
69
- this._opsSizeAccumulator = 0;
70
- }
71
- }