@fluidframework/telemetry-utils 2.0.0-rc.3.0.2 → 2.0.0-rc.4.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.
package/src/logger.ts CHANGED
@@ -3,11 +3,10 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
- import { IsomorphicPerformance, performance } from "@fluid-internal/client-utils";
6
+ import { performance } from "@fluid-internal/client-utils";
7
7
  import {
8
8
  ITelemetryBaseEvent,
9
9
  ITelemetryBaseLogger,
10
- ITelemetryBaseProperties,
11
10
  LogLevel,
12
11
  Tagged,
13
12
  TelemetryBaseEventPropertyType,
@@ -35,14 +34,6 @@ import {
35
34
  TelemetryEventPropertyTypeExt,
36
35
  } from "./telemetryTypes.js";
37
36
 
38
- export interface Memory {
39
- usedJSHeapSize: number;
40
- }
41
-
42
- export interface PerformanceWithMemory extends IsomorphicPerformance {
43
- readonly memory: Memory;
44
- }
45
-
46
37
  /**
47
38
  * Broad classifications to be applied to individual properties as they're prepared to be logged to telemetry.
48
39
  *
@@ -64,7 +55,7 @@ export enum TelemetryDataTag {
64
55
  /**
65
56
  * @alpha
66
57
  */
67
- export type TelemetryEventPropertyTypes = ITelemetryBaseProperties[string];
58
+ export type TelemetryEventPropertyTypes = ITelemetryPropertiesExt[string];
68
59
 
69
60
  /**
70
61
  * @alpha
@@ -646,10 +637,9 @@ export class PerformanceEvent {
646
637
  logger: ITelemetryLoggerExt,
647
638
  event: ITelemetryGenericEventExt,
648
639
  markers?: IPerformanceEventMarkers,
649
- recordHeapSize: boolean = false,
650
640
  emitLogs: boolean = true,
651
641
  ): PerformanceEvent {
652
- return new PerformanceEvent(logger, event, markers, recordHeapSize, emitLogs);
642
+ return new PerformanceEvent(logger, event, markers, emitLogs);
653
643
  }
654
644
 
655
645
  /**
@@ -678,7 +668,6 @@ export class PerformanceEvent {
678
668
  logger,
679
669
  event,
680
670
  markers,
681
- undefined, // recordHeapSize
682
671
  PerformanceEvent.shouldReport(event, sampleThreshold),
683
672
  );
684
673
  try {
@@ -712,14 +701,12 @@ export class PerformanceEvent {
712
701
  event: ITelemetryGenericEventExt,
713
702
  callback: (event: PerformanceEvent) => Promise<T>,
714
703
  markers?: IPerformanceEventMarkers,
715
- recordHeapSize?: boolean,
716
704
  sampleThreshold: number = 1,
717
705
  ): Promise<T> {
718
706
  const perfEvent = PerformanceEvent.start(
719
707
  logger,
720
708
  event,
721
709
  markers,
722
- recordHeapSize,
723
710
  PerformanceEvent.shouldReport(event, sampleThreshold),
724
711
  );
725
712
  try {
@@ -739,13 +726,11 @@ export class PerformanceEvent {
739
726
  private event?: ITelemetryGenericEventExt;
740
727
  private readonly startTime = performance.now();
741
728
  private startMark?: string;
742
- private startMemoryCollection: number | undefined = 0;
743
729
 
744
730
  protected constructor(
745
731
  private readonly logger: ITelemetryLoggerExt,
746
732
  event: ITelemetryGenericEventExt,
747
733
  private readonly markers: IPerformanceEventMarkers = { end: true, cancel: "generic" },
748
- private readonly recordHeapSize: boolean = false,
749
734
  private readonly emitLogs: boolean = true,
750
735
  ) {
751
736
  this.event = { ...event };
@@ -820,19 +805,6 @@ export class PerformanceEvent {
820
805
  event.eventName = `${event.eventName}_${eventNameSuffix}`;
821
806
  if (eventNameSuffix !== "start") {
822
807
  event.duration = this.duration;
823
- if (this.startMemoryCollection) {
824
- const currentMemory = (performance as PerformanceWithMemory)?.memory
825
- ?.usedJSHeapSize;
826
- const differenceInKBytes = Math.floor(
827
- (currentMemory - this.startMemoryCollection) / 1024,
828
- );
829
- if (differenceInKBytes > 0) {
830
- event.usedJSHeapSize = differenceInKBytes;
831
- }
832
- }
833
- } else if (this.recordHeapSize) {
834
- this.startMemoryCollection = (performance as PerformanceWithMemory)?.memory
835
- ?.usedJSHeapSize;
836
808
  }
837
809
 
838
810
  this.logger.sendPerformanceEvent(event, error);
@@ -958,7 +930,7 @@ export const tagData = <
958
930
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
959
931
  Object.entries(values)
960
932
  .filter((e) => e[1] !== undefined)
961
- // eslint-disable-next-line unicorn/no-array-reduce, unicorn/prefer-object-from-entries
933
+ // eslint-disable-next-line unicorn/no-array-reduce
962
934
  .reduce((pv, cv) => {
963
935
  const [key, value] = cv;
964
936
  // The ternary form is less legible in this case.
@@ -13,7 +13,7 @@ import { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-int
13
13
  * error - Error log event, ideally 0 of these are logged during a session
14
14
  *
15
15
  * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
16
- * @public
16
+ * @alpha
17
17
  */
18
18
  export type TelemetryEventCategory = "generic" | "error" | "performance";
19
19
 
@@ -23,7 +23,7 @@ export type TelemetryEventCategory = "generic" | "error" | "performance";
23
23
  * @remarks
24
24
  * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
25
25
  * converted before sending to a base logger.
26
- * @public
26
+ * @alpha
27
27
  */
28
28
  export type TelemetryEventPropertyTypeExt =
29
29
  | string
@@ -51,7 +51,7 @@ export interface ITaggedTelemetryPropertyTypeExt {
51
51
 
52
52
  /**
53
53
  * JSON-serializable properties, which will be logged with telemetry.
54
- * @public
54
+ * @alpha
55
55
  */
56
56
  export interface ITelemetryPropertiesExt {
57
57
  [index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
@@ -73,7 +73,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
73
73
  /**
74
74
  * Informational (non-error) telemetry event
75
75
  * @remarks Maps to category = "generic"
76
- * @public
76
+ * @alpha
77
77
  */
78
78
  export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
79
79
  eventName: string;
@@ -83,7 +83,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
83
83
  /**
84
84
  * Error telemetry event.
85
85
  * @remarks Maps to category = "error"
86
- * @public
86
+ * @alpha
87
87
  */
88
88
  export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
89
89
  eventName: string;
@@ -92,7 +92,7 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
92
92
  /**
93
93
  * Performance telemetry event.
94
94
  * @remarks Maps to category = "performance"
95
- * @public
95
+ * @alpha
96
96
  */
97
97
  export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
98
98
  duration?: number; // Duration of event (optional)
@@ -104,7 +104,7 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
104
104
  * @remarks
105
105
  * This interface is meant to be used internally within the Fluid Framework,
106
106
  * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
107
- * @public
107
+ * @alpha
108
108
  */
109
109
  export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
110
110
  /**