@fluidframework/telemetry-utils 2.0.0-dev.7.4.0.217212 → 2.0.0-dev.7.4.0.217884
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/api-report/telemetry-utils.api.md +8 -8
- package/dist/eventEmitterWithErrorHandling.d.ts +1 -3
- package/dist/eventEmitterWithErrorHandling.d.ts.map +1 -1
- package/dist/eventEmitterWithErrorHandling.js +1 -3
- package/dist/eventEmitterWithErrorHandling.js.map +1 -1
- package/dist/telemetry-utils-alpha.d.ts +112 -23
- package/dist/telemetry-utils-untrimmed.d.ts +8 -15
- package/dist/telemetryTypes.d.ts +7 -12
- package/dist/telemetryTypes.d.ts.map +1 -1
- package/dist/telemetryTypes.js.map +1 -1
- package/lib/eventEmitterWithErrorHandling.d.ts +1 -3
- package/lib/eventEmitterWithErrorHandling.d.ts.map +1 -1
- package/lib/eventEmitterWithErrorHandling.js +1 -3
- package/lib/eventEmitterWithErrorHandling.js.map +1 -1
- package/lib/telemetry-utils-alpha.d.ts +112 -23
- package/lib/telemetry-utils-untrimmed.d.ts +8 -15
- package/lib/telemetryTypes.d.ts +7 -12
- package/lib/telemetryTypes.d.ts.map +1 -1
- package/lib/telemetryTypes.js.map +1 -1
- package/package.json +6 -6
- package/src/eventEmitterWithErrorHandling.ts +1 -3
- package/src/telemetryTypes.ts +7 -12
|
@@ -73,7 +73,7 @@ export class DataProcessingError extends LoggingError implements IErrorBase, IFl
|
|
|
73
73
|
// @internal (undocumented)
|
|
74
74
|
export const disconnectedEventName = "disconnected";
|
|
75
75
|
|
|
76
|
-
// @
|
|
76
|
+
// @alpha
|
|
77
77
|
export class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
|
|
78
78
|
constructor(errorHandler: (eventName: EventEmitterEventType, error: any) => void);
|
|
79
79
|
// (undocumented)
|
|
@@ -208,7 +208,7 @@ export interface ITaggedTelemetryPropertyTypeExt {
|
|
|
208
208
|
value: TelemetryEventPropertyTypeExt;
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
// @
|
|
211
|
+
// @alpha
|
|
212
212
|
export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
213
213
|
// (undocumented)
|
|
214
214
|
eventName: string;
|
|
@@ -222,7 +222,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
|
|
|
222
222
|
eventName: string;
|
|
223
223
|
}
|
|
224
224
|
|
|
225
|
-
// @
|
|
225
|
+
// @alpha
|
|
226
226
|
export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
227
227
|
// (undocumented)
|
|
228
228
|
category?: TelemetryEventCategory;
|
|
@@ -230,7 +230,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
|
230
230
|
eventName: string;
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
-
// @
|
|
233
|
+
// @alpha
|
|
234
234
|
export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
235
235
|
sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
|
|
236
236
|
sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
|
|
@@ -251,13 +251,13 @@ export interface ITelemetryLoggerPropertyBags {
|
|
|
251
251
|
error?: ITelemetryLoggerPropertyBag;
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
-
// @
|
|
254
|
+
// @alpha
|
|
255
255
|
export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
256
256
|
// (undocumented)
|
|
257
257
|
duration?: number;
|
|
258
258
|
}
|
|
259
259
|
|
|
260
|
-
// @
|
|
260
|
+
// @alpha
|
|
261
261
|
export interface ITelemetryPropertiesExt {
|
|
262
262
|
// (undocumented)
|
|
263
263
|
[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
|
|
@@ -401,10 +401,10 @@ export enum TelemetryDataTag {
|
|
|
401
401
|
UserData = "UserData"
|
|
402
402
|
}
|
|
403
403
|
|
|
404
|
-
// @
|
|
404
|
+
// @alpha
|
|
405
405
|
export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
406
406
|
|
|
407
|
-
// @
|
|
407
|
+
// @alpha
|
|
408
408
|
export type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
|
|
409
409
|
[key: string]: // Flat objects can have the same properties as the event itself
|
|
410
410
|
string | number | boolean | undefined | (string | number | boolean)[];
|
|
@@ -10,12 +10,10 @@ import { IEvent } from "@fluidframework/core-interfaces";
|
|
|
10
10
|
* @remarks
|
|
11
11
|
* Any exceptions thrown by listeners will be caught and raised through "error" event.
|
|
12
12
|
* Any exception thrown by "error" listeners will propagate to the caller.
|
|
13
|
-
*
|
|
14
|
-
* @internal
|
|
15
|
-
*
|
|
16
13
|
* @privateRemarks
|
|
17
14
|
* This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
|
|
18
15
|
* We should consider moving it to the `core-utils` package.
|
|
16
|
+
* @alpha
|
|
19
17
|
*/
|
|
20
18
|
export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
|
|
21
19
|
private readonly errorHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventEmitterWithErrorHandling.d.ts","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"eventEmitterWithErrorHandling.d.ts","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,qBAAa,6BAA6B,CACzC,MAAM,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAIjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI;IAK/E,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;CAQtE"}
|
|
@@ -12,12 +12,10 @@ const client_utils_1 = require("@fluid-internal/client-utils");
|
|
|
12
12
|
* @remarks
|
|
13
13
|
* Any exceptions thrown by listeners will be caught and raised through "error" event.
|
|
14
14
|
* Any exception thrown by "error" listeners will propagate to the caller.
|
|
15
|
-
*
|
|
16
|
-
* @internal
|
|
17
|
-
*
|
|
18
15
|
* @privateRemarks
|
|
19
16
|
* This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
|
|
20
17
|
* We should consider moving it to the `core-utils` package.
|
|
18
|
+
* @alpha
|
|
21
19
|
*/
|
|
22
20
|
class EventEmitterWithErrorHandling extends client_utils_1.TypedEventEmitter {
|
|
23
21
|
constructor(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventEmitterWithErrorHandling.js","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,+DAAwF;AAGxF
|
|
1
|
+
{"version":3,"file":"eventEmitterWithErrorHandling.js","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,+DAAwF;AAGxF;;;;;;;;;;GAUG;AACH,MAAa,6BAEX,SAAQ,gCAAyB;IAClC;IACC,oDAAoD;IACpD,8DAA8D;IAC7C,YAAoE;QAErF,KAAK,EAAE,CAAC;QAFS,iBAAY,GAAZ,YAAY,CAAwD;IAGtF,CAAC;IAEM,IAAI,CAAC,KAA4B,EAAE,GAAG,IAAe;QAC3D,IAAI;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD;AAnBD,sEAmBC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { TypedEventEmitter, EventEmitterEventType } from \"@fluid-internal/client-utils\";\nimport { IEvent } from \"@fluidframework/core-interfaces\";\n\n/**\n * Event Emitter helper class\n *\n * @remarks\n * Any exceptions thrown by listeners will be caught and raised through \"error\" event.\n * Any exception thrown by \"error\" listeners will propagate to the caller.\n * @privateRemarks\n * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.\n * We should consider moving it to the `core-utils` package.\n * @alpha\n */\nexport class EventEmitterWithErrorHandling<\n\tTEvent extends IEvent = IEvent,\n> extends TypedEventEmitter<TEvent> {\n\tconstructor(\n\t\t// TODO: use `unknown` instead (breaking API change)\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tprivate readonly errorHandler: (eventName: EventEmitterEventType, error: any) => void,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic emit(event: EventEmitterEventType, ...args: unknown[]): boolean {\n\t\ttry {\n\t\t\treturn super.emit(event, ...args);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(event, error);\n\t\t\treturn true;\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
|
|
3
3
|
import { EventEmitter } from 'events';
|
|
4
|
+
import { EventEmitterEventType } from '@fluid-internal/client-utils';
|
|
5
|
+
import { IConfigProviderBase as IConfigProviderBase_2 } from '@fluidframework/core-interfaces';
|
|
4
6
|
import { IDisposable } from '@fluidframework/core-interfaces';
|
|
5
7
|
import { IErrorBase } from '@fluidframework/core-interfaces';
|
|
6
8
|
import { IEvent } from '@fluidframework/core-interfaces';
|
|
@@ -8,10 +10,14 @@ import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions'
|
|
|
8
10
|
import { ITelemetryBaseEvent } from '@fluidframework/core-interfaces';
|
|
9
11
|
import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
|
|
10
12
|
import { ITelemetryBaseProperties } from '@fluidframework/core-interfaces';
|
|
13
|
+
import { ITelemetryErrorEvent } from '@fluidframework/core-interfaces';
|
|
14
|
+
import { ITelemetryGenericEvent } from '@fluidframework/core-interfaces';
|
|
15
|
+
import { ITelemetryPerformanceEvent } from '@fluidframework/core-interfaces';
|
|
11
16
|
import { ITelemetryProperties } from '@fluidframework/core-interfaces';
|
|
12
17
|
import { LogLevel } from '@fluidframework/core-interfaces';
|
|
13
18
|
import { Tagged } from '@fluidframework/core-interfaces';
|
|
14
19
|
import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
20
|
+
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
15
21
|
|
|
16
22
|
/* Excluded from this release type: ConfigTypes */
|
|
17
23
|
|
|
@@ -31,9 +37,22 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
31
37
|
|
|
32
38
|
/* Excluded from this release type: disconnectedEventName */
|
|
33
39
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Event Emitter helper class
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* Any exceptions thrown by listeners will be caught and raised through "error" event.
|
|
45
|
+
* Any exception thrown by "error" listeners will propagate to the caller.
|
|
46
|
+
* @privateRemarks
|
|
47
|
+
* This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
|
|
48
|
+
* We should consider moving it to the `core-utils` package.
|
|
49
|
+
* @alpha
|
|
50
|
+
*/
|
|
51
|
+
export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
|
|
52
|
+
private readonly errorHandler;
|
|
53
|
+
constructor(errorHandler: (eventName: EventEmitterEventType, error: any) => void);
|
|
54
|
+
emit(event: EventEmitterEventType, ...args: unknown[]): boolean;
|
|
55
|
+
}
|
|
37
56
|
|
|
38
57
|
/* Excluded from this release type: eventNamespaceSeparator */
|
|
39
58
|
|
|
@@ -57,8 +76,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
57
76
|
|
|
58
77
|
/* Excluded from this release type: IConfigProviderBase */
|
|
59
78
|
|
|
60
|
-
/* Excluded from this release type: IConfigProviderBase_2 */
|
|
61
|
-
|
|
62
79
|
/* Excluded from this release type: IEventSampler */
|
|
63
80
|
|
|
64
81
|
/* Excluded from this release type: IFluidErrorAnnotations */
|
|
@@ -85,27 +102,79 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
85
102
|
|
|
86
103
|
/* Excluded from this release type: ITaggedTelemetryPropertyTypeExt */
|
|
87
104
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Error telemetry event.
|
|
107
|
+
* @remarks Maps to category = "error"
|
|
108
|
+
* @alpha
|
|
109
|
+
*/
|
|
110
|
+
export declare interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
111
|
+
eventName: string;
|
|
112
|
+
}
|
|
91
113
|
|
|
92
114
|
/* Excluded from this release type: ITelemetryEventExt */
|
|
93
115
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Informational (non-error) telemetry event
|
|
118
|
+
* @remarks Maps to category = "generic"
|
|
119
|
+
* @alpha
|
|
120
|
+
*/
|
|
121
|
+
export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
122
|
+
eventName: string;
|
|
123
|
+
category?: TelemetryEventCategory;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.
|
|
128
|
+
*
|
|
129
|
+
* @remarks
|
|
130
|
+
* This interface is meant to be used internally within the Fluid Framework,
|
|
131
|
+
* and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
|
|
132
|
+
* @alpha
|
|
133
|
+
*/
|
|
134
|
+
export declare interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
135
|
+
/**
|
|
136
|
+
* Send information telemetry event
|
|
137
|
+
* @param event - Event to send
|
|
138
|
+
* @param error - optional error object to log
|
|
139
|
+
* @param logLevel - optional level of the log.
|
|
140
|
+
*/
|
|
141
|
+
sendTelemetryEvent(event: ITelemetryGenericEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
|
|
142
|
+
/**
|
|
143
|
+
* Send error telemetry event
|
|
144
|
+
* @param event - Event to send
|
|
145
|
+
* @param error - optional error object to log
|
|
146
|
+
*/
|
|
147
|
+
sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
|
|
148
|
+
/**
|
|
149
|
+
* Send performance telemetry event
|
|
150
|
+
* @param event - Event to send
|
|
151
|
+
* @param error - optional error object to log
|
|
152
|
+
* @param logLevel - optional level of the log.
|
|
153
|
+
*/
|
|
154
|
+
sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
|
|
155
|
+
}
|
|
99
156
|
|
|
100
157
|
/* Excluded from this release type: ITelemetryLoggerPropertyBag */
|
|
101
158
|
|
|
102
159
|
/* Excluded from this release type: ITelemetryLoggerPropertyBags */
|
|
103
160
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
161
|
+
/**
|
|
162
|
+
* Performance telemetry event.
|
|
163
|
+
* @remarks Maps to category = "performance"
|
|
164
|
+
* @alpha
|
|
165
|
+
*/
|
|
166
|
+
export declare interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
167
|
+
duration?: number;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* JSON-serializable properties, which will be logged with telemetry.
|
|
172
|
+
*
|
|
173
|
+
* @alpha
|
|
174
|
+
*/
|
|
175
|
+
export declare interface ITelemetryPropertiesExt {
|
|
176
|
+
[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
|
|
177
|
+
}
|
|
109
178
|
|
|
110
179
|
/* Excluded from this release type: IUsageError */
|
|
111
180
|
|
|
@@ -153,9 +222,31 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
153
222
|
|
|
154
223
|
/* Excluded from this release type: TelemetryDataTag */
|
|
155
224
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
225
|
+
/**
|
|
226
|
+
* The categories FF uses when instrumenting the code.
|
|
227
|
+
*
|
|
228
|
+
* generic - Informational log event
|
|
229
|
+
*
|
|
230
|
+
* error - Error log event, ideally 0 of these are logged during a session
|
|
231
|
+
*
|
|
232
|
+
* performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
|
|
233
|
+
* @alpha
|
|
234
|
+
*/
|
|
235
|
+
export declare type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Property types that can be logged.
|
|
239
|
+
*
|
|
240
|
+
* @remarks
|
|
241
|
+
* Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
|
|
242
|
+
* converted before sending to a base logger.
|
|
243
|
+
*
|
|
244
|
+
* @alpha
|
|
245
|
+
*/
|
|
246
|
+
export declare type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
|
|
247
|
+
[key: string]: // Flat objects can have the same properties as the event itself
|
|
248
|
+
string | number | boolean | undefined | (string | number | boolean)[];
|
|
249
|
+
};
|
|
159
250
|
|
|
160
251
|
/* Excluded from this release type: TelemetryEventPropertyTypes */
|
|
161
252
|
|
|
@@ -163,8 +254,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
163
254
|
|
|
164
255
|
/* Excluded from this release type: ThresholdCounter */
|
|
165
256
|
|
|
166
|
-
/* Excluded from this release type: TypedEventEmitter */
|
|
167
|
-
|
|
168
257
|
/* Excluded from this release type: UsageError */
|
|
169
258
|
|
|
170
259
|
/* Excluded from this release type: wrapError */
|
|
@@ -152,12 +152,10 @@ export declare const disconnectedEventName = "disconnected";
|
|
|
152
152
|
* @remarks
|
|
153
153
|
* Any exceptions thrown by listeners will be caught and raised through "error" event.
|
|
154
154
|
* Any exception thrown by "error" listeners will propagate to the caller.
|
|
155
|
-
*
|
|
156
|
-
* @internal
|
|
157
|
-
*
|
|
158
155
|
* @privateRemarks
|
|
159
156
|
* This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
|
|
160
157
|
* We should consider moving it to the `core-utils` package.
|
|
158
|
+
* @alpha
|
|
161
159
|
*/
|
|
162
160
|
export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
|
|
163
161
|
private readonly errorHandler;
|
|
@@ -456,8 +454,7 @@ export declare interface ITaggedTelemetryPropertyTypeExt {
|
|
|
456
454
|
/**
|
|
457
455
|
* Error telemetry event.
|
|
458
456
|
* @remarks Maps to category = "error"
|
|
459
|
-
*
|
|
460
|
-
* @internal
|
|
457
|
+
* @alpha
|
|
461
458
|
*/
|
|
462
459
|
export declare interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
463
460
|
eventName: string;
|
|
@@ -479,8 +476,7 @@ export declare interface ITelemetryEventExt extends ITelemetryPropertiesExt {
|
|
|
479
476
|
/**
|
|
480
477
|
* Informational (non-error) telemetry event
|
|
481
478
|
* @remarks Maps to category = "generic"
|
|
482
|
-
*
|
|
483
|
-
* @internal
|
|
479
|
+
* @alpha
|
|
484
480
|
*/
|
|
485
481
|
export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
486
482
|
eventName: string;
|
|
@@ -493,8 +489,7 @@ export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesE
|
|
|
493
489
|
* @remarks
|
|
494
490
|
* This interface is meant to be used internally within the Fluid Framework,
|
|
495
491
|
* and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
|
|
496
|
-
*
|
|
497
|
-
* @internal
|
|
492
|
+
* @alpha
|
|
498
493
|
*/
|
|
499
494
|
export declare interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
500
495
|
/**
|
|
@@ -537,8 +532,7 @@ export declare interface ITelemetryLoggerPropertyBags {
|
|
|
537
532
|
/**
|
|
538
533
|
* Performance telemetry event.
|
|
539
534
|
* @remarks Maps to category = "performance"
|
|
540
|
-
*
|
|
541
|
-
* @internal
|
|
535
|
+
* @alpha
|
|
542
536
|
*/
|
|
543
537
|
export declare interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
544
538
|
duration?: number;
|
|
@@ -547,7 +541,7 @@ export declare interface ITelemetryPerformanceEventExt extends ITelemetryGeneric
|
|
|
547
541
|
/**
|
|
548
542
|
* JSON-serializable properties, which will be logged with telemetry.
|
|
549
543
|
*
|
|
550
|
-
* @
|
|
544
|
+
* @alpha
|
|
551
545
|
*/
|
|
552
546
|
export declare interface ITelemetryPropertiesExt {
|
|
553
547
|
[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
|
|
@@ -1021,8 +1015,7 @@ export declare enum TelemetryDataTag {
|
|
|
1021
1015
|
* error - Error log event, ideally 0 of these are logged during a session
|
|
1022
1016
|
*
|
|
1023
1017
|
* performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
|
|
1024
|
-
*
|
|
1025
|
-
* @internal
|
|
1018
|
+
* @alpha
|
|
1026
1019
|
*/
|
|
1027
1020
|
export declare type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
1028
1021
|
|
|
@@ -1033,7 +1026,7 @@ export declare type TelemetryEventCategory = "generic" | "error" | "performance"
|
|
|
1033
1026
|
* Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
|
|
1034
1027
|
* converted before sending to a base logger.
|
|
1035
1028
|
*
|
|
1036
|
-
* @
|
|
1029
|
+
* @alpha
|
|
1037
1030
|
*/
|
|
1038
1031
|
export declare type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
|
|
1039
1032
|
[key: string]: // Flat objects can have the same properties as the event itself
|
package/dist/telemetryTypes.d.ts
CHANGED
|
@@ -11,8 +11,7 @@ import { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-int
|
|
|
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
|
-
* @internal
|
|
14
|
+
* @alpha
|
|
16
15
|
*/
|
|
17
16
|
export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
18
17
|
/**
|
|
@@ -22,7 +21,7 @@ export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
|
22
21
|
* Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
|
|
23
22
|
* converted before sending to a base logger.
|
|
24
23
|
*
|
|
25
|
-
* @
|
|
24
|
+
* @alpha
|
|
26
25
|
*/
|
|
27
26
|
export type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
|
|
28
27
|
[key: string]: // Flat objects can have the same properties as the event itself
|
|
@@ -43,7 +42,7 @@ export interface ITaggedTelemetryPropertyTypeExt {
|
|
|
43
42
|
/**
|
|
44
43
|
* JSON-serializable properties, which will be logged with telemetry.
|
|
45
44
|
*
|
|
46
|
-
* @
|
|
45
|
+
* @alpha
|
|
47
46
|
*/
|
|
48
47
|
export interface ITelemetryPropertiesExt {
|
|
49
48
|
[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
|
|
@@ -63,8 +62,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
|
|
|
63
62
|
/**
|
|
64
63
|
* Informational (non-error) telemetry event
|
|
65
64
|
* @remarks Maps to category = "generic"
|
|
66
|
-
*
|
|
67
|
-
* @internal
|
|
65
|
+
* @alpha
|
|
68
66
|
*/
|
|
69
67
|
export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
70
68
|
eventName: string;
|
|
@@ -73,8 +71,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
|
73
71
|
/**
|
|
74
72
|
* Error telemetry event.
|
|
75
73
|
* @remarks Maps to category = "error"
|
|
76
|
-
*
|
|
77
|
-
* @internal
|
|
74
|
+
* @alpha
|
|
78
75
|
*/
|
|
79
76
|
export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
80
77
|
eventName: string;
|
|
@@ -82,8 +79,7 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
|
82
79
|
/**
|
|
83
80
|
* Performance telemetry event.
|
|
84
81
|
* @remarks Maps to category = "performance"
|
|
85
|
-
*
|
|
86
|
-
* @internal
|
|
82
|
+
* @alpha
|
|
87
83
|
*/
|
|
88
84
|
export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
89
85
|
duration?: number;
|
|
@@ -94,8 +90,7 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
|
|
|
94
90
|
* @remarks
|
|
95
91
|
* This interface is meant to be used internally within the Fluid Framework,
|
|
96
92
|
* and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
|
|
97
|
-
*
|
|
98
|
-
* @internal
|
|
93
|
+
* @alpha
|
|
99
94
|
*/
|
|
100
95
|
export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
101
96
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzF
|
|
1
|
+
{"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzF;;;;;;;;;GASG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,MAAM,6BAA6B,GACtC,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAC7B;IACA,CAAC,GAAG,EAAE,MAAM,GACZ,AADe,gEAAgE;IAC/E,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CACrE,CAAC;AAEL;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC/C,KAAK,EAAE,6BAA6B,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,CAAC,KAAK,EAAE,MAAM,GAAG,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;CACvF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACvE,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAChE;;;;;OAKG;IACH,kBAAkB,CACjB,KAAK,EAAE,yBAAyB,EAChC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;IAER;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,oBAAoB,CACnB,KAAK,EAAE,6BAA6B,EACpC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,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 { ITelemetryBaseLogger, LogLevel, Tagged } 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
|
|
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 { ITelemetryBaseLogger, LogLevel, Tagged } 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 * @alpha\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 *\n * @alpha\n */\nexport type TelemetryEventPropertyTypeExt =\n\t| string\n\t| number\n\t| boolean\n\t| undefined\n\t| (string | number | boolean)[]\n\t| {\n\t\t\t[key: string]: // Flat objects can have the same properties as the event itself\n\t\t\tstring | number | boolean | undefined | (string | number | boolean)[];\n\t };\n\n/**\n * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used\n * to mark pieces of information that should be organized or handled differently by loggers in various first or third\n * party scenarios. For example, tags are used to mark personal information that should not be stored in logs.\n *\n * @deprecated Use {@link @fluidframework/core-interfaces#Tagged}\\<{@link TelemetryEventPropertyTypeExt}\\>\n * @internal\n */\nexport interface ITaggedTelemetryPropertyTypeExt {\n\tvalue: TelemetryEventPropertyTypeExt;\n\ttag: string;\n}\n\n/**\n * JSON-serializable properties, which will be logged with telemetry.\n *\n * @alpha\n */\nexport interface ITelemetryPropertiesExt {\n\t[index: string]: TelemetryEventPropertyTypeExt | 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\tcategory: string;\n\teventName: string;\n}\n\n/**\n * Informational (non-error) telemetry event\n * @remarks Maps to category = \"generic\"\n * @alpha\n */\nexport interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n\tcategory?: TelemetryEventCategory;\n}\n\n/**\n * Error telemetry event.\n * @remarks Maps to category = \"error\"\n * @alpha\n */\nexport interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n}\n\n/**\n * Performance telemetry event.\n * @remarks Maps to category = \"performance\"\n * @alpha\n */\nexport interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {\n\tduration?: number; // Duration of event (optional)\n}\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 * @alpha\n */\nexport interface ITelemetryLoggerExt extends ITelemetryBaseLogger {\n\t/**\n\t * Send 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.\n\t */\n\tsendTelemetryEvent(\n\t\tevent: ITelemetryGenericEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n\n\t/**\n\t * Send 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 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.\n\t */\n\tsendPerformanceEvent(\n\t\tevent: ITelemetryPerformanceEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n}\n"]}
|
|
@@ -10,12 +10,10 @@ import { IEvent } from "@fluidframework/core-interfaces";
|
|
|
10
10
|
* @remarks
|
|
11
11
|
* Any exceptions thrown by listeners will be caught and raised through "error" event.
|
|
12
12
|
* Any exception thrown by "error" listeners will propagate to the caller.
|
|
13
|
-
*
|
|
14
|
-
* @internal
|
|
15
|
-
*
|
|
16
13
|
* @privateRemarks
|
|
17
14
|
* This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
|
|
18
15
|
* We should consider moving it to the `core-utils` package.
|
|
16
|
+
* @alpha
|
|
19
17
|
*/
|
|
20
18
|
export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
|
|
21
19
|
private readonly errorHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventEmitterWithErrorHandling.d.ts","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"eventEmitterWithErrorHandling.d.ts","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,qBAAa,6BAA6B,CACzC,MAAM,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IAIjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI;IAK/E,IAAI,CAAC,KAAK,EAAE,qBAAqB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;CAQtE"}
|
|
@@ -9,12 +9,10 @@ import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
|
9
9
|
* @remarks
|
|
10
10
|
* Any exceptions thrown by listeners will be caught and raised through "error" event.
|
|
11
11
|
* Any exception thrown by "error" listeners will propagate to the caller.
|
|
12
|
-
*
|
|
13
|
-
* @internal
|
|
14
|
-
*
|
|
15
12
|
* @privateRemarks
|
|
16
13
|
* This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
|
|
17
14
|
* We should consider moving it to the `core-utils` package.
|
|
15
|
+
* @alpha
|
|
18
16
|
*/
|
|
19
17
|
export class EventEmitterWithErrorHandling extends TypedEventEmitter {
|
|
20
18
|
constructor(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventEmitterWithErrorHandling.js","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAyB,MAAM,8BAA8B,CAAC;AAGxF
|
|
1
|
+
{"version":3,"file":"eventEmitterWithErrorHandling.js","sourceRoot":"","sources":["../src/eventEmitterWithErrorHandling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAyB,MAAM,8BAA8B,CAAC;AAGxF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,6BAEX,SAAQ,iBAAyB;IAClC;IACC,oDAAoD;IACpD,8DAA8D;IAC7C,YAAoE;QAErF,KAAK,EAAE,CAAC;QAFS,iBAAY,GAAZ,YAAY,CAAwD;IAGtF,CAAC;IAEM,IAAI,CAAC,KAA4B,EAAE,GAAG,IAAe;QAC3D,IAAI;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE;YACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;SACZ;IACF,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\nimport { TypedEventEmitter, EventEmitterEventType } from \"@fluid-internal/client-utils\";\nimport { IEvent } from \"@fluidframework/core-interfaces\";\n\n/**\n * Event Emitter helper class\n *\n * @remarks\n * Any exceptions thrown by listeners will be caught and raised through \"error\" event.\n * Any exception thrown by \"error\" listeners will propagate to the caller.\n * @privateRemarks\n * This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.\n * We should consider moving it to the `core-utils` package.\n * @alpha\n */\nexport class EventEmitterWithErrorHandling<\n\tTEvent extends IEvent = IEvent,\n> extends TypedEventEmitter<TEvent> {\n\tconstructor(\n\t\t// TODO: use `unknown` instead (breaking API change)\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tprivate readonly errorHandler: (eventName: EventEmitterEventType, error: any) => void,\n\t) {\n\t\tsuper();\n\t}\n\n\tpublic emit(event: EventEmitterEventType, ...args: unknown[]): boolean {\n\t\ttry {\n\t\t\treturn super.emit(event, ...args);\n\t\t} catch (error) {\n\t\t\tthis.errorHandler(event, error);\n\t\t\treturn true;\n\t\t}\n\t}\n}\n"]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
|
|
3
3
|
import { EventEmitter } from 'events';
|
|
4
|
+
import { EventEmitterEventType } from '@fluid-internal/client-utils';
|
|
5
|
+
import { IConfigProviderBase as IConfigProviderBase_2 } from '@fluidframework/core-interfaces';
|
|
4
6
|
import { IDisposable } from '@fluidframework/core-interfaces';
|
|
5
7
|
import { IErrorBase } from '@fluidframework/core-interfaces';
|
|
6
8
|
import { IEvent } from '@fluidframework/core-interfaces';
|
|
@@ -8,10 +10,14 @@ import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions'
|
|
|
8
10
|
import { ITelemetryBaseEvent } from '@fluidframework/core-interfaces';
|
|
9
11
|
import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
|
|
10
12
|
import { ITelemetryBaseProperties } from '@fluidframework/core-interfaces';
|
|
13
|
+
import { ITelemetryErrorEvent } from '@fluidframework/core-interfaces';
|
|
14
|
+
import { ITelemetryGenericEvent } from '@fluidframework/core-interfaces';
|
|
15
|
+
import { ITelemetryPerformanceEvent } from '@fluidframework/core-interfaces';
|
|
11
16
|
import { ITelemetryProperties } from '@fluidframework/core-interfaces';
|
|
12
17
|
import { LogLevel } from '@fluidframework/core-interfaces';
|
|
13
18
|
import { Tagged } from '@fluidframework/core-interfaces';
|
|
14
19
|
import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
20
|
+
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
15
21
|
|
|
16
22
|
/* Excluded from this release type: ConfigTypes */
|
|
17
23
|
|
|
@@ -31,9 +37,22 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
31
37
|
|
|
32
38
|
/* Excluded from this release type: disconnectedEventName */
|
|
33
39
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
40
|
+
/**
|
|
41
|
+
* Event Emitter helper class
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* Any exceptions thrown by listeners will be caught and raised through "error" event.
|
|
45
|
+
* Any exception thrown by "error" listeners will propagate to the caller.
|
|
46
|
+
* @privateRemarks
|
|
47
|
+
* This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
|
|
48
|
+
* We should consider moving it to the `core-utils` package.
|
|
49
|
+
* @alpha
|
|
50
|
+
*/
|
|
51
|
+
export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
|
|
52
|
+
private readonly errorHandler;
|
|
53
|
+
constructor(errorHandler: (eventName: EventEmitterEventType, error: any) => void);
|
|
54
|
+
emit(event: EventEmitterEventType, ...args: unknown[]): boolean;
|
|
55
|
+
}
|
|
37
56
|
|
|
38
57
|
/* Excluded from this release type: eventNamespaceSeparator */
|
|
39
58
|
|
|
@@ -57,8 +76,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
57
76
|
|
|
58
77
|
/* Excluded from this release type: IConfigProviderBase */
|
|
59
78
|
|
|
60
|
-
/* Excluded from this release type: IConfigProviderBase_2 */
|
|
61
|
-
|
|
62
79
|
/* Excluded from this release type: IEventSampler */
|
|
63
80
|
|
|
64
81
|
/* Excluded from this release type: IFluidErrorAnnotations */
|
|
@@ -85,27 +102,79 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
85
102
|
|
|
86
103
|
/* Excluded from this release type: ITaggedTelemetryPropertyTypeExt */
|
|
87
104
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Error telemetry event.
|
|
107
|
+
* @remarks Maps to category = "error"
|
|
108
|
+
* @alpha
|
|
109
|
+
*/
|
|
110
|
+
export declare interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
111
|
+
eventName: string;
|
|
112
|
+
}
|
|
91
113
|
|
|
92
114
|
/* Excluded from this release type: ITelemetryEventExt */
|
|
93
115
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Informational (non-error) telemetry event
|
|
118
|
+
* @remarks Maps to category = "generic"
|
|
119
|
+
* @alpha
|
|
120
|
+
*/
|
|
121
|
+
export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
122
|
+
eventName: string;
|
|
123
|
+
category?: TelemetryEventCategory;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* An extended {@link @fluidframework/core-interfaces#ITelemetryBaseLogger} which allows for more lenient event types.
|
|
128
|
+
*
|
|
129
|
+
* @remarks
|
|
130
|
+
* This interface is meant to be used internally within the Fluid Framework,
|
|
131
|
+
* and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
|
|
132
|
+
* @alpha
|
|
133
|
+
*/
|
|
134
|
+
export declare interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
135
|
+
/**
|
|
136
|
+
* Send information telemetry event
|
|
137
|
+
* @param event - Event to send
|
|
138
|
+
* @param error - optional error object to log
|
|
139
|
+
* @param logLevel - optional level of the log.
|
|
140
|
+
*/
|
|
141
|
+
sendTelemetryEvent(event: ITelemetryGenericEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
|
|
142
|
+
/**
|
|
143
|
+
* Send error telemetry event
|
|
144
|
+
* @param event - Event to send
|
|
145
|
+
* @param error - optional error object to log
|
|
146
|
+
*/
|
|
147
|
+
sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
|
|
148
|
+
/**
|
|
149
|
+
* Send performance telemetry event
|
|
150
|
+
* @param event - Event to send
|
|
151
|
+
* @param error - optional error object to log
|
|
152
|
+
* @param logLevel - optional level of the log.
|
|
153
|
+
*/
|
|
154
|
+
sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
|
|
155
|
+
}
|
|
99
156
|
|
|
100
157
|
/* Excluded from this release type: ITelemetryLoggerPropertyBag */
|
|
101
158
|
|
|
102
159
|
/* Excluded from this release type: ITelemetryLoggerPropertyBags */
|
|
103
160
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
161
|
+
/**
|
|
162
|
+
* Performance telemetry event.
|
|
163
|
+
* @remarks Maps to category = "performance"
|
|
164
|
+
* @alpha
|
|
165
|
+
*/
|
|
166
|
+
export declare interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
167
|
+
duration?: number;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* JSON-serializable properties, which will be logged with telemetry.
|
|
172
|
+
*
|
|
173
|
+
* @alpha
|
|
174
|
+
*/
|
|
175
|
+
export declare interface ITelemetryPropertiesExt {
|
|
176
|
+
[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
|
|
177
|
+
}
|
|
109
178
|
|
|
110
179
|
/* Excluded from this release type: IUsageError */
|
|
111
180
|
|
|
@@ -153,9 +222,31 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
153
222
|
|
|
154
223
|
/* Excluded from this release type: TelemetryDataTag */
|
|
155
224
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
225
|
+
/**
|
|
226
|
+
* The categories FF uses when instrumenting the code.
|
|
227
|
+
*
|
|
228
|
+
* generic - Informational log event
|
|
229
|
+
*
|
|
230
|
+
* error - Error log event, ideally 0 of these are logged during a session
|
|
231
|
+
*
|
|
232
|
+
* performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
|
|
233
|
+
* @alpha
|
|
234
|
+
*/
|
|
235
|
+
export declare type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Property types that can be logged.
|
|
239
|
+
*
|
|
240
|
+
* @remarks
|
|
241
|
+
* Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
|
|
242
|
+
* converted before sending to a base logger.
|
|
243
|
+
*
|
|
244
|
+
* @alpha
|
|
245
|
+
*/
|
|
246
|
+
export declare type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
|
|
247
|
+
[key: string]: // Flat objects can have the same properties as the event itself
|
|
248
|
+
string | number | boolean | undefined | (string | number | boolean)[];
|
|
249
|
+
};
|
|
159
250
|
|
|
160
251
|
/* Excluded from this release type: TelemetryEventPropertyTypes */
|
|
161
252
|
|
|
@@ -163,8 +254,6 @@ import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
|
163
254
|
|
|
164
255
|
/* Excluded from this release type: ThresholdCounter */
|
|
165
256
|
|
|
166
|
-
/* Excluded from this release type: TypedEventEmitter */
|
|
167
|
-
|
|
168
257
|
/* Excluded from this release type: UsageError */
|
|
169
258
|
|
|
170
259
|
/* Excluded from this release type: wrapError */
|
|
@@ -152,12 +152,10 @@ export declare const disconnectedEventName = "disconnected";
|
|
|
152
152
|
* @remarks
|
|
153
153
|
* Any exceptions thrown by listeners will be caught and raised through "error" event.
|
|
154
154
|
* Any exception thrown by "error" listeners will propagate to the caller.
|
|
155
|
-
*
|
|
156
|
-
* @internal
|
|
157
|
-
*
|
|
158
155
|
* @privateRemarks
|
|
159
156
|
* This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
|
|
160
157
|
* We should consider moving it to the `core-utils` package.
|
|
158
|
+
* @alpha
|
|
161
159
|
*/
|
|
162
160
|
export declare class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
|
|
163
161
|
private readonly errorHandler;
|
|
@@ -456,8 +454,7 @@ export declare interface ITaggedTelemetryPropertyTypeExt {
|
|
|
456
454
|
/**
|
|
457
455
|
* Error telemetry event.
|
|
458
456
|
* @remarks Maps to category = "error"
|
|
459
|
-
*
|
|
460
|
-
* @internal
|
|
457
|
+
* @alpha
|
|
461
458
|
*/
|
|
462
459
|
export declare interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
463
460
|
eventName: string;
|
|
@@ -479,8 +476,7 @@ export declare interface ITelemetryEventExt extends ITelemetryPropertiesExt {
|
|
|
479
476
|
/**
|
|
480
477
|
* Informational (non-error) telemetry event
|
|
481
478
|
* @remarks Maps to category = "generic"
|
|
482
|
-
*
|
|
483
|
-
* @internal
|
|
479
|
+
* @alpha
|
|
484
480
|
*/
|
|
485
481
|
export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
486
482
|
eventName: string;
|
|
@@ -493,8 +489,7 @@ export declare interface ITelemetryGenericEventExt extends ITelemetryPropertiesE
|
|
|
493
489
|
* @remarks
|
|
494
490
|
* This interface is meant to be used internally within the Fluid Framework,
|
|
495
491
|
* and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
|
|
496
|
-
*
|
|
497
|
-
* @internal
|
|
492
|
+
* @alpha
|
|
498
493
|
*/
|
|
499
494
|
export declare interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
500
495
|
/**
|
|
@@ -537,8 +532,7 @@ export declare interface ITelemetryLoggerPropertyBags {
|
|
|
537
532
|
/**
|
|
538
533
|
* Performance telemetry event.
|
|
539
534
|
* @remarks Maps to category = "performance"
|
|
540
|
-
*
|
|
541
|
-
* @internal
|
|
535
|
+
* @alpha
|
|
542
536
|
*/
|
|
543
537
|
export declare interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
544
538
|
duration?: number;
|
|
@@ -547,7 +541,7 @@ export declare interface ITelemetryPerformanceEventExt extends ITelemetryGeneric
|
|
|
547
541
|
/**
|
|
548
542
|
* JSON-serializable properties, which will be logged with telemetry.
|
|
549
543
|
*
|
|
550
|
-
* @
|
|
544
|
+
* @alpha
|
|
551
545
|
*/
|
|
552
546
|
export declare interface ITelemetryPropertiesExt {
|
|
553
547
|
[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
|
|
@@ -1021,8 +1015,7 @@ export declare enum TelemetryDataTag {
|
|
|
1021
1015
|
* error - Error log event, ideally 0 of these are logged during a session
|
|
1022
1016
|
*
|
|
1023
1017
|
* performance - Includes duration, and often has _start, _end, or _cancel suffixes for activity tracking
|
|
1024
|
-
*
|
|
1025
|
-
* @internal
|
|
1018
|
+
* @alpha
|
|
1026
1019
|
*/
|
|
1027
1020
|
export declare type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
1028
1021
|
|
|
@@ -1033,7 +1026,7 @@ export declare type TelemetryEventCategory = "generic" | "error" | "performance"
|
|
|
1033
1026
|
* Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
|
|
1034
1027
|
* converted before sending to a base logger.
|
|
1035
1028
|
*
|
|
1036
|
-
* @
|
|
1029
|
+
* @alpha
|
|
1037
1030
|
*/
|
|
1038
1031
|
export declare type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
|
|
1039
1032
|
[key: string]: // Flat objects can have the same properties as the event itself
|
package/lib/telemetryTypes.d.ts
CHANGED
|
@@ -11,8 +11,7 @@ import { ITelemetryBaseLogger, LogLevel, Tagged } from "@fluidframework/core-int
|
|
|
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
|
-
* @internal
|
|
14
|
+
* @alpha
|
|
16
15
|
*/
|
|
17
16
|
export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
18
17
|
/**
|
|
@@ -22,7 +21,7 @@ export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
|
22
21
|
* Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
|
|
23
22
|
* converted before sending to a base logger.
|
|
24
23
|
*
|
|
25
|
-
* @
|
|
24
|
+
* @alpha
|
|
26
25
|
*/
|
|
27
26
|
export type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
|
|
28
27
|
[key: string]: // Flat objects can have the same properties as the event itself
|
|
@@ -43,7 +42,7 @@ export interface ITaggedTelemetryPropertyTypeExt {
|
|
|
43
42
|
/**
|
|
44
43
|
* JSON-serializable properties, which will be logged with telemetry.
|
|
45
44
|
*
|
|
46
|
-
* @
|
|
45
|
+
* @alpha
|
|
47
46
|
*/
|
|
48
47
|
export interface ITelemetryPropertiesExt {
|
|
49
48
|
[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
|
|
@@ -63,8 +62,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
|
|
|
63
62
|
/**
|
|
64
63
|
* Informational (non-error) telemetry event
|
|
65
64
|
* @remarks Maps to category = "generic"
|
|
66
|
-
*
|
|
67
|
-
* @internal
|
|
65
|
+
* @alpha
|
|
68
66
|
*/
|
|
69
67
|
export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
70
68
|
eventName: string;
|
|
@@ -73,8 +71,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
|
73
71
|
/**
|
|
74
72
|
* Error telemetry event.
|
|
75
73
|
* @remarks Maps to category = "error"
|
|
76
|
-
*
|
|
77
|
-
* @internal
|
|
74
|
+
* @alpha
|
|
78
75
|
*/
|
|
79
76
|
export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
80
77
|
eventName: string;
|
|
@@ -82,8 +79,7 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
|
82
79
|
/**
|
|
83
80
|
* Performance telemetry event.
|
|
84
81
|
* @remarks Maps to category = "performance"
|
|
85
|
-
*
|
|
86
|
-
* @internal
|
|
82
|
+
* @alpha
|
|
87
83
|
*/
|
|
88
84
|
export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
89
85
|
duration?: number;
|
|
@@ -94,8 +90,7 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
|
|
|
94
90
|
* @remarks
|
|
95
91
|
* This interface is meant to be used internally within the Fluid Framework,
|
|
96
92
|
* and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
|
|
97
|
-
*
|
|
98
|
-
* @internal
|
|
93
|
+
* @alpha
|
|
99
94
|
*/
|
|
100
95
|
export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
101
96
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzF
|
|
1
|
+
{"version":3,"file":"telemetryTypes.d.ts","sourceRoot":"","sources":["../src/telemetryTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzF;;;;;;;;;GASG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE;;;;;;;;GAQG;AACH,MAAM,MAAM,6BAA6B,GACtC,MAAM,GACN,MAAM,GACN,OAAO,GACP,SAAS,GACT,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,GAC7B;IACA,CAAC,GAAG,EAAE,MAAM,GACZ,AADe,gEAAgE;IAC/E,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;CACrE,CAAC;AAEL;;;;;;;GAOG;AACH,MAAM,WAAW,+BAA+B;IAC/C,KAAK,EAAE,6BAA6B,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC,CAAC,KAAK,EAAE,MAAM,GAAG,6BAA6B,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;CACvF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAmB,SAAQ,uBAAuB;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,uBAAuB;IACzE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,uBAAuB;IACvE,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAChE;;;;;OAKG;IACH,kBAAkB,CACjB,KAAK,EAAE,yBAAyB,EAChC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,IAAI,CAAC;IAER;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,uBAAuB,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,oBAAoB,CACnB,KAAK,EAAE,6BAA6B,EACpC,KAAK,CAAC,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,OAAO,QAAQ,CAAC,OAAO,GAAG,OAAO,QAAQ,CAAC,OAAO,GAC1D,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 { ITelemetryBaseLogger, LogLevel, Tagged } 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
|
|
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 { ITelemetryBaseLogger, LogLevel, Tagged } 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 * @alpha\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 *\n * @alpha\n */\nexport type TelemetryEventPropertyTypeExt =\n\t| string\n\t| number\n\t| boolean\n\t| undefined\n\t| (string | number | boolean)[]\n\t| {\n\t\t\t[key: string]: // Flat objects can have the same properties as the event itself\n\t\t\tstring | number | boolean | undefined | (string | number | boolean)[];\n\t };\n\n/**\n * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used\n * to mark pieces of information that should be organized or handled differently by loggers in various first or third\n * party scenarios. For example, tags are used to mark personal information that should not be stored in logs.\n *\n * @deprecated Use {@link @fluidframework/core-interfaces#Tagged}\\<{@link TelemetryEventPropertyTypeExt}\\>\n * @internal\n */\nexport interface ITaggedTelemetryPropertyTypeExt {\n\tvalue: TelemetryEventPropertyTypeExt;\n\ttag: string;\n}\n\n/**\n * JSON-serializable properties, which will be logged with telemetry.\n *\n * @alpha\n */\nexport interface ITelemetryPropertiesExt {\n\t[index: string]: TelemetryEventPropertyTypeExt | 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\tcategory: string;\n\teventName: string;\n}\n\n/**\n * Informational (non-error) telemetry event\n * @remarks Maps to category = \"generic\"\n * @alpha\n */\nexport interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n\tcategory?: TelemetryEventCategory;\n}\n\n/**\n * Error telemetry event.\n * @remarks Maps to category = \"error\"\n * @alpha\n */\nexport interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {\n\teventName: string;\n}\n\n/**\n * Performance telemetry event.\n * @remarks Maps to category = \"performance\"\n * @alpha\n */\nexport interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {\n\tduration?: number; // Duration of event (optional)\n}\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 * @alpha\n */\nexport interface ITelemetryLoggerExt extends ITelemetryBaseLogger {\n\t/**\n\t * Send 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.\n\t */\n\tsendTelemetryEvent(\n\t\tevent: ITelemetryGenericEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n\n\t/**\n\t * Send 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 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.\n\t */\n\tsendPerformanceEvent(\n\t\tevent: ITelemetryPerformanceEventExt,\n\t\terror?: unknown,\n\t\tlogLevel?: typeof LogLevel.verbose | typeof LogLevel.default,\n\t): void;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/telemetry-utils",
|
|
3
|
-
"version": "2.0.0-dev.7.4.0.
|
|
3
|
+
"version": "2.0.0-dev.7.4.0.217884",
|
|
4
4
|
"description": "Collection of telemetry relates utilities for Fluid",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"temp-directory": "nyc/.nyc_output"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@fluid-internal/client-utils": "2.0.0-dev.7.4.0.
|
|
43
|
-
"@fluidframework/core-interfaces": "2.0.0-dev.7.4.0.
|
|
44
|
-
"@fluidframework/core-utils": "2.0.0-dev.7.4.0.
|
|
42
|
+
"@fluid-internal/client-utils": "2.0.0-dev.7.4.0.217884",
|
|
43
|
+
"@fluidframework/core-interfaces": "2.0.0-dev.7.4.0.217884",
|
|
44
|
+
"@fluidframework/core-utils": "2.0.0-dev.7.4.0.217884",
|
|
45
45
|
"@fluidframework/protocol-definitions": "^3.0.0",
|
|
46
46
|
"debug": "^4.3.4",
|
|
47
47
|
"events": "^3.1.0",
|
|
@@ -52,13 +52,13 @@
|
|
|
52
52
|
"@fluidframework/build-common": "^2.0.3",
|
|
53
53
|
"@fluidframework/build-tools": "^0.28.0",
|
|
54
54
|
"@fluidframework/eslint-config-fluid": "^3.1.0",
|
|
55
|
-
"@fluidframework/mocha-test-setup": "2.0.0-dev.7.4.0.
|
|
55
|
+
"@fluidframework/mocha-test-setup": "2.0.0-dev.7.4.0.217884",
|
|
56
56
|
"@fluidframework/telemetry-utils-previous": "npm:@fluidframework/telemetry-utils@2.0.0-internal.7.2.0",
|
|
57
57
|
"@microsoft/api-extractor": "^7.38.3",
|
|
58
58
|
"@types/debug": "^4.1.5",
|
|
59
59
|
"@types/events": "^3.0.0",
|
|
60
60
|
"@types/mocha": "^9.1.1",
|
|
61
|
-
"@types/node": "^
|
|
61
|
+
"@types/node": "^18.19.0",
|
|
62
62
|
"@types/uuid": "^9.0.2",
|
|
63
63
|
"c8": "^7.7.1",
|
|
64
64
|
"copyfiles": "^2.4.1",
|
|
@@ -11,12 +11,10 @@ import { IEvent } from "@fluidframework/core-interfaces";
|
|
|
11
11
|
* @remarks
|
|
12
12
|
* Any exceptions thrown by listeners will be caught and raised through "error" event.
|
|
13
13
|
* Any exception thrown by "error" listeners will propagate to the caller.
|
|
14
|
-
*
|
|
15
|
-
* @internal
|
|
16
|
-
*
|
|
17
14
|
* @privateRemarks
|
|
18
15
|
* This probably doesn't belong in this package, as it is not telemetry-specific, and is really only intended for internal fluid-framework use.
|
|
19
16
|
* We should consider moving it to the `core-utils` package.
|
|
17
|
+
* @alpha
|
|
20
18
|
*/
|
|
21
19
|
export class EventEmitterWithErrorHandling<
|
|
22
20
|
TEvent extends IEvent = IEvent,
|
package/src/telemetryTypes.ts
CHANGED
|
@@ -13,8 +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
|
-
*
|
|
17
|
-
* @internal
|
|
16
|
+
* @alpha
|
|
18
17
|
*/
|
|
19
18
|
export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
20
19
|
|
|
@@ -25,7 +24,7 @@ export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
|
25
24
|
* Includes extra types beyond {@link @fluidframework/core-interfaces#TelemetryBaseEventPropertyType}, which must be
|
|
26
25
|
* converted before sending to a base logger.
|
|
27
26
|
*
|
|
28
|
-
* @
|
|
27
|
+
* @alpha
|
|
29
28
|
*/
|
|
30
29
|
export type TelemetryEventPropertyTypeExt =
|
|
31
30
|
| string
|
|
@@ -54,7 +53,7 @@ export interface ITaggedTelemetryPropertyTypeExt {
|
|
|
54
53
|
/**
|
|
55
54
|
* JSON-serializable properties, which will be logged with telemetry.
|
|
56
55
|
*
|
|
57
|
-
* @
|
|
56
|
+
* @alpha
|
|
58
57
|
*/
|
|
59
58
|
export interface ITelemetryPropertiesExt {
|
|
60
59
|
[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
|
|
@@ -76,8 +75,7 @@ export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
|
|
|
76
75
|
/**
|
|
77
76
|
* Informational (non-error) telemetry event
|
|
78
77
|
* @remarks Maps to category = "generic"
|
|
79
|
-
*
|
|
80
|
-
* @internal
|
|
78
|
+
* @alpha
|
|
81
79
|
*/
|
|
82
80
|
export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
83
81
|
eventName: string;
|
|
@@ -87,8 +85,7 @@ export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
|
87
85
|
/**
|
|
88
86
|
* Error telemetry event.
|
|
89
87
|
* @remarks Maps to category = "error"
|
|
90
|
-
*
|
|
91
|
-
* @internal
|
|
88
|
+
* @alpha
|
|
92
89
|
*/
|
|
93
90
|
export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
94
91
|
eventName: string;
|
|
@@ -97,8 +94,7 @@ export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
|
97
94
|
/**
|
|
98
95
|
* Performance telemetry event.
|
|
99
96
|
* @remarks Maps to category = "performance"
|
|
100
|
-
*
|
|
101
|
-
* @internal
|
|
97
|
+
* @alpha
|
|
102
98
|
*/
|
|
103
99
|
export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
104
100
|
duration?: number; // Duration of event (optional)
|
|
@@ -110,8 +106,7 @@ export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt
|
|
|
110
106
|
* @remarks
|
|
111
107
|
* This interface is meant to be used internally within the Fluid Framework,
|
|
112
108
|
* and `ITelemetryBaseLogger` should be used when loggers are passed between layers.
|
|
113
|
-
*
|
|
114
|
-
* @internal
|
|
109
|
+
* @alpha
|
|
115
110
|
*/
|
|
116
111
|
export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
117
112
|
/**
|