126 lines
No EOL
6 KiB
TypeScript
126 lines
No EOL
6 KiB
TypeScript
import { BotTelemetryClient } from './botTelemetryClient';
|
|
import { Middleware } from './middlewareSet';
|
|
import { TurnContext } from './turnContext';
|
|
import { Activity } from 'botframework-schema';
|
|
/**
|
|
* Middleware for logging incoming, outgoing, updated or deleted Activity messages.
|
|
* Uses the botTelemetryClient interface.
|
|
*/
|
|
export declare class TelemetryLoggerMiddleware implements Middleware {
|
|
/**
|
|
* The name of the event when when new message is received from the user.
|
|
*/
|
|
static readonly botMsgReceiveEvent: string;
|
|
/**
|
|
* The name of the event when a message is updated by the bot.
|
|
*/
|
|
static readonly botMsgSendEvent: string;
|
|
/**
|
|
* The name of the event when a message is updated by the bot.
|
|
*/
|
|
static readonly botMsgUpdateEvent: string;
|
|
/**
|
|
* The name of the event when a message is deleted by the bot.
|
|
*/
|
|
static readonly botMsgDeleteEvent: string;
|
|
private readonly _telemetryClient;
|
|
private readonly _logPersonalInformation;
|
|
/**
|
|
* Initializes a new instance of the TelemetryLoggerMiddleware class.
|
|
*
|
|
* @param telemetryClient The BotTelemetryClient used for logging.
|
|
* @param logPersonalInformation (Optional) Enable/Disable logging original message name within Application Insights.
|
|
*/
|
|
constructor(telemetryClient: BotTelemetryClient, logPersonalInformation?: boolean);
|
|
/**
|
|
* Gets a value indicating whether to log personal information that came from the user.
|
|
*
|
|
* @returns A value indicating whether to log personal information or not.
|
|
*/
|
|
get logPersonalInformation(): boolean;
|
|
/**
|
|
* Gets the currently configured botTelemetryClient that logs the events.
|
|
*
|
|
* @returns The currently configured [BotTelemetryClient](xref:botbuilder-core.BotTelemetryClient) that logs the events.
|
|
*/
|
|
get telemetryClient(): BotTelemetryClient;
|
|
/**
|
|
* Logs events based on incoming and outgoing activities using the botTelemetryClient class.
|
|
*
|
|
* @param context The context object for this turn.
|
|
* @param next The delegate to call to continue the bot middleware pipeline
|
|
*/
|
|
onTurn(context: TurnContext, next: () => Promise<void>): Promise<void>;
|
|
/**
|
|
* Invoked when a message is received from the user.
|
|
* Performs logging of telemetry data using the IBotTelemetryClient.TrackEvent() method.
|
|
* The event name logged is "BotMessageReceived".
|
|
*
|
|
* @param activity Current activity sent from user.
|
|
*/
|
|
protected onReceiveActivity(activity: Activity): Promise<void>;
|
|
/**
|
|
* Invoked when the bot sends a message to the user.
|
|
* Performs logging of telemetry data using the botTelemetryClient.trackEvent() method.
|
|
* The event name logged is "BotMessageSend".
|
|
*
|
|
* @param activity Last activity sent from user.
|
|
*/
|
|
protected onSendActivity(activity: Activity): Promise<void>;
|
|
/**
|
|
* Invoked when the bot updates a message.
|
|
* Performs logging of telemetry data using the botTelemetryClient.trackEvent() method.
|
|
* The event name used is "BotMessageUpdate".
|
|
*
|
|
* @param activity Current activity sent from user.
|
|
*/
|
|
protected onUpdateActivity(activity: Activity): Promise<void>;
|
|
/**
|
|
* Invoked when the bot deletes a message.
|
|
* Performs logging of telemetry data using the botTelemetryClient.trackEvent() method.
|
|
* The event name used is "BotMessageDelete".
|
|
*
|
|
* @param activity Current activity sent from user.
|
|
*/
|
|
protected onDeleteActivity(activity: Activity): Promise<void>;
|
|
/**
|
|
* Fills the Application Insights Custom Event properties for BotMessageReceived.
|
|
* These properties are logged in the custom event when a new message is received from the user.
|
|
*
|
|
* @param activity Last activity sent from user.
|
|
* @param telemetryProperties Additional properties to add to the event.
|
|
* @returns A dictionary that is sent as "Properties" to botTelemetryClient.trackEvent method.
|
|
*/
|
|
protected fillReceiveEventProperties(activity: Activity, telemetryProperties?: Record<string, string>): Promise<Record<string, string>>;
|
|
/**
|
|
* Fills the Application Insights Custom Event properties for BotMessageSend.
|
|
* These properties are logged in the custom event when a response message is sent by the Bot to the user.
|
|
*
|
|
* @param activity - Last activity sent from user.
|
|
* @param telemetryProperties Additional properties to add to the event.
|
|
* @returns A dictionary that is sent as "Properties" to botTelemetryClient.trackEvent method.
|
|
*/
|
|
protected fillSendEventProperties(activity: Activity, telemetryProperties?: Record<string, string>): Promise<Record<string, string>>;
|
|
/**
|
|
* Fills the event properties for BotMessageUpdate.
|
|
* These properties are logged when an activity message is updated by the Bot.
|
|
* For example, if a card is interacted with by the use, and the card needs to be updated to reflect
|
|
* some interaction.
|
|
*
|
|
* @param activity - Last activity sent from user.
|
|
* @param telemetryProperties Additional properties to add to the event.
|
|
* @returns A dictionary that is sent as "Properties" to botTelemetryClient.trackEvent method.
|
|
*/
|
|
protected fillUpdateEventProperties(activity: Activity, telemetryProperties?: Record<string, string>): Promise<Record<string, string>>;
|
|
/**
|
|
* Fills the Application Insights Custom Event properties for BotMessageDelete.
|
|
* These properties are logged in the custom event when an activity message is deleted by the Bot. This is a relatively rare case.
|
|
*
|
|
* @param activity - Last activity sent from user.
|
|
* @param telemetryProperties Additional properties to add to the event.
|
|
* @returns A dictionary that is sent as "Properties" to botTelemetryClient.trackEvent method.
|
|
*/
|
|
protected fillDeleteEventProperties(activity: Activity, telemetryProperties?: Record<string, string>): Promise<Record<string, string>>;
|
|
private populateAdditionalChannelProperties;
|
|
}
|
|
//# sourceMappingURL=telemetryLoggerMiddleware.d.ts.map
|