Skip to content
This repository was archived by the owner on Jun 30, 2022. It is now read-only.

Commit 67f219b

Browse files
enzocanolzc850612
authored andcommitted
[TypeScript][BotBuilder-Solutions] Update telemetry integration (#1322)
* Update telemetry integration * Update telemetry implementation in sample-assistant * Update telemetry implementation in sample-skill * Update version of botbuilder-libs * Update VA template * Update skill template
1 parent 3fc1e48 commit 67f219b

File tree

40 files changed

+437
-807
lines changed

40 files changed

+437
-807
lines changed

lib/typescript/botbuilder-skills/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "botbuilder-skills",
3-
"version": "4.4.3",
3+
"version": "4.4.5",
44
"description": "Shared library for building Conversational AI Skills.",
55
"author": "Microsoft",
66
"license": "MIT",
@@ -20,7 +20,7 @@
2020
"botbuilder-azure": "^4.4.0",
2121
"botbuilder-core": "^4.4.0",
2222
"botbuilder-dialogs": "^4.4.0",
23-
"botbuilder-solutions": "^4.4.3",
23+
"botbuilder-solutions": "^4.4.5",
2424
"botframework-config": "^4.4.0",
2525
"botframework-connector": "^4.4.0",
2626
"botframework-schema": "^4.4.0",

lib/typescript/botbuilder-skills/src/http/skillHttpAdapter.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { BotFrameworkAdapter, BotFrameworkAdapterSettings, BotTelemetryClient, InvokeResponse,
22
Severity, TurnContext, WebRequest, WebResponse } from 'botbuilder';
3-
import { TelemetryExtensions } from 'botbuilder-solutions';
43
import { Activity } from 'botframework-schema';
54
import { IActivityHandler } from '../activityHandler';
65
import { IAuthenticationProvider } from '../auth';
@@ -52,7 +51,10 @@ export class SkillHttpAdapter extends BotFrameworkAdapter {
5251

5352
if (this.telemetryClient) {
5453
const message: string = `SkillHttpAdapter: Processing incoming activity. Activity id: ${activity.id}`;
55-
TelemetryExtensions.trackTraceEx(this.telemetryClient, message, Severity.Information, activity);
54+
this.telemetryClient.trackTrace({
55+
message: message,
56+
severityLevel: Severity.Information
57+
});
5658
}
5759

5860
// process the inbound activity with the bot

lib/typescript/botbuilder-skills/src/http/skillHttpBotAdapter.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { BotAdapter, BotTelemetryClient, InvokeResponse, Severity, TurnContext } from 'botbuilder';
2-
import { ActivityExtensions, IRemoteUserTokenProvider, TelemetryExtensions } from 'botbuilder-solutions';
2+
import { ActivityExtensions, IRemoteUserTokenProvider } from 'botbuilder-solutions';
33
import { Activity, ActivityTypes, ConversationReference, ResourceResponse } from 'botframework-schema';
44
import { v4 as uuid } from 'uuid';
55
import { BotCallbackHandler, IActivityHandler } from '../activityHandler';
@@ -62,15 +62,21 @@ export class SkillHttpBotAdapter extends BotAdapter implements IActivityHandler,
6262

6363
public async processActivity(activity: Activity, callback: BotCallbackHandler): Promise<InvokeResponse> {
6464
const messageIn: string = `SkillHttpBotAdapter: Received an incoming activity. Activity id: ${activity.id}`;
65-
TelemetryExtensions.trackTraceEx(this.telemetryClient, messageIn, Severity.Information, activity);
65+
this.telemetryClient.trackTrace({
66+
message: messageIn,
67+
severityLevel: Severity.Information
68+
});
6669

6770
// Process the Activity through the Middleware and the Bot, this will generate Activities which we need to send back.
6871
const context: TurnContext = new TurnContext(this, activity);
6972

7073
await this.runMiddleware(context, callback);
7174

7275
const messageOut: string = `SkillHttpBotAdapter: Batching activities in the response. ReplyToId: ${activity.id}`;
73-
TelemetryExtensions.trackTraceEx(this.telemetryClient, messageOut, Severity.Information, activity);
76+
this.telemetryClient.trackTrace({
77+
message: messageOut,
78+
severityLevel: Severity.Information
79+
});
7480

7581
// Any Activity responses are now available (via SendActivitiesAsync) so we need to pass back for the response
7682
return {

lib/typescript/botbuilder-skills/src/websocket/skillWebSocketBotAdapter.ts

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { BotAdapter, BotTelemetryClient, InvokeResponse, Middleware, NullTelemetryClient,
22
ResourceResponse, Severity, TurnContext } from 'botbuilder';
3-
import { ActivityExtensions, IRemoteUserTokenProvider, TelemetryExtensions, TokenEvents } from 'botbuilder-solutions';
3+
import { ActivityExtensions, IRemoteUserTokenProvider, TokenEvents } from 'botbuilder-solutions';
44
import { Activity, ActivityTypes, ConversationReference } from 'botframework-schema';
55
import { CancellationToken, ContentStream, ReceiveResponse, Request } from 'microsoft-bot-protocol';
66
import { Server } from 'microsoft-bot-protocol-websocket';
@@ -33,7 +33,10 @@ export class SkillWebSocketBotAdapter extends BotAdapter implements IActivityHan
3333
*/
3434
public async processActivity(activity: Activity, callback: BotCallbackHandler): Promise<InvokeResponse> {
3535
const message: string = `Received an incoming activity. ActivityId: ${activity.id}`;
36-
TelemetryExtensions.trackTraceEx(this.telemetryClient, message, Severity.Information, activity);
36+
this.telemetryClient.trackTrace({
37+
message: message,
38+
severityLevel: Severity.Information
39+
});
3740

3841
const context: TurnContext = new TurnContext(this, activity);
3942
await this.runMiddleware(context, callback);
@@ -79,7 +82,10 @@ export class SkillWebSocketBotAdapter extends BotAdapter implements IActivityHan
7982
request.setBody(activity);
8083

8184
const message: string = `Sending activity. ReplyToId: ${activity.replyToId}`;
82-
TelemetryExtensions.trackTraceEx(this.telemetryClient, message, Severity.Information, activity);
85+
this.telemetryClient.trackTrace({
86+
message: message,
87+
severityLevel: Severity.Information
88+
});
8389

8490
const begin: [number, number] = process.hrtime();
8591
response = await this.sendRequest<ResourceResponse>(request);
@@ -88,7 +94,10 @@ export class SkillWebSocketBotAdapter extends BotAdapter implements IActivityHan
8894
const latency: { latency: number } = { latency: toMilliseconds(end) };
8995

9096
const event: string = 'SkillWebSocketSendActivityLatency';
91-
TelemetryExtensions.trackEventEx(this.telemetryClient, event, activity, undefined, undefined, latency);
97+
this.telemetryClient.trackEvent({
98+
name: event,
99+
metrics: latency
100+
});
92101

93102
// If No response is set, then default to a "simple" response. This can't really be done
94103
// above, as there are cases where the ReplyTo/SendTo methods will also return null
@@ -111,7 +120,10 @@ export class SkillWebSocketBotAdapter extends BotAdapter implements IActivityHan
111120
request.setBody(activity);
112121

113122
const message: string = `Updating activity. activity id: ${activity.replyToId}`;
114-
TelemetryExtensions.trackTraceEx(this.telemetryClient, message, Severity.Information, activity);
123+
this.telemetryClient.trackTrace({
124+
message: message,
125+
severityLevel: Severity.Information
126+
});
115127

116128
const begin: [number, number] = process.hrtime();
117129
await this.sendRequest<ResourceResponse>(request);
@@ -120,23 +132,33 @@ export class SkillWebSocketBotAdapter extends BotAdapter implements IActivityHan
120132
const latency: { latency: number } = { latency: toMilliseconds(end) };
121133

122134
const event: string = 'SkillWebSocketUpdateActivityLatency';
123-
TelemetryExtensions.trackEventEx(this.telemetryClient, event, activity, undefined, undefined, latency);
135+
this.telemetryClient.trackEvent({
136+
name: event,
137+
metrics: latency
138+
});
124139
}
125140

126141
public async deleteActivity(context: TurnContext, reference: Partial<ConversationReference>): Promise<void> {
127142
const requestPath: string = `/activities/${reference.activityId}`;
128143
const request: Request = Request.create('DELETE', requestPath);
129144

130145
const message: string = `Deleting activity. activity id: ${reference.activityId}`;
131-
TelemetryExtensions.trackTraceEx(this.telemetryClient, message, Severity.Information, {});
146+
this.telemetryClient.trackTrace({
147+
message: message,
148+
severityLevel: Severity.Information
149+
});
132150

133151
const begin: [number, number] = process.hrtime();
134152
await this.sendRequest<ResourceResponse>(request);
135153
const end: [number, number] = process.hrtime(begin);
136154

137155
const latency: { latency: number } = { latency: toMilliseconds(end) };
138156

139-
TelemetryExtensions.trackEventEx(this.telemetryClient, 'SkillWebSocketDeleteActivityLatency', {}, undefined, undefined, latency);
157+
const event: string = 'SkillWebSocketDeleteActivityLatency';
158+
this.telemetryClient.trackEvent({
159+
name: event,
160+
metrics: latency
161+
});
140162
}
141163

142164
public async continueConversation(reference: Partial<ConversationReference>, logic: BotCallbackHandler): Promise<void> {
@@ -167,7 +189,10 @@ export class SkillWebSocketBotAdapter extends BotAdapter implements IActivityHan
167189
return JSON.parse(body);
168190
}
169191
} catch (error) {
170-
TelemetryExtensions.trackExceptionEx(this.telemetryClient, error, {});
192+
this.telemetryClient.trackException({
193+
exception: error,
194+
handledAt: SkillWebSocketBotAdapter.name
195+
});
171196

172197
throw error;
173198
}

lib/typescript/botbuilder-skills/src/websocket/skillWebSocketRequestHandler.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
*/
55

66
import { BotTelemetryClient, InvokeResponse } from 'botbuilder';
7-
import { TelemetryExtensions } from 'botbuilder-solutions';
87
import { Activity } from 'botframework-schema';
98
import { ContentStream, ReceiveRequest, RequestHandler, Response } from 'microsoft-bot-protocol';
109
import { BotCallbackHandler, IActivityHandler } from '../activityHandler';
@@ -50,7 +49,10 @@ export class SkillWebSocketRequestHandler extends RequestHandler {
5049
const latency: { latency: number } = { latency: toMilliseconds(end) };
5150

5251
const event: string = 'SkillWebSocketProcessRequestLatency';
53-
TelemetryExtensions.trackEventEx(this.telemetryClient, event, activity, undefined, undefined, latency);
52+
this.telemetryClient.trackEvent({
53+
name: event,
54+
metrics: latency
55+
});
5456

5557
if (!invokeResponse) {
5658
response.statusCode = 200;
@@ -61,7 +63,7 @@ export class SkillWebSocketRequestHandler extends RequestHandler {
6163
}
6264
}
6365
} catch (error) {
64-
TelemetryExtensions.trackExceptionEx(this.telemetryClient, error, {});
66+
this.telemetryClient.trackException({ exception: error });
6567
response.statusCode = 500;
6668
}
6769

lib/typescript/botbuilder-solutions/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "botbuilder-solutions",
3-
"version": "4.4.3",
3+
"version": "4.4.5",
44
"description": "Shared library for Conversational AI Virtual Assistants and Skills.",
55
"author": "Microsoft",
66
"license": "MIT",

lib/typescript/botbuilder-solutions/src/cognitiveModelSet.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
* Licensed under the MIT License.
44
*/
55

6-
import { ITelemetryLuisRecognizer, ITelemetryQnAMaker } from './telemetry';
6+
import { LuisRecognizerTelemetryClient, QnAMakerTelemetryClient } from 'botbuilder-ai';
77

88
export interface ICognitiveModelSet {
9-
dispatchService: ITelemetryLuisRecognizer;
10-
luisServices: Map<string, ITelemetryLuisRecognizer>;
11-
qnaServices: Map<string, ITelemetryQnAMaker>;
9+
dispatchService: LuisRecognizerTelemetryClient;
10+
luisServices: Map<string, LuisRecognizerTelemetryClient>;
11+
qnaServices: Map<string, QnAMakerTelemetryClient>;
1212
}

lib/typescript/botbuilder-solutions/src/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ export * from './resources';
1515
export * from './responses';
1616
export * from './skills';
1717
export * from './taskExtensions';
18-
export * from './telemetry';
1918
export * from './util';
2019
export * from './botSettings';
2120
export * from './cognitiveModelSet';

lib/typescript/botbuilder-solutions/src/telemetry/index.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

lib/typescript/botbuilder-solutions/src/telemetry/telemetryExtensions.ts

Lines changed: 0 additions & 53 deletions
This file was deleted.

0 commit comments

Comments
 (0)