@fluidframework/telemetry-utils 2.0.0-rc.3.0.3 → 2.0.0-rc.4.0.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/CHANGELOG.md +8 -0
- package/api-report/telemetry-utils.api.md +11 -11
- package/dist/legacy.d.ts +6 -8
- package/dist/logger.d.ts +5 -14
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +7 -22
- package/dist/logger.js.map +1 -1
- package/dist/public.d.ts +2 -10
- package/dist/telemetryTypes.d.ts +7 -7
- package/dist/telemetryTypes.js.map +1 -1
- package/lib/legacy.d.ts +6 -8
- package/lib/logger.d.ts +5 -14
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +7 -22
- package/lib/logger.js.map +1 -1
- package/lib/public.d.ts +2 -10
- package/lib/telemetryTypes.d.ts +7 -7
- package/lib/telemetryTypes.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +11 -24
- package/src/logger.ts +4 -32
- package/src/telemetryTypes.ts +7 -7
package/src/logger.ts
CHANGED
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
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 =
|
|
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,
|
|
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
|
|
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.
|
package/src/telemetryTypes.ts
CHANGED
|
@@ -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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
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
|
-
* @
|
|
107
|
+
* @alpha
|
|
108
108
|
*/
|
|
109
109
|
export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
110
110
|
/**
|