Protected
Optional
_doTeardown / Unload hook to allow implementations to perform some additional unload operations before the BaseTelemetryPlugin finishes it's removal.
Optional
unloadCtx: IProcessTelemetryUnloadContextThis is the context that should be used during unloading.
Optional
unloadState: ITelemetryUnloadStateThe details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.
Optional
asyncCallback: (() => void)An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.
boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.
Protected
Optional
_doExtension hook to allow implementations to perform some additional update operations before the BaseTelemetryPlugin finishes it's removal
Optional
updateCtx: IProcessTelemetryUpdateContextThis is the context that should be used during updating.
Optional
updateState: ITelemetryUpdateStateThe details / state of the update process, it holds details like the current and previous configuration.
Optional
asyncCallback: (() => void)An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async update operations.
boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.
Protected
_getHelper to return the current IProcessTelemetryContext, if the passed argument exists this just returns that value (helps with minification for callers), otherwise it will return the configured context or a temporary one.
Optional
currentCtx: IProcessTelemetryContext[Optional] The current execution context
Protected
Readonly
_unloadExposes the underlying unload hook container instance for this extension to allow it to be passed down to any sub components of the class. This should NEVER be exposed or called publically as it's scope is for internal use by BaseTelemetryPlugin and any derived class (which is why it's scoped as protected)
Holds the core instance that was used during initialization
Returns the current diagnostic logger that can be used to log issues, if no logger is currently assigned a new default one will be created and returned.
Extension name
Returns whether the plugin has been initialized
Priority of the extension
Call back for telemetry processing before it it is sent
This is the current event being reported
This is the context for the current request, ITelemetryPlugin instances can optionally use this to access the current core instance or define / pass additional information to later plugins (vs appending items to the telemetry item)
Protected
setInternal helper to allow setting of the internal initialized setting for inherited instances and unit testing
Set next extension for telemetry processing
Plugin version (available in data.properties.version in common schema)
Protected
_addAdd this hook so that it is automatically removed during unloading
The single hook or an array of IInstrumentHook objects
Protected
_addLoad custom transmission profiles. Each profile should have timers for real time, and normal and can optionally specify the immediate latency time in ms (defaults to 0 when not defined). Each profile should make sure that a each normal latency timer is a multiple of the real-time latency and the immediate is smaller than the real-time. Setting the timer value to -1 means that the events for that latency will not be scheduled to be sent. Note that once a latency has been set to not send, all latencies below it will also not be sent. The timers should be in the form of [normal, high, [immediate]]. e.g Custom: [10,5] - Sets the normal latency time to 10 seconds and real-time to 5 seconds; Immediate will default to 0ms [10,5,1] - Sets the normal latency time to 10 seconds and real-time to 5 seconds; Immediate will default to 1ms [10,5,0] - Sets the normal latency time to 10 seconds and real-time to 5 seconds; Immediate will default to 0ms [10,5,-1] - Sets the normal latency time to 10 seconds and real-time to 5 seconds; Immediate events will not be scheduled on their own and but they will be included with real-time or normal events as the first events in a batch. This also removes any previously loaded custom profiles.
A dictionary containing the transmit profiles.
Flush to send data immediately; channel should default to sending data asynchronously. If executing asynchronously (the default) and
you DO NOT pass a callback function then a IPromise
will be returned which will resolve once the flush is complete. The actual implementation of the IPromise
will be a native Promise (if supported) or the default as supplied by ts-async library
send data asynchronously when true
Optional
callBack: ((flushComplete?: boolean) => void)if specified, notify caller when send is complete, the channel should return true to indicate to the caller that it will be called. If the caller doesn't return true the caller should assume that it may never be called.
Optional
flushComplete: booleanOptional
sendReason: SendRequestReasonspecify the reason that you are calling "flush" defaults to ManualFlush (1) if not specified
true
to indicate that callback will be called after the flush is complete otherwise the caller
should assume that any provided callback will never be called, Nothing or if occurring asynchronously a
IPromise which will be resolved once the unload is complete,
the IPromise will only be returned when no callback is provided
and async is true.Add an event to the appropriate inbound queue based on its latency.
The event to be added to the queue.
Optional
itemCtx: IProcessTelemetryContextThis is the context for the current request, ITelemetryPlugin instances can optionally use this to access the current core instance or define / pass additional information to later plugins (vs appending items to the telemetry item)
Sets the event queue limits at runtime (after initialization), if the number of queued events is greater than the eventLimit or autoFlushLimit then a flush() operation will be scheduled.
The number of events that can be kept in memory before the SDK starts to drop events. If the value passed is less than or equal to zero the value will be reset to the default (10,000).
Optional
autoFlushLimit: numberWhen defined, once this number of events has been queued the system perform a flush() to send the queued events without waiting for the normal schedule timers. Passing undefined, null or a value less than or equal to zero will disable the auto flush.
Tear down the plugin and remove any hooked value, the plugin should be removed so that it is no longer initialized and therefore could be re-initialized after being torn down. The plugin should ensure that once this has been called any further processTelemetry calls are ignored and it just calls the processNext() with the provided context.
Optional
unloadCtx: IProcessTelemetryUnloadContextThis is the context that should be used during unloading.
Optional
unloadState: ITelemetryUnloadStateThe details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.
boolean - true if the plugin has or will call processNext(), this for backward compatibility as previously teardown was synchronous and returned nothing.
The the plugin should re-evaluate configuration and update any cached configuration settings.
This is the context that should be used during updating.
The details / state of the update process, it holds details like the current and previous configuration.
boolean - true if the plugin has or will call updateCtx.processNext(), this allows the plugin to perform any asynchronous operations.
Class that manages adding events to inbound queues and batching of events into requests.