@fluidframework/telemetry-utils 1.4.0-115997 → 2.0.0-dev-rc.1.0.0.224419
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/.eslintrc.js +12 -13
- package/.mocharc.js +12 -0
- package/CHANGELOG.md +249 -0
- package/README.md +68 -1
- package/api-extractor-lint.json +4 -0
- package/api-extractor.json +2 -2
- package/api-report/telemetry-utils.api.md +444 -0
- package/dist/config.d.ts +47 -16
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +88 -38
- package/dist/config.js.map +1 -1
- package/dist/error.d.ts +112 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +159 -0
- package/dist/error.js.map +1 -0
- package/dist/errorLogging.d.ts +86 -20
- package/dist/errorLogging.d.ts.map +1 -1
- package/dist/errorLogging.js +190 -60
- package/dist/errorLogging.js.map +1 -1
- package/dist/eventEmitterWithErrorHandling.d.ts +9 -3
- package/dist/eventEmitterWithErrorHandling.d.ts.map +1 -1
- package/dist/eventEmitterWithErrorHandling.js +16 -3
- package/dist/eventEmitterWithErrorHandling.js.map +1 -1
- package/dist/events.d.ts +27 -3
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +26 -2
- package/dist/events.js.map +1 -1
- package/dist/fluidErrorBase.d.ts +57 -16
- package/dist/fluidErrorBase.d.ts.map +1 -1
- package/dist/fluidErrorBase.js +27 -14
- package/dist/fluidErrorBase.js.map +1 -1
- package/dist/index.d.ts +12 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -21
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +267 -51
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +423 -132
- package/dist/logger.js.map +1 -1
- package/dist/mockLogger.d.ts +39 -12
- package/dist/mockLogger.d.ts.map +1 -1
- package/dist/mockLogger.js +105 -22
- package/dist/mockLogger.js.map +1 -1
- package/dist/sampledTelemetryHelper.d.ts +18 -12
- package/dist/sampledTelemetryHelper.d.ts.map +1 -1
- package/dist/sampledTelemetryHelper.js +28 -19
- package/dist/sampledTelemetryHelper.js.map +1 -1
- package/dist/telemetry-utils-alpha.d.ts +290 -0
- package/dist/telemetry-utils-beta.d.ts +264 -0
- package/dist/telemetry-utils-public.d.ts +264 -0
- package/dist/telemetry-utils-untrimmed.d.ts +1102 -0
- package/dist/telemetryTypes.d.ts +115 -0
- package/dist/telemetryTypes.d.ts.map +1 -0
- package/dist/telemetryTypes.js +7 -0
- package/dist/telemetryTypes.js.map +1 -0
- package/dist/thresholdCounter.d.ts +6 -5
- package/dist/thresholdCounter.d.ts.map +1 -1
- package/dist/thresholdCounter.js +4 -3
- package/dist/thresholdCounter.js.map +1 -1
- package/dist/tsdoc-metadata.json +11 -0
- package/dist/utils.d.ts +54 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +58 -3
- package/dist/utils.js.map +1 -1
- package/lib/config.d.ts +47 -16
- package/lib/config.d.ts.map +1 -1
- package/lib/config.js +85 -36
- package/lib/config.js.map +1 -1
- package/lib/error.d.ts +112 -0
- package/lib/error.d.ts.map +1 -0
- package/lib/error.js +150 -0
- package/lib/error.js.map +1 -0
- package/lib/errorLogging.d.ts +86 -20
- package/lib/errorLogging.d.ts.map +1 -1
- package/lib/errorLogging.js +189 -60
- package/lib/errorLogging.js.map +1 -1
- package/lib/eventEmitterWithErrorHandling.d.ts +9 -3
- package/lib/eventEmitterWithErrorHandling.d.ts.map +1 -1
- package/lib/eventEmitterWithErrorHandling.js +15 -2
- package/lib/eventEmitterWithErrorHandling.js.map +1 -1
- package/lib/events.d.ts +27 -3
- package/lib/events.d.ts.map +1 -1
- package/lib/events.js +26 -2
- package/lib/events.js.map +1 -1
- package/lib/fluidErrorBase.d.ts +57 -16
- package/lib/fluidErrorBase.d.ts.map +1 -1
- package/lib/fluidErrorBase.js +27 -14
- package/lib/fluidErrorBase.js.map +1 -1
- package/lib/index.d.ts +12 -11
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +11 -11
- package/lib/index.js.map +1 -1
- package/lib/logger.d.ts +267 -51
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +415 -131
- package/lib/logger.js.map +1 -1
- package/lib/mockLogger.d.ts +39 -12
- package/lib/mockLogger.d.ts.map +1 -1
- package/lib/mockLogger.js +106 -23
- package/lib/mockLogger.js.map +1 -1
- package/lib/sampledTelemetryHelper.d.ts +18 -12
- package/lib/sampledTelemetryHelper.d.ts.map +1 -1
- package/lib/sampledTelemetryHelper.js +26 -17
- package/lib/sampledTelemetryHelper.js.map +1 -1
- package/lib/telemetry-utils-alpha.d.ts +290 -0
- package/lib/telemetry-utils-beta.d.ts +264 -0
- package/lib/telemetry-utils-public.d.ts +264 -0
- package/lib/telemetry-utils-untrimmed.d.ts +1102 -0
- package/lib/telemetryTypes.d.ts +115 -0
- package/lib/telemetryTypes.d.ts.map +1 -0
- package/lib/telemetryTypes.js +6 -0
- package/lib/telemetryTypes.js.map +1 -0
- package/lib/thresholdCounter.d.ts +6 -5
- package/lib/thresholdCounter.d.ts.map +1 -1
- package/lib/thresholdCounter.js +4 -3
- package/lib/thresholdCounter.js.map +1 -1
- package/lib/utils.d.ts +54 -3
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +56 -2
- package/lib/utils.js.map +1 -1
- package/package.json +86 -57
- package/prettier.config.cjs +8 -0
- package/src/config.ts +254 -189
- package/src/error.ts +235 -0
- package/src/errorLogging.ts +440 -290
- package/src/eventEmitterWithErrorHandling.ts +26 -14
- package/src/events.ts +54 -25
- package/src/fluidErrorBase.ts +94 -46
- package/src/index.ts +76 -17
- package/src/logger.ts +966 -505
- package/src/mockLogger.ts +225 -83
- package/src/sampledTelemetryHelper.ts +136 -128
- package/src/telemetryTypes.ts +140 -0
- package/src/thresholdCounter.ts +38 -37
- package/src/utils.ts +108 -17
- package/tsconfig.esnext.json +6 -6
- package/tsconfig.json +9 -13
- package/dist/debugLogger.d.ts +0 -39
- package/dist/debugLogger.d.ts.map +0 -1
- package/dist/debugLogger.js +0 -101
- package/dist/debugLogger.js.map +0 -1
- package/dist/packageVersion.d.ts +0 -9
- package/dist/packageVersion.d.ts.map +0 -1
- package/dist/packageVersion.js +0 -12
- package/dist/packageVersion.js.map +0 -1
- package/lib/debugLogger.d.ts +0 -39
- package/lib/debugLogger.d.ts.map +0 -1
- package/lib/debugLogger.js +0 -97
- package/lib/debugLogger.js.map +0 -1
- package/lib/packageVersion.d.ts +0 -9
- package/lib/packageVersion.d.ts.map +0 -1
- package/lib/packageVersion.js +0 -9
- package/lib/packageVersion.js.map +0 -1
- package/src/debugLogger.ts +0 -126
- package/src/packageVersion.ts +0 -9
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
## API Report File for "@fluidframework/telemetry-utils"
|
|
2
|
+
|
|
3
|
+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
|
|
7
|
+
/// <reference types="node" />
|
|
8
|
+
|
|
9
|
+
import { EventEmitter } from 'events';
|
|
10
|
+
import { EventEmitterEventType } from '@fluid-internal/client-utils';
|
|
11
|
+
import { IConfigProviderBase } from '@fluidframework/core-interfaces';
|
|
12
|
+
import { IDisposable } from '@fluidframework/core-interfaces';
|
|
13
|
+
import { IErrorBase } from '@fluidframework/core-interfaces';
|
|
14
|
+
import { IEvent } from '@fluidframework/core-interfaces';
|
|
15
|
+
import { IGenericError } from '@fluidframework/core-interfaces';
|
|
16
|
+
import { ILoggingError } from '@fluidframework/core-interfaces';
|
|
17
|
+
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
18
|
+
import { ITelemetryBaseEvent } from '@fluidframework/core-interfaces';
|
|
19
|
+
import { ITelemetryBaseLogger } from '@fluidframework/core-interfaces';
|
|
20
|
+
import { ITelemetryBaseProperties } from '@fluidframework/core-interfaces';
|
|
21
|
+
import { ITelemetryErrorEvent } from '@fluidframework/core-interfaces';
|
|
22
|
+
import { ITelemetryGenericEvent } from '@fluidframework/core-interfaces';
|
|
23
|
+
import { ITelemetryPerformanceEvent } from '@fluidframework/core-interfaces';
|
|
24
|
+
import { ITelemetryProperties } from '@fluidframework/core-interfaces';
|
|
25
|
+
import { IUsageError } from '@fluidframework/core-interfaces';
|
|
26
|
+
import { Lazy } from '@fluidframework/core-utils';
|
|
27
|
+
import { LogLevel } from '@fluidframework/core-interfaces';
|
|
28
|
+
import { Tagged } from '@fluidframework/core-interfaces';
|
|
29
|
+
import { TelemetryBaseEventPropertyType } from '@fluidframework/core-interfaces';
|
|
30
|
+
import { TelemetryEventPropertyType } from '@fluidframework/core-interfaces';
|
|
31
|
+
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
32
|
+
|
|
33
|
+
// @internal (undocumented)
|
|
34
|
+
export const connectedEventName = "connected";
|
|
35
|
+
|
|
36
|
+
// @alpha
|
|
37
|
+
export function createChildLogger(props?: {
|
|
38
|
+
logger?: ITelemetryBaseLogger;
|
|
39
|
+
namespace?: string;
|
|
40
|
+
properties?: ITelemetryLoggerPropertyBags;
|
|
41
|
+
}): ITelemetryLoggerExt;
|
|
42
|
+
|
|
43
|
+
// @internal
|
|
44
|
+
export function createChildMonitoringContext(props: Parameters<typeof createChildLogger>[0]): MonitoringContext;
|
|
45
|
+
|
|
46
|
+
// @internal
|
|
47
|
+
export function createMultiSinkLogger(props: MultiSinkLoggerProperties): ITelemetryLoggerExt;
|
|
48
|
+
|
|
49
|
+
// @internal
|
|
50
|
+
export function createSampledLogger(logger: ITelemetryLoggerExt, eventSampler?: IEventSampler): ISampledTelemetryLogger;
|
|
51
|
+
|
|
52
|
+
// @internal
|
|
53
|
+
export class DataCorruptionError extends LoggingError implements IErrorBase, IFluidErrorBase {
|
|
54
|
+
constructor(message: string, props: ITelemetryBaseProperties);
|
|
55
|
+
// (undocumented)
|
|
56
|
+
readonly canRetry = false;
|
|
57
|
+
// (undocumented)
|
|
58
|
+
readonly errorType: "dataCorruptionError";
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// @internal
|
|
62
|
+
export class DataProcessingError extends LoggingError implements IErrorBase, IFluidErrorBase {
|
|
63
|
+
// (undocumented)
|
|
64
|
+
readonly canRetry = false;
|
|
65
|
+
static create(errorMessage: string, dataProcessingCodepath: string, sequencedMessage?: ISequencedDocumentMessage, props?: ITelemetryBaseProperties): IFluidErrorBase;
|
|
66
|
+
readonly errorType: "dataProcessingError";
|
|
67
|
+
static wrapIfUnrecognized(originalError: unknown, dataProcessingCodepath: string, messageLike?: Partial<Pick<ISequencedDocumentMessage, "clientId" | "sequenceNumber" | "clientSequenceNumber" | "referenceSequenceNumber" | "minimumSequenceNumber" | "timestamp">>): IFluidErrorBase;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// @internal (undocumented)
|
|
71
|
+
export const disconnectedEventName = "disconnected";
|
|
72
|
+
|
|
73
|
+
// @public
|
|
74
|
+
export class EventEmitterWithErrorHandling<TEvent extends IEvent = IEvent> extends TypedEventEmitter<TEvent> {
|
|
75
|
+
constructor(errorHandler: (eventName: EventEmitterEventType, error: any) => void);
|
|
76
|
+
// (undocumented)
|
|
77
|
+
emit(event: EventEmitterEventType, ...args: unknown[]): boolean;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// @internal
|
|
81
|
+
export const eventNamespaceSeparator: ":";
|
|
82
|
+
|
|
83
|
+
// @internal
|
|
84
|
+
export function extractLogSafeErrorProperties(error: unknown, sanitizeStack: boolean): {
|
|
85
|
+
message: string;
|
|
86
|
+
errorType?: string | undefined;
|
|
87
|
+
stack?: string | undefined;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// @internal
|
|
91
|
+
export const extractSafePropertiesFromMessage: (messageLike: Partial<Pick<ISequencedDocumentMessage, "clientId" | "sequenceNumber" | "clientSequenceNumber" | "referenceSequenceNumber" | "minimumSequenceNumber" | "timestamp">>) => {
|
|
92
|
+
messageClientId: string | undefined;
|
|
93
|
+
messageSequenceNumber: number | undefined;
|
|
94
|
+
messageClientSequenceNumber: number | undefined;
|
|
95
|
+
messageReferenceSequenceNumber: number | undefined;
|
|
96
|
+
messageMinimumSequenceNumber: number | undefined;
|
|
97
|
+
messageTimestamp: number | undefined;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
// @internal (undocumented)
|
|
101
|
+
export function formatTick(tick: number): number;
|
|
102
|
+
|
|
103
|
+
// @internal
|
|
104
|
+
export function generateErrorWithStack(): Error;
|
|
105
|
+
|
|
106
|
+
// @internal
|
|
107
|
+
export function generateStack(): string | undefined;
|
|
108
|
+
|
|
109
|
+
// @internal
|
|
110
|
+
export class GenericError extends LoggingError implements IGenericError, IFluidErrorBase {
|
|
111
|
+
constructor(message: string, error?: any, props?: ITelemetryBaseProperties);
|
|
112
|
+
// (undocumented)
|
|
113
|
+
readonly error?: any;
|
|
114
|
+
// (undocumented)
|
|
115
|
+
readonly errorType: "genericError";
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// @internal
|
|
119
|
+
export const getCircularReplacer: () => (key: string, value: unknown) => any;
|
|
120
|
+
|
|
121
|
+
// @internal
|
|
122
|
+
export const hasErrorInstanceId: (x: unknown) => x is {
|
|
123
|
+
errorInstanceId: string;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
// @internal
|
|
127
|
+
export interface IConfigProvider extends IConfigProviderBase {
|
|
128
|
+
// (undocumented)
|
|
129
|
+
getBoolean(name: string): boolean | undefined;
|
|
130
|
+
// (undocumented)
|
|
131
|
+
getBooleanArray(name: string): boolean[] | undefined;
|
|
132
|
+
// (undocumented)
|
|
133
|
+
getNumber(name: string): number | undefined;
|
|
134
|
+
// (undocumented)
|
|
135
|
+
getNumberArray(name: string): number[] | undefined;
|
|
136
|
+
// (undocumented)
|
|
137
|
+
getString(name: string): string | undefined;
|
|
138
|
+
// (undocumented)
|
|
139
|
+
getStringArray(name: string): string[] | undefined;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// @internal
|
|
143
|
+
export interface IEventSampler {
|
|
144
|
+
// (undocumented)
|
|
145
|
+
sample: () => boolean | undefined;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// @internal
|
|
149
|
+
export interface IFluidErrorAnnotations {
|
|
150
|
+
props?: ITelemetryBaseProperties;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// @internal
|
|
154
|
+
export interface IFluidErrorBase extends Error {
|
|
155
|
+
addTelemetryProperties: (props: ITelemetryProperties) => void;
|
|
156
|
+
readonly errorInstanceId: string;
|
|
157
|
+
readonly errorType: string;
|
|
158
|
+
getTelemetryProperties(): ITelemetryProperties;
|
|
159
|
+
readonly message: string;
|
|
160
|
+
readonly name: string;
|
|
161
|
+
readonly stack?: string;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// @internal
|
|
165
|
+
export interface IPerformanceEventMarkers {
|
|
166
|
+
// (undocumented)
|
|
167
|
+
cancel?: "generic" | "error";
|
|
168
|
+
// (undocumented)
|
|
169
|
+
end?: true;
|
|
170
|
+
// (undocumented)
|
|
171
|
+
start?: true;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// @internal
|
|
175
|
+
export interface ISampledTelemetryLogger extends ITelemetryLoggerExt {
|
|
176
|
+
isSamplingDisabled: boolean;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// @internal
|
|
180
|
+
export function isExternalError(error: unknown): boolean;
|
|
181
|
+
|
|
182
|
+
// @internal
|
|
183
|
+
export function isFluidError(error: unknown): error is IFluidErrorBase;
|
|
184
|
+
|
|
185
|
+
// @internal
|
|
186
|
+
export const isILoggingError: (x: unknown) => x is ILoggingError;
|
|
187
|
+
|
|
188
|
+
// @internal
|
|
189
|
+
export function isTaggedTelemetryPropertyValue(x: Tagged<TelemetryEventPropertyTypeExt> | TelemetryEventPropertyTypeExt): x is Tagged<TelemetryEventPropertyTypeExt>;
|
|
190
|
+
|
|
191
|
+
// @internal
|
|
192
|
+
export function isValidLegacyError(error: unknown): error is Omit<IFluidErrorBase, "errorInstanceId">;
|
|
193
|
+
|
|
194
|
+
// @internal @deprecated
|
|
195
|
+
export interface ITaggedTelemetryPropertyTypeExt {
|
|
196
|
+
// (undocumented)
|
|
197
|
+
tag: string;
|
|
198
|
+
// (undocumented)
|
|
199
|
+
value: TelemetryEventPropertyTypeExt;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// @public
|
|
203
|
+
export interface ITelemetryErrorEventExt extends ITelemetryPropertiesExt {
|
|
204
|
+
// (undocumented)
|
|
205
|
+
eventName: string;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// @internal
|
|
209
|
+
export interface ITelemetryEventExt extends ITelemetryPropertiesExt {
|
|
210
|
+
// (undocumented)
|
|
211
|
+
category: string;
|
|
212
|
+
// (undocumented)
|
|
213
|
+
eventName: string;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// @public
|
|
217
|
+
export interface ITelemetryGenericEventExt extends ITelemetryPropertiesExt {
|
|
218
|
+
// (undocumented)
|
|
219
|
+
category?: TelemetryEventCategory;
|
|
220
|
+
// (undocumented)
|
|
221
|
+
eventName: string;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// @public
|
|
225
|
+
export interface ITelemetryLoggerExt extends ITelemetryBaseLogger {
|
|
226
|
+
sendErrorEvent(event: ITelemetryErrorEventExt, error?: unknown): void;
|
|
227
|
+
sendPerformanceEvent(event: ITelemetryPerformanceEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
|
|
228
|
+
sendTelemetryEvent(event: ITelemetryGenericEventExt, error?: unknown, logLevel?: typeof LogLevel.verbose | typeof LogLevel.default): void;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// @alpha (undocumented)
|
|
232
|
+
export interface ITelemetryLoggerPropertyBag {
|
|
233
|
+
// (undocumented)
|
|
234
|
+
[index: string]: TelemetryEventPropertyTypes | (() => TelemetryEventPropertyTypes);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// @alpha (undocumented)
|
|
238
|
+
export interface ITelemetryLoggerPropertyBags {
|
|
239
|
+
// (undocumented)
|
|
240
|
+
all?: ITelemetryLoggerPropertyBag;
|
|
241
|
+
// (undocumented)
|
|
242
|
+
error?: ITelemetryLoggerPropertyBag;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// @public
|
|
246
|
+
export interface ITelemetryPerformanceEventExt extends ITelemetryGenericEventExt {
|
|
247
|
+
// (undocumented)
|
|
248
|
+
duration?: number;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// @public
|
|
252
|
+
export interface ITelemetryPropertiesExt {
|
|
253
|
+
// (undocumented)
|
|
254
|
+
[index: string]: TelemetryEventPropertyTypeExt | Tagged<TelemetryEventPropertyTypeExt>;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// @internal
|
|
258
|
+
export function loggerToMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(logger: L): MonitoringContext<L>;
|
|
259
|
+
|
|
260
|
+
// @internal
|
|
261
|
+
export class LoggingError extends Error implements ILoggingError, Omit<IFluidErrorBase, "errorType"> {
|
|
262
|
+
constructor(message: string, props?: ITelemetryBaseProperties, omitPropsFromLogging?: Set<string>);
|
|
263
|
+
addTelemetryProperties(props: ITelemetryBaseProperties): void;
|
|
264
|
+
// (undocumented)
|
|
265
|
+
get errorInstanceId(): string;
|
|
266
|
+
getTelemetryProperties(): ITelemetryBaseProperties;
|
|
267
|
+
// (undocumented)
|
|
268
|
+
overwriteErrorInstanceId(id: string): void;
|
|
269
|
+
static typeCheck(object: unknown): object is LoggingError;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// @internal @deprecated
|
|
273
|
+
export function logIfFalse(condition: unknown, logger: ITelemetryBaseLogger, event: string | ITelemetryGenericEvent): condition is true;
|
|
274
|
+
|
|
275
|
+
// @internal
|
|
276
|
+
export function mixinMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(logger: L, ...configs: (IConfigProviderBase | undefined)[]): MonitoringContext<L>;
|
|
277
|
+
|
|
278
|
+
// @internal
|
|
279
|
+
export class MockLogger implements ITelemetryBaseLogger {
|
|
280
|
+
constructor(minLogLevel?: LogLevel | undefined);
|
|
281
|
+
assertMatch(expectedEvents: Omit<ITelemetryBaseEvent, "category">[], message?: string, inlineDetailsProp?: boolean): void;
|
|
282
|
+
assertMatchAny(expectedEvents: Omit<ITelemetryBaseEvent, "category">[], message?: string, inlineDetailsProp?: boolean): void;
|
|
283
|
+
assertMatchNone(disallowedEvents: Omit<ITelemetryBaseEvent, "category">[], message?: string, inlineDetailsProp?: boolean): void;
|
|
284
|
+
assertMatchStrict(expectedEvents: Omit<ITelemetryBaseEvent, "category">[], message?: string, inlineDetailsProp?: boolean): void;
|
|
285
|
+
// (undocumented)
|
|
286
|
+
clear(): void;
|
|
287
|
+
// (undocumented)
|
|
288
|
+
events: ITelemetryBaseEvent[];
|
|
289
|
+
matchAnyEvent(expectedEvents: Omit<ITelemetryBaseEvent, "category">[], inlineDetailsProp?: boolean): boolean;
|
|
290
|
+
matchEvents(expectedEvents: Omit<ITelemetryBaseEvent, "category">[], inlineDetailsProp?: boolean): boolean;
|
|
291
|
+
matchEventStrict(expectedEvents: Omit<ITelemetryBaseEvent, "category">[], inlineDetailsProp?: boolean): boolean;
|
|
292
|
+
// (undocumented)
|
|
293
|
+
readonly minLogLevel?: LogLevel | undefined;
|
|
294
|
+
// (undocumented)
|
|
295
|
+
send(event: ITelemetryBaseEvent): void;
|
|
296
|
+
// (undocumented)
|
|
297
|
+
toTelemetryLogger(): ITelemetryLoggerExt;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// @internal
|
|
301
|
+
export interface MonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt> {
|
|
302
|
+
// (undocumented)
|
|
303
|
+
config: IConfigProvider;
|
|
304
|
+
// (undocumented)
|
|
305
|
+
logger: L;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// @internal
|
|
309
|
+
export interface MultiSinkLoggerProperties {
|
|
310
|
+
loggers?: (ITelemetryBaseLogger | undefined)[];
|
|
311
|
+
namespace?: string;
|
|
312
|
+
properties?: ITelemetryLoggerPropertyBags;
|
|
313
|
+
tryInheritProperties?: true;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
// @internal
|
|
317
|
+
export const NORMALIZED_ERROR_TYPE = "genericError";
|
|
318
|
+
|
|
319
|
+
// @internal
|
|
320
|
+
export function normalizeError(error: unknown, annotations?: IFluidErrorAnnotations): IFluidErrorBase;
|
|
321
|
+
|
|
322
|
+
// @internal
|
|
323
|
+
export function numberFromString(str: string | null | undefined): string | number | undefined;
|
|
324
|
+
|
|
325
|
+
// @internal
|
|
326
|
+
export function overwriteStack(error: IFluidErrorBase | LoggingError, stack: string): void;
|
|
327
|
+
|
|
328
|
+
// @internal
|
|
329
|
+
export class PerformanceEvent {
|
|
330
|
+
protected constructor(logger: ITelemetryLoggerExt, event: ITelemetryGenericEvent, markers?: IPerformanceEventMarkers, recordHeapSize?: boolean, emitLogs?: boolean);
|
|
331
|
+
// (undocumented)
|
|
332
|
+
cancel(props?: ITelemetryProperties, error?: unknown): void;
|
|
333
|
+
// (undocumented)
|
|
334
|
+
get duration(): number;
|
|
335
|
+
// (undocumented)
|
|
336
|
+
end(props?: ITelemetryProperties): void;
|
|
337
|
+
reportEvent(eventNameSuffix: string, props?: ITelemetryProperties, error?: unknown): void;
|
|
338
|
+
// (undocumented)
|
|
339
|
+
reportProgress(props?: ITelemetryProperties, eventNameSuffix?: string): void;
|
|
340
|
+
static start(logger: ITelemetryLoggerExt, event: ITelemetryGenericEvent, markers?: IPerformanceEventMarkers, recordHeapSize?: boolean, emitLogs?: boolean): PerformanceEvent;
|
|
341
|
+
static timedExec<T>(logger: ITelemetryLoggerExt, event: ITelemetryGenericEvent, callback: (event: PerformanceEvent) => T, markers?: IPerformanceEventMarkers, sampleThreshold?: number): T;
|
|
342
|
+
static timedExecAsync<T>(logger: ITelemetryLoggerExt, event: ITelemetryGenericEvent, callback: (event: PerformanceEvent) => Promise<T>, markers?: IPerformanceEventMarkers, recordHeapSize?: boolean, sampleThreshold?: number): Promise<T>;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
// @internal
|
|
346
|
+
export function raiseConnectedEvent(logger: ITelemetryLoggerExt, emitter: EventEmitter, connected: boolean, clientId?: string, disconnectedReason?: string): void;
|
|
347
|
+
|
|
348
|
+
// @internal (undocumented)
|
|
349
|
+
export function safeRaiseEvent(emitter: EventEmitter, logger: ITelemetryLoggerExt, event: string, ...args: unknown[]): void;
|
|
350
|
+
|
|
351
|
+
// @internal
|
|
352
|
+
export class SampledTelemetryHelper implements IDisposable {
|
|
353
|
+
constructor(eventBase: ITelemetryGenericEvent, logger: ITelemetryLoggerExt, sampleThreshold: number, includeAggregateMetrics?: boolean, perBucketProperties?: Map<string, ITelemetryProperties>);
|
|
354
|
+
// (undocumented)
|
|
355
|
+
dispose(error?: Error | undefined): void;
|
|
356
|
+
// (undocumented)
|
|
357
|
+
disposed: boolean;
|
|
358
|
+
measure<T>(codeToMeasure: () => T, bucket?: string): T;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// @internal
|
|
362
|
+
export const sessionStorageConfigProvider: Lazy<IConfigProviderBase>;
|
|
363
|
+
|
|
364
|
+
// @internal
|
|
365
|
+
export const tagCodeArtifacts: <T extends Record<string, TelemetryEventPropertyType | (() => TelemetryBaseEventPropertyType)>>(values: T) => { [P in keyof T]: (T[P] extends () => TelemetryBaseEventPropertyType ? () => {
|
|
366
|
+
value: ReturnType<T[P]>;
|
|
367
|
+
tag: TelemetryDataTag.CodeArtifact;
|
|
368
|
+
} : {
|
|
369
|
+
value: Exclude<T[P], undefined>;
|
|
370
|
+
tag: TelemetryDataTag.CodeArtifact;
|
|
371
|
+
}) | (T[P] extends undefined ? undefined : never); };
|
|
372
|
+
|
|
373
|
+
// @internal
|
|
374
|
+
export const tagData: <T extends TelemetryDataTag, V extends Record<string, TelemetryEventPropertyType | (() => TelemetryBaseEventPropertyType)>>(tag: T, values: V) => { [P in keyof V]: (V[P] extends () => TelemetryBaseEventPropertyType ? () => {
|
|
375
|
+
value: ReturnType<V[P]>;
|
|
376
|
+
tag: T;
|
|
377
|
+
} : {
|
|
378
|
+
value: Exclude<V[P], undefined>;
|
|
379
|
+
tag: T;
|
|
380
|
+
}) | (V[P] extends undefined ? undefined : never); };
|
|
381
|
+
|
|
382
|
+
// @internal @deprecated (undocumented)
|
|
383
|
+
export class TaggedLoggerAdapter implements ITelemetryBaseLogger {
|
|
384
|
+
constructor(logger: ITelemetryBaseLogger);
|
|
385
|
+
// (undocumented)
|
|
386
|
+
send(eventWithTagsMaybe: ITelemetryBaseEvent): void;
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
// @internal
|
|
390
|
+
export enum TelemetryDataTag {
|
|
391
|
+
CodeArtifact = "CodeArtifact",
|
|
392
|
+
UserData = "UserData"
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
// @public
|
|
396
|
+
export type TelemetryEventCategory = "generic" | "error" | "performance";
|
|
397
|
+
|
|
398
|
+
// @public
|
|
399
|
+
export type TelemetryEventPropertyTypeExt = string | number | boolean | undefined | (string | number | boolean)[] | {
|
|
400
|
+
[key: string]: // Flat objects can have the same properties as the event itself
|
|
401
|
+
string | number | boolean | undefined | (string | number | boolean)[];
|
|
402
|
+
};
|
|
403
|
+
|
|
404
|
+
// @alpha (undocumented)
|
|
405
|
+
export type TelemetryEventPropertyTypes = ITelemetryBaseProperties[string];
|
|
406
|
+
|
|
407
|
+
// @internal @deprecated
|
|
408
|
+
export class TelemetryNullLogger implements ITelemetryLoggerExt {
|
|
409
|
+
// (undocumented)
|
|
410
|
+
send(event: ITelemetryBaseEvent): void;
|
|
411
|
+
// (undocumented)
|
|
412
|
+
sendErrorEvent(event: ITelemetryErrorEvent, error?: unknown): void;
|
|
413
|
+
// (undocumented)
|
|
414
|
+
sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: unknown): void;
|
|
415
|
+
// (undocumented)
|
|
416
|
+
sendTelemetryEvent(event: ITelemetryGenericEvent, error?: unknown): void;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// @internal
|
|
420
|
+
export class ThresholdCounter {
|
|
421
|
+
constructor(threshold: number, logger: ITelemetryLoggerExt, thresholdMultiple?: number);
|
|
422
|
+
send(eventName: string, value: number): void;
|
|
423
|
+
sendIfMultiple(eventName: string, value: number): void;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
// @internal
|
|
427
|
+
export class UsageError extends LoggingError implements IUsageError, IFluidErrorBase {
|
|
428
|
+
constructor(message: string, props?: ITelemetryBaseProperties);
|
|
429
|
+
// (undocumented)
|
|
430
|
+
readonly errorType: "usageError";
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
// @internal
|
|
434
|
+
export function validatePrecondition(condition: boolean, message: string, props?: ITelemetryBaseProperties): asserts condition;
|
|
435
|
+
|
|
436
|
+
// @internal
|
|
437
|
+
export function wrapError<T extends LoggingError>(innerError: unknown, newErrorFn: (message: string) => T): T;
|
|
438
|
+
|
|
439
|
+
// @internal
|
|
440
|
+
export function wrapErrorAndLog<T extends LoggingError>(innerError: unknown, newErrorFn: (message: string) => T, logger: ITelemetryLoggerExt): T;
|
|
441
|
+
|
|
442
|
+
// (No @packageDocumentation comment for this package)
|
|
443
|
+
|
|
444
|
+
```
|
package/dist/config.d.ts
CHANGED
|
@@ -2,17 +2,14 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
import { ITelemetryBaseLogger,
|
|
6
|
-
import { Lazy } from "@fluidframework/
|
|
7
|
-
|
|
5
|
+
import { ITelemetryBaseLogger, IConfigProviderBase, ConfigTypes } from "@fluidframework/core-interfaces";
|
|
6
|
+
import { Lazy } from "@fluidframework/core-utils";
|
|
7
|
+
import { createChildLogger } from "./logger";
|
|
8
|
+
import { ITelemetryLoggerExt } from "./telemetryTypes";
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
getRawConfig(name: string): ConfigTypes;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Explicitly typed interface for reading configurations
|
|
10
|
+
* Explicitly typed interface for reading configurations.
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
16
13
|
*/
|
|
17
14
|
export interface IConfigProvider extends IConfigProviderBase {
|
|
18
15
|
getBoolean(name: string): boolean | undefined;
|
|
@@ -26,6 +23,8 @@ export interface IConfigProvider extends IConfigProviderBase {
|
|
|
26
23
|
* Creates a base configuration provider based on `sessionStorage`
|
|
27
24
|
*
|
|
28
25
|
* @returns A lazy initialized base configuration provider with `sessionStorage` as the underlying config store
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
29
28
|
*/
|
|
30
29
|
export declare const sessionStorageConfigProvider: Lazy<IConfigProviderBase>;
|
|
31
30
|
/**
|
|
@@ -40,9 +39,10 @@ export declare const inMemoryConfigProvider: (storage: Storage | undefined) => I
|
|
|
40
39
|
* Implementation of {@link IConfigProvider} which contains nested {@link IConfigProviderBase} instances
|
|
41
40
|
*/
|
|
42
41
|
export declare class CachedConfigProvider implements IConfigProvider {
|
|
42
|
+
private readonly logger?;
|
|
43
43
|
private readonly configCache;
|
|
44
44
|
private readonly orderedBaseProviders;
|
|
45
|
-
constructor(...orderedBaseProviders: (IConfigProviderBase | undefined)[]);
|
|
45
|
+
constructor(logger?: ITelemetryBaseLogger | undefined, ...orderedBaseProviders: (IConfigProviderBase | undefined)[]);
|
|
46
46
|
getBoolean(name: string): boolean | undefined;
|
|
47
47
|
getNumber(name: string): number | undefined;
|
|
48
48
|
getString(name: string): string | undefined;
|
|
@@ -53,13 +53,44 @@ export declare class CachedConfigProvider implements IConfigProvider {
|
|
|
53
53
|
private getCacheEntry;
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
|
-
* A type containing both a telemetry logger and a configuration provider
|
|
56
|
+
* A type containing both a telemetry logger and a configuration provider.
|
|
57
|
+
*
|
|
58
|
+
* @internal
|
|
57
59
|
*/
|
|
58
|
-
export interface MonitoringContext<L extends ITelemetryBaseLogger =
|
|
60
|
+
export interface MonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt> {
|
|
59
61
|
config: IConfigProvider;
|
|
60
62
|
logger: L;
|
|
61
63
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Determines whether or not the provided object is a {@link MonitoringContext}.
|
|
66
|
+
* @remarks Can be used for type-narrowing.
|
|
67
|
+
*
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
export declare function loggerIsMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(obj: L): obj is L & MonitoringContext<L>;
|
|
71
|
+
/**
|
|
72
|
+
* Creates a {@link MonitoringContext} from the provided logger, if it isn't already one.
|
|
73
|
+
*
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
export declare function loggerToMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(logger: L): MonitoringContext<L>;
|
|
77
|
+
/**
|
|
78
|
+
* Creates a {@link MonitoringContext} from the provided logger.
|
|
79
|
+
*
|
|
80
|
+
* @remarks
|
|
81
|
+
* Assumes that the provided logger is not itself already a {@link MonitoringContext}, and will throw an error if it is.
|
|
82
|
+
* If you are unsure, use {@link loggerToMonitoringContext} instead.
|
|
83
|
+
*
|
|
84
|
+
* @throws If the provided logger is already a {@link MonitoringContext}.
|
|
85
|
+
*
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
export declare function mixinMonitoringContext<L extends ITelemetryBaseLogger = ITelemetryLoggerExt>(logger: L, ...configs: (IConfigProviderBase | undefined)[]): MonitoringContext<L>;
|
|
89
|
+
/**
|
|
90
|
+
* Creates a child logger with a {@link MonitoringContext}.
|
|
91
|
+
*
|
|
92
|
+
* @see {@link loggerToMonitoringContext}
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
export declare function createChildMonitoringContext(props: Parameters<typeof createChildLogger>[0]): MonitoringContext;
|
|
65
96
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|