@fluidframework/telemetry-utils 2.102.0 → 2.110.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/CHANGELOG.md +14 -0
- package/DEV.md +0 -14
- package/api-report/telemetry-utils.legacy.beta.api.md +1 -26
- package/dist/api.d.ts +0 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js.map +1 -1
- package/dist/errorLogging.js +1 -1
- package/dist/errorLogging.js.map +1 -1
- package/dist/internal.d.ts +0 -11
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/legacy.d.ts +0 -4
- package/dist/logger.d.ts +16 -4
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +22 -1
- package/dist/logger.js.map +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js.map +1 -1
- package/dist/telemetryTypes.d.ts +9 -50
- package/dist/telemetryTypes.d.ts.map +1 -1
- package/dist/telemetryTypes.js.map +1 -1
- package/lib/api.d.ts +0 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js.map +1 -1
- package/lib/errorLogging.js +1 -1
- package/lib/errorLogging.js.map +1 -1
- package/lib/internal.d.ts +0 -11
- package/lib/internal.d.ts.map +1 -1
- package/lib/internal.js.map +1 -1
- package/lib/legacy.d.ts +0 -4
- package/lib/logger.d.ts +16 -4
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +22 -1
- package/lib/logger.js.map +1 -1
- package/lib/main.d.ts +1 -1
- package/lib/main.d.ts.map +1 -1
- package/lib/main.js.map +1 -1
- package/lib/telemetryTypes.d.ts +9 -50
- package/lib/telemetryTypes.d.ts.map +1 -1
- package/lib/telemetryTypes.js.map +1 -1
- package/package.json +29 -9
- package/src/api.ts +0 -9
- package/src/errorLogging.ts +1 -1
- package/src/internal.ts +0 -13
- package/src/logger.ts +40 -7
- package/src/main.ts +1 -0
- package/src/telemetryTypes.ts +16 -61
- package/tsconfig.json +0 -1
package/lib/telemetryTypes.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import type { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-interfaces";
|
|
5
|
+
import type { ErasedType, ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-interfaces";
|
|
6
6
|
/**
|
|
7
7
|
* The categories FF uses when instrumenting the code.
|
|
8
8
|
*
|
|
@@ -11,9 +11,8 @@ import type { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/cor
|
|
|
11
11
|
* error - Error log event, ideally 0 of these are logged during a session
|
|
12
12
|
*
|
|
13
13
|
* performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
|
|
14
|
-
*
|
|
15
|
-
* @
|
|
16
|
-
* @legacy @beta
|
|
14
|
+
*
|
|
15
|
+
* @internal
|
|
17
16
|
*/
|
|
18
17
|
export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
19
18
|
/**
|
|
@@ -51,9 +50,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
|
|
|
51
50
|
/**
|
|
52
51
|
* Informational (non-error) telemetry event
|
|
53
52
|
* @remarks Maps to category = "generic"
|
|
54
|
-
* @
|
|
55
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
56
|
-
* @legacy @beta
|
|
53
|
+
* @internal
|
|
57
54
|
*/
|
|
58
55
|
export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
59
56
|
/**
|
|
@@ -69,9 +66,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
|
69
66
|
/**
|
|
70
67
|
* Error telemetry event.
|
|
71
68
|
* @remarks Maps to category = "error"
|
|
72
|
-
* @
|
|
73
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
74
|
-
* @legacy @beta
|
|
69
|
+
* @internal
|
|
75
70
|
*/
|
|
76
71
|
export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
77
72
|
/**
|
|
@@ -82,9 +77,7 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
|
82
77
|
/**
|
|
83
78
|
* Performance telemetry event.
|
|
84
79
|
* @remarks Maps to category = "performance"
|
|
85
|
-
* @
|
|
86
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
87
|
-
* @legacy @beta
|
|
80
|
+
* @internal
|
|
88
81
|
*/
|
|
89
82
|
export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
90
83
|
/**
|
|
@@ -93,15 +86,9 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
|
|
|
93
86
|
duration?: number;
|
|
94
87
|
}
|
|
95
88
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
* @remarks
|
|
99
|
-
* The methods if this interface are not to be used directly by consumers and are all
|
|
100
|
-
* deprecated to removed without replacement. This type is not deprecated and will
|
|
101
|
-
* transition to an erased type to handle cases where "internal" `ITelemetryLoggerExt`
|
|
102
|
-
* previously leaked out.
|
|
89
|
+
* Handle for an extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} used internally within the Fluid Framework.
|
|
103
90
|
*
|
|
104
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for deprecation and breaking change details.
|
|
91
|
+
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for past method deprecation and breaking change details.
|
|
105
92
|
*
|
|
106
93
|
* @privateRemarks
|
|
107
94
|
* External APIs taking in an `ITelemetryLoggerExt` ideally should be updated to
|
|
@@ -111,35 +98,7 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
|
|
|
111
98
|
* @legacy
|
|
112
99
|
* @beta
|
|
113
100
|
*/
|
|
114
|
-
export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
115
|
-
/**
|
|
116
|
-
* Send an information telemetry event.
|
|
117
|
-
* @param event - Event to send.
|
|
118
|
-
* @param error - Optional error object to log.
|
|
119
|
-
* @param logLevel - Optional level of the log. If undefined, the logLevel should be treated as {@link @fluidframework/core-interfaces#LogLevel.essential}.
|
|
120
|
-
* If the event's category is `error`, the logLevel will be upgraded to {@link @fluidframework/core-interfaces#LogLevel.essential}.
|
|
121
|
-
* @deprecated This method is being removed without a replacement.
|
|
122
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
123
|
-
*/
|
|
124
|
-
sendTelemetryEvent(event: ITelemetryGenericEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.info): void;
|
|
125
|
-
/**
|
|
126
|
-
* Send an error telemetry event.
|
|
127
|
-
* @param event - Event to send.
|
|
128
|
-
* @param error - Optional error object to log.
|
|
129
|
-
* @deprecated This method is being removed without a replacement.
|
|
130
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
131
|
-
*/
|
|
132
|
-
sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
|
|
133
|
-
/**
|
|
134
|
-
* Send a performance telemetry event.
|
|
135
|
-
* @param event - Event to send
|
|
136
|
-
* @param error - Optional error object to log.
|
|
137
|
-
* @param logLevel - Optional level of the log. If undefined, the logLevel should be treated as {@link @fluidframework/core-interfaces#LogLevel.essential}.
|
|
138
|
-
* If the event's category is `error`, the logLevel will be upgraded to {@link @fluidframework/core-interfaces#LogLevel.essential}.
|
|
139
|
-
* @deprecated This method is being removed without a replacement.
|
|
140
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
141
|
-
*/
|
|
142
|
-
sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.info): void;
|
|
101
|
+
export interface ITelemetryLoggerExt extends ErasedType<"TelemetryLoggerExt">, ITelemetryBaseLogger {
|
|
143
102
|
}
|
|
144
103
|
/**
|
|
145
104
|
* An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,UAAU,EACV,oBAAoB,EACpB,QAAQ,EACR,MAAM,EACN,MAAM,iCAAiC,CAAC;AAEzC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,MAAM,6BAA6B,GACtC,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AAEzF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC3C,MAAM,EACN,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CACrE,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IAClE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACvE;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC/E;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAChB,SAAQ,UAAU,CAAC,oBAAoB,CAAC,EACvC,oBAAoB;CAAG;AAEzB;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB;IAC/D;;;;;;OAMG;IACH,kBAAkB,CACjB,KAAK,EAAE,yBAAyB,EAChC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,IAAI,GACvD,IAAI,CAAC;IAER;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtE;;;;;;OAMG;IACH,oBAAoB,CACnB,KAAK,EAAE,6BAA6B,EACpC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,IAAI,GACvD,IAAI,CAAC;CACR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetryTypes.js","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {
|
|
1
|
+
{"version":3,"file":"telemetryTypes.js","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {\n\tErasedType,\n\tITelemetryBaseLogger,\n\tLogLevel,\n\tTagged,\n} from \"@fluidframework/core-interfaces\";\n\n/**\n * The categories FF uses when instrumenting the code.\n *\n * generic - Informational log event\n *\n * error - Error log event, ideally 0 of these are logged during a session\n *\n * performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking\n *\n * @internal\n */\nexport type TelemetryEventCategory = \"generic\" | \"error\" | \"performance\";\n\n/**\n * Property types that can be logged.\n *\n * @remarks\n * Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be\n * converted before sending to a base logger.\n * @legacy @beta\n */\nexport type TelemetryEventPropertyTypeExt =\n\t| string\n\t| number\n\t| boolean\n\t| undefined\n\t| (string | number | boolean)[]\n\t| Record<string, string | number | boolean | undefined | (string | number | boolean)[]>;\n\n/**\n * JSON-serializable properties, which will be logged with telemetry.\n * @legacy @beta\n */\nexport type ITelemetryPropertiesExt = Record<\n\tstring,\n\tTelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>\n>;\n\n/**\n * Interface for logging telemetry statements.\n * @remarks May contain any number of properties that get serialized as json payload.\n * @param category - category of the event, like \"error\", \"performance\", \"generic\", etc.\n * @param eventName - name of the event.\n *\n * @internal\n */\nexport interface ITelemetryEventExt extends ITelemetryPropertiesExt {\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#ITelemetryBaseEvent.category}\n\t */\n\tcategory: string;\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#ITelemetryBaseEvent.eventName}\n\t */\n\teventName: string;\n}\n\n/**\n * Informational (non-error) telemetry event\n * @remarks Maps to category = \"generic\"\n * @internal\n */\nexport interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#ITelemetryBaseEvent.eventName}\n\t */\n\teventName: string;\n\n\t/**\n\t * Optional event {@link @fluidframework/core-interfaces#ITelemetryBaseEvent.category}.\n\t * @defaultValue \"generic\"\n\t */\n\tcategory?: TelemetryEventCategory;\n}\n\n/**\n * Error telemetry event.\n * @remarks Maps to category = \"error\"\n * @internal\n */\nexport interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#ITelemetryBaseEvent.eventName}\n\t */\n\teventName: string;\n}\n\n/**\n * Performance telemetry event.\n * @remarks Maps to category = \"performance\"\n * @internal\n */\nexport interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {\n\t/**\n\t * Duration of event (optional)\n\t */\n\tduration?: number;\n}\n\n/**\n * Handle for an extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} used internally within the Fluid Framework.\n *\n * @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for past method deprecation and breaking change details.\n *\n * @privateRemarks\n * External APIs taking in an `ITelemetryLoggerExt` ideally should be updated to\n * accept `ITelemetryBaseLogger` instead.\n *\n * @sealed\n * @legacy\n * @beta\n */\nexport interface ITelemetryLoggerExt\n\textends ErasedType<\"TelemetryLoggerExt\">,\n\t\tITelemetryBaseLogger {}\n\n/**\n * An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.\n *\n * @remarks\n * This interface is meant to be used internally within the Fluid Framework,\n * and `ITelemetryBaseLogger` should be used when loggers are passed between layers.\n * @internal\n */\nexport interface TelemetryLoggerExt extends ITelemetryBaseLogger {\n\t/**\n\t * Send an information telemetry event.\n\t * @param event - Event to send.\n\t * @param error - Optional error object to log.\n\t * @param logLevel - Optional level of the log. If undefined, the logLevel will be treated as {@link @fluidframework/core-interfaces#LogLevelConst.essential | LogLevel.essential}.\n\t * If the event's category is `error`, the logLevel will be upgraded to {@link @fluidframework/core-interfaces#LogLevelConst.essential | LogLevel.essential}.\n\t */\n\tsendTelemetryEvent(\n\t\tevent: ITelemetryGenericEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.info,\n\t): void;\n\n\t/**\n\t * Send an error telemetry event.\n\t * @param event - Event to send.\n\t * @param error - Optional error object to log.\n\t */\n\tsendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;\n\n\t/**\n\t * Send a performance telemetry event.\n\t * @param event - Event to send\n\t * @param error - Optional error object to log.\n\t * @param logLevel - Optional level of the log. If undefined, the logLevel will be treated as {@link @fluidframework/core-interfaces#LogLevelConst.essential | LogLevel.essential}.\n\t * If the event's category is `error`, the logLevel will be upgraded to {@link @fluidframework/core-interfaces#LogLevelConst.essential | LogLevel.essential}.\n\t */\n\tsendPerformanceEvent(\n\t\tevent: ITelemetryPerformanceEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.info,\n\t): void;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/telemetry-utils",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.110.0",
|
|
4
4
|
"description": "Collection of telemetry relates utilities for Fluid",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -69,22 +69,22 @@
|
|
|
69
69
|
"temp-directory": "nyc/.nyc_output"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@fluid-internal/client-utils": "~2.
|
|
73
|
-
"@fluidframework/core-interfaces": "~2.
|
|
74
|
-
"@fluidframework/core-utils": "~2.
|
|
75
|
-
"@fluidframework/driver-definitions": "~2.
|
|
72
|
+
"@fluid-internal/client-utils": "~2.110.0",
|
|
73
|
+
"@fluidframework/core-interfaces": "~2.110.0",
|
|
74
|
+
"@fluidframework/core-utils": "~2.110.0",
|
|
75
|
+
"@fluidframework/driver-definitions": "~2.110.0",
|
|
76
76
|
"debug": "^4.3.4",
|
|
77
77
|
"uuid": "^11.1.0"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@arethetypeswrong/cli": "^0.18.2",
|
|
81
81
|
"@biomejs/biome": "~2.4.5",
|
|
82
|
-
"@fluid-internal/mocha-test-setup": "~2.
|
|
82
|
+
"@fluid-internal/mocha-test-setup": "~2.110.0",
|
|
83
83
|
"@fluid-tools/build-cli": "^0.65.0",
|
|
84
84
|
"@fluidframework/build-common": "^2.0.3",
|
|
85
85
|
"@fluidframework/build-tools": "^0.65.0",
|
|
86
|
-
"@fluidframework/eslint-config-fluid": "^
|
|
87
|
-
"@fluidframework/telemetry-utils-previous": "npm:@fluidframework/telemetry-utils@2.
|
|
86
|
+
"@fluidframework/eslint-config-fluid": "^13.0.0",
|
|
87
|
+
"@fluidframework/telemetry-utils-previous": "npm:@fluidframework/telemetry-utils@2.103.0",
|
|
88
88
|
"@microsoft/api-extractor": "7.58.1",
|
|
89
89
|
"@types/debug": "^4.1.5",
|
|
90
90
|
"@types/mocha": "^10.0.10",
|
|
@@ -103,7 +103,27 @@
|
|
|
103
103
|
"typescript": "~5.4.5"
|
|
104
104
|
},
|
|
105
105
|
"typeValidation": {
|
|
106
|
-
"broken": {
|
|
106
|
+
"broken": {
|
|
107
|
+
"Interface_ITelemetryErrorEventExt": {
|
|
108
|
+
"backCompat": false,
|
|
109
|
+
"forwardCompat": false
|
|
110
|
+
},
|
|
111
|
+
"Interface_ITelemetryGenericEventExt": {
|
|
112
|
+
"backCompat": false,
|
|
113
|
+
"forwardCompat": false
|
|
114
|
+
},
|
|
115
|
+
"Interface_ITelemetryLoggerExt": {
|
|
116
|
+
"backCompat": false
|
|
117
|
+
},
|
|
118
|
+
"Interface_ITelemetryPerformanceEventExt": {
|
|
119
|
+
"backCompat": false,
|
|
120
|
+
"forwardCompat": false
|
|
121
|
+
},
|
|
122
|
+
"TypeAlias_TelemetryEventCategory": {
|
|
123
|
+
"backCompat": false,
|
|
124
|
+
"forwardCompat": false
|
|
125
|
+
}
|
|
126
|
+
},
|
|
107
127
|
"entrypoint": "legacy"
|
|
108
128
|
},
|
|
109
129
|
"scripts": {
|
package/src/api.ts
CHANGED
|
@@ -6,15 +6,6 @@
|
|
|
6
6
|
// eslint-disable-next-line no-restricted-syntax
|
|
7
7
|
export * from "./main.js";
|
|
8
8
|
|
|
9
|
-
// Additional APIs that are deprecated and thus left out of the common export set.
|
|
10
|
-
export type {
|
|
11
|
-
ITelemetryErrorEventExt,
|
|
12
|
-
ITelemetryGenericEventExt,
|
|
13
|
-
ITelemetryLoggerExt,
|
|
14
|
-
ITelemetryPerformanceEventExt,
|
|
15
|
-
TelemetryEventCategory,
|
|
16
|
-
} from "./telemetryTypes.js";
|
|
17
|
-
|
|
18
9
|
// ----------------------------------------------------------------------------
|
|
19
10
|
// Export `createChildLogger` helper without internal `TelemetryLoggerExt`
|
|
20
11
|
|
package/src/errorLogging.ts
CHANGED
|
@@ -128,7 +128,7 @@ export function normalizeError(
|
|
|
128
128
|
const { message, stack } = extractLogSafeErrorProperties(error, false /* sanitizeStack */);
|
|
129
129
|
const fluidError: IFluidErrorBase = new NormalizedLoggingError({
|
|
130
130
|
message,
|
|
131
|
-
stack,
|
|
131
|
+
...(stack === undefined ? {} : { stack }),
|
|
132
132
|
});
|
|
133
133
|
|
|
134
134
|
// We need to preserve these properties which are used in a non-typesafe way throughout driver code (see #8743)
|
package/src/internal.ts
CHANGED
|
@@ -102,16 +102,3 @@ export type {
|
|
|
102
102
|
} from "./telemetryTypesUndeprecated.js";
|
|
103
103
|
export { TelemetryEventBatcher } from "./telemetryEventBatcher.js";
|
|
104
104
|
export { allowIncompatibleLayersKey, validateLayerCompatibility } from "./layerCompatError.js";
|
|
105
|
-
|
|
106
|
-
import type { TelemetryLoggerExt } from "./telemetryTypes.js";
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Renamed version of TelemetryLoggerExt for convenience of internal use.
|
|
110
|
-
* Where "`ITelemetryLoggerExt`" is exposed in customer API surface, true
|
|
111
|
-
* `ITelemetryLoggerExt` (that is an erased type) must be used. To access
|
|
112
|
-
* use `@fluidframework/telemetry-utils/legacy` import spec. All internal
|
|
113
|
-
* usages should be promoted to `TelemetryLoggerExt` naming.
|
|
114
|
-
*
|
|
115
|
-
* @internal
|
|
116
|
-
*/
|
|
117
|
-
export type ITelemetryLoggerExt = TelemetryLoggerExt;
|
package/src/logger.ts
CHANGED
|
@@ -430,7 +430,7 @@ function toEitherTelemetryLoggerExt(
|
|
|
430
430
|
* exactly an {@link ITelemetryLoggerExt}.
|
|
431
431
|
*/
|
|
432
432
|
export function createChildLogger(props?: {
|
|
433
|
-
logger?: ITelemetryBaseLogger;
|
|
433
|
+
logger?: ITelemetryBaseLogger | undefined;
|
|
434
434
|
namespace?: string;
|
|
435
435
|
properties?: ITelemetryLoggerPropertyBags;
|
|
436
436
|
}): TelemetryLoggerExt & ITelemetryLoggerExt {
|
|
@@ -453,8 +453,8 @@ export class ChildLogger extends TelemetryLogger {
|
|
|
453
453
|
* @param properties - Base properties to add to all events
|
|
454
454
|
*/
|
|
455
455
|
public static create(
|
|
456
|
-
baseLogger
|
|
457
|
-
namespace
|
|
456
|
+
baseLogger: ITelemetryBaseLogger | undefined,
|
|
457
|
+
namespace: string | undefined,
|
|
458
458
|
properties?: ITelemetryLoggerPropertyBags,
|
|
459
459
|
): TelemetryLogger {
|
|
460
460
|
// if we are creating a child of a child, rather than nest, which will increase
|
|
@@ -675,7 +675,11 @@ export class MultiSinkLogger extends TelemetryLogger {
|
|
|
675
675
|
export interface IPerformanceEventMarkers {
|
|
676
676
|
start?: true;
|
|
677
677
|
end?: true;
|
|
678
|
-
cancel?: "generic" | "error"; // tells
|
|
678
|
+
cancel?: "generic" | "error"; // tells whether to issue "generic" or "error" category cancel event
|
|
679
|
+
/**
|
|
680
|
+
* If specified, _end events whose duration is greater than this threshold are logged as essential.
|
|
681
|
+
*/
|
|
682
|
+
endEventEssentialDurationThresholdMs?: number;
|
|
679
683
|
}
|
|
680
684
|
|
|
681
685
|
/**
|
|
@@ -801,9 +805,9 @@ export class PerformanceEvent {
|
|
|
801
805
|
return performanceNow() - this.startTime;
|
|
802
806
|
}
|
|
803
807
|
|
|
804
|
-
private event
|
|
808
|
+
private event: ITelemetryGenericEventExt | undefined;
|
|
805
809
|
private readonly startTime = performanceNow();
|
|
806
|
-
private startMark
|
|
810
|
+
private startMark: string | undefined;
|
|
807
811
|
|
|
808
812
|
private constructor(
|
|
809
813
|
private readonly logger: TelemetryLoggerExt,
|
|
@@ -895,7 +899,36 @@ export class PerformanceEvent {
|
|
|
895
899
|
event.duration = this.duration;
|
|
896
900
|
}
|
|
897
901
|
|
|
898
|
-
this.logger.sendPerformanceEvent(event, error, this.
|
|
902
|
+
this.logger.sendPerformanceEvent(event, error, this.getLogLevel(eventNameSuffix, event));
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
/**
|
|
906
|
+
* Get the LogLevel for performance events.
|
|
907
|
+
* @param eventNameSuffix - The suffix of the event name.
|
|
908
|
+
* @param event - The telemetry performance event.
|
|
909
|
+
* @returns The log level for the event.
|
|
910
|
+
*
|
|
911
|
+
*/
|
|
912
|
+
private getLogLevel(
|
|
913
|
+
eventNameSuffix: string,
|
|
914
|
+
event: ITelemetryPerformanceEventExt,
|
|
915
|
+
): typeof LogLevel.verbose | typeof LogLevel.info | undefined {
|
|
916
|
+
if (eventNameSuffix === "cancel") {
|
|
917
|
+
// When undefined is returned, the LogLevel will be set to LogLevel.essential. See ChildLogger.send
|
|
918
|
+
return undefined;
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
if (
|
|
922
|
+
eventNameSuffix === "end" &&
|
|
923
|
+
event.duration !== undefined &&
|
|
924
|
+
this.markers.endEventEssentialDurationThresholdMs !== undefined &&
|
|
925
|
+
event.duration > this.markers.endEventEssentialDurationThresholdMs
|
|
926
|
+
) {
|
|
927
|
+
// When undefined is returned, the LogLevel will be set to LogLevel.essential. See ChildLogger.send
|
|
928
|
+
return undefined;
|
|
929
|
+
}
|
|
930
|
+
|
|
931
|
+
return this.logLevel;
|
|
899
932
|
}
|
|
900
933
|
|
|
901
934
|
private static readonly eventHits = new Map<string, number>();
|
package/src/main.ts
CHANGED
package/src/telemetryTypes.ts
CHANGED
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type {
|
|
6
|
+
import type {
|
|
7
|
+
ErasedType,
|
|
8
|
+
ITelemetryBaseLogger,
|
|
9
|
+
LogLevel,
|
|
10
|
+
Tagged,
|
|
11
|
+
} from "@fluidframework/core-interfaces";
|
|
7
12
|
|
|
8
13
|
/**
|
|
9
14
|
* The categories FF uses when instrumenting the code.
|
|
@@ -13,9 +18,8 @@ import type { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/cor
|
|
|
13
18
|
* error - Error log event, ideally 0 of these are logged during a session
|
|
14
19
|
*
|
|
15
20
|
* performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
|
|
16
|
-
*
|
|
17
|
-
* @
|
|
18
|
-
* @legacy @beta
|
|
21
|
+
*
|
|
22
|
+
* @internal
|
|
19
23
|
*/
|
|
20
24
|
export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
21
25
|
|
|
@@ -67,9 +71,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
|
|
|
67
71
|
/**
|
|
68
72
|
* Informational (non-error) telemetry event
|
|
69
73
|
* @remarks Maps to category = "generic"
|
|
70
|
-
* @
|
|
71
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
72
|
-
* @legacy @beta
|
|
74
|
+
* @internal
|
|
73
75
|
*/
|
|
74
76
|
export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
75
77
|
/**
|
|
@@ -87,9 +89,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
|
87
89
|
/**
|
|
88
90
|
* Error telemetry event.
|
|
89
91
|
* @remarks Maps to category = "error"
|
|
90
|
-
* @
|
|
91
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
92
|
-
* @legacy @beta
|
|
92
|
+
* @internal
|
|
93
93
|
*/
|
|
94
94
|
export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
95
95
|
/**
|
|
@@ -101,9 +101,7 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
|
101
101
|
/**
|
|
102
102
|
* Performance telemetry event.
|
|
103
103
|
* @remarks Maps to category = "performance"
|
|
104
|
-
* @
|
|
105
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
106
|
-
* @legacy @beta
|
|
104
|
+
* @internal
|
|
107
105
|
*/
|
|
108
106
|
export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
109
107
|
/**
|
|
@@ -113,15 +111,9 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
|
|
|
113
111
|
}
|
|
114
112
|
|
|
115
113
|
/**
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
* @remarks
|
|
119
|
-
* The methods if this interface are not to be used directly by consumers and are all
|
|
120
|
-
* deprecated to removed without replacement. This type is not deprecated and will
|
|
121
|
-
* transition to an erased type to handle cases where "internal" `ITelemetryLoggerExt`
|
|
122
|
-
* previously leaked out.
|
|
114
|
+
* Handle for an extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} used internally within the Fluid Framework.
|
|
123
115
|
*
|
|
124
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for deprecation and breaking change details.
|
|
116
|
+
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for past method deprecation and breaking change details.
|
|
125
117
|
*
|
|
126
118
|
* @privateRemarks
|
|
127
119
|
* External APIs taking in an `ITelemetryLoggerExt` ideally should be updated to
|
|
@@ -131,46 +123,9 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
|
|
|
131
123
|
* @legacy
|
|
132
124
|
* @beta
|
|
133
125
|
*/
|
|
134
|
-
export interface ITelemetryLoggerExt
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
* @param event - Event to send.
|
|
138
|
-
* @param error - Optional error object to log.
|
|
139
|
-
* @param logLevel - Optional level of the log. If undefined, the logLevel should be treated as {@link @fluidframework/core-interfaces#LogLevel.essential}.
|
|
140
|
-
* If the event's category is `error`, the logLevel will be upgraded to {@link @fluidframework/core-interfaces#LogLevel.essential}.
|
|
141
|
-
* @deprecated This method is being removed without a replacement.
|
|
142
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
143
|
-
*/
|
|
144
|
-
sendTelemetryEvent(
|
|
145
|
-
event: ITelemetryGenericEventExt,
|
|
146
|
-
error?: unknown,
|
|
147
|
-
logLevel?: typeof LogLevel.verbose | typeof LogLevel.info,
|
|
148
|
-
): void;
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Send an error telemetry event.
|
|
152
|
-
* @param event - Event to send.
|
|
153
|
-
* @param error - Optional error object to log.
|
|
154
|
-
* @deprecated This method is being removed without a replacement.
|
|
155
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
156
|
-
*/
|
|
157
|
-
sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Send a performance telemetry event.
|
|
161
|
-
* @param event - Event to send
|
|
162
|
-
* @param error - Optional error object to log.
|
|
163
|
-
* @param logLevel - Optional level of the log. If undefined, the logLevel should be treated as {@link @fluidframework/core-interfaces#LogLevel.essential}.
|
|
164
|
-
* If the event's category is `error`, the logLevel will be upgraded to {@link @fluidframework/core-interfaces#LogLevel.essential}.
|
|
165
|
-
* @deprecated This method is being removed without a replacement.
|
|
166
|
-
* @see {@link https://github.com/microsoft/FluidFramework/issues/26910 | Issue #26910} for details.
|
|
167
|
-
*/
|
|
168
|
-
sendPerformanceEvent(
|
|
169
|
-
event: ITelemetryPerformanceEventExt,
|
|
170
|
-
error?: unknown,
|
|
171
|
-
logLevel?: typeof LogLevel.verbose | typeof LogLevel.info,
|
|
172
|
-
): void;
|
|
173
|
-
}
|
|
126
|
+
export interface ITelemetryLoggerExt
|
|
127
|
+
extends ErasedType<"TelemetryLoggerExt">,
|
|
128
|
+
ITelemetryBaseLogger {}
|
|
174
129
|
|
|
175
130
|
/**
|
|
176
131
|
* An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.
|