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