Skip to main content
Version: v1

TelemetryLogger Class

TelemetryLogger class contains various helper telemetry methods, encoding in one place schemas for various types of Fluid telemetry events. Creates sub-logger that appends properties to all events

Signature​

export declare abstract class TelemetryLogger implements ITelemetryLogger

Implements: ITelemetryLogger

Constructors​

ConstructorDescription
(constructor)(namespace, properties)Constructs a new instance of the TelemetryLogger class

Static Properties​

PropertyTypeDescription
eventNamespaceSeparator

Static Methods​

MethodReturn TypeDescription
formatTick(tick)number
numberFromString(str)string | number | undefinedAttempts to parse number from string. If fails,returns original string. Used to make telemetry data typed (and support math operations, like comparison), in places where we do expect numbers (like contentsize/duration property in http header)
prepareErrorObject(event, error, fetchStack)voidTake an unknown error object and add the appropriate info from it to the event. Message and stack will be copied over from the error object, along with other telemetry properties if it's an ILoggingError.
sanitizePkgName(name)string

Properties​

PropertyModifiersTypeDescription
namespaceoptionalstring | undefined
propertiesoptionalITelemetryLoggerPropertyBags | undefined

Methods​

MethodReturn TypeDescription
prepareEvent(event)ITelemetryBaseEvent
send(event)voidSend an event with the logger
sendErrorEvent(event, error)voidSend an error telemetry event with the logger
sendPerformanceEvent(event, error)voidSend a performance telemetry event with the logger
sendTelemetryEvent(event, error)voidSend a telemetry event with the logger
sendTelemetryEventCore(event, error)voidSend a telemetry event with the logger

Constructor Details​

(constructor)​

Constructs a new instance of the TelemetryLogger class

Signature​

constructor(namespace?: string | undefined, properties?: ITelemetryLoggerPropertyBags | undefined);

Parameters​

ParameterModifiersTypeDescription
namespaceoptionalstring | undefined
propertiesoptionalITelemetryLoggerPropertyBags | undefined

Property Details​

eventNamespaceSeparator​

Signature​

static readonly eventNamespaceSeparator = ":";

namespace​

Signature​

protected readonly namespace?: string | undefined;

Type: string | undefined

properties​

Signature​

protected readonly properties?: ITelemetryLoggerPropertyBags | undefined;

Type: ITelemetryLoggerPropertyBags | undefined

Method Details​

formatTick​

Signature​

static formatTick(tick: number): number;

Parameters​

ParameterTypeDescription
ticknumber

Returns​

Return type: number

numberFromString​

Attempts to parse number from string. If fails,returns original string. Used to make telemetry data typed (and support math operations, like comparison), in places where we do expect numbers (like contentsize/duration property in http header)

Signature​

static numberFromString(str: string | null | undefined): string | number | undefined;

Parameters​

ParameterTypeDescription
strstring | null | undefined

Returns​

Return type: string | number | undefined

prepareErrorObject​

Take an unknown error object and add the appropriate info from it to the event. Message and stack will be copied over from the error object, along with other telemetry properties if it's an ILoggingError.

Signature​

static prepareErrorObject(event: ITelemetryBaseEvent, error: any, fetchStack: boolean): void;

Parameters​

ParameterTypeDescription
eventITelemetryBaseEventEvent being logged
erroranyError to extract info from
fetchStackbooleanWhether to fetch the current callstack if error.stack is undefined

prepareEvent​

Signature​

protected prepareEvent(event: ITelemetryBaseEvent): ITelemetryBaseEvent;

Parameters​

ParameterTypeDescription
eventITelemetryBaseEvent

Returns​

Return type: ITelemetryBaseEvent

sanitizePkgName​

Signature​

static sanitizePkgName(name: string): string;

Parameters​

ParameterTypeDescription
namestring

Returns​

Return type: string

send​

Send an event with the logger

Signature​

abstract send(event: ITelemetryBaseEvent): void;

Parameters​

ParameterTypeDescription
eventITelemetryBaseEventthe event to send

sendErrorEvent​

Send an error telemetry event with the logger

Signature​

sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;

Parameters​

ParameterModifiersTypeDescription
eventITelemetryErrorEventthe event to send
erroroptionalanyoptional error object to log

sendPerformanceEvent​

Send a performance telemetry event with the logger

Signature​

sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any): void;

Parameters​

ParameterModifiersTypeDescription
eventITelemetryPerformanceEventEvent to send
erroroptionalanyoptional error object to log

sendTelemetryEvent​

Send a telemetry event with the logger

Signature​

sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any): void;

Parameters​

ParameterModifiersTypeDescription
eventITelemetryGenericEventthe event to send
erroroptionalanyoptional error object to log

sendTelemetryEventCore​

Send a telemetry event with the logger

Signature​

protected sendTelemetryEventCore(event: ITelemetryGenericEvent & {
category: TelemetryEventCategory;
}, error?: any): void;

Parameters​

ParameterModifiersTypeDescription
eventITelemetryGenericEvent & { category: TelemetryEventCategory; }the event to send
erroroptionalanyoptional error object to log