Follow these steps:
- Create an Application Insights service under your subscription.
- Use the
Instrumentation Key
inside your bot registration page under Instrumentation key. - Under the App Insights serivce, go to API Access and copy Application ID
- Under the App Insights serivce, go to API Access >> New Key with Read permissions and copy Api Key.
Create a new Sentiment Analisys Service under Cognitive Services. When creating the service, make sure to mark Text Analytics - Preview.
APPINSIGHTS_INSTRUMENTATIONKEY={App Insights Instrumentation Key}
CG_SENTIMENT_KEY={Cognitive Services Text Analytics Key}
var instrumentation = require('botbuilder-instrumentation');
// Setting up advanced instrumentation
let logging = new instrumentation.BotFrameworkInstrumentation({
instrumentationKey: process.env.APPINSIGHTS_INSTRUMENTATIONKEY,
sentimentKey: process.env.CG_SENTIMENT_KEY,
});
logging.monitor(bot);
var instrumentation = require('botbuilder-instrumentation');
// Setting up advanced instrumentation
let logging = new instrumentation.BotFrameworkInstrumentation({
instrumentationKey: ["main insturmnation key","secondary instumentation key"],
sentimentKey: process.env.CG_SENTIMENT_KEY,
});
logging.monitor(bot);
var instrumentation = require('botbuilder-instrumentation');
// Setting up advanced instrumentation
let logging = new instrumentation.BotFrameworkInstrumentation({
instrumentationKey: ["main insturmnation key","secondary instumentation key"],
sentimentKey: process.env.CG_SENTIMENT_KEY,
});
logging.monitor(bot);
//hook into the result function of QNA to extract relevant data for logging.
loggins.trackQNAEvent(context, userQuery, kbQuestion, kbAnswer, score);
//You can see a working sample in [https://github.com/Microsoft/BotBuilder-CognitiveServices/tree/master/Node/samples/QnAMakerWithFunctionOverrides](https://github.com/Microsoft/BotBuilder-CognitiveServices/tree/master/Node/samples/QnAMakerWithFunctionOverrides)
var instrumentation = require('botbuilder-instrumentation');
// Setting up advanced instrumentation
let logging = new instrumentation.BotFrameworkInstrumentation({
instrumentationKey: ["main insturmnation key","secondary instumentation key"],
sentimentKey: process.env.CG_SENTIMENT_KEY,
});
logging.monitor(bot);
let customEventName = 'myCustomEventName'; //This will show up as the event name in Application Insights.
let customEventData = { customeDataA: 'customValueA', customDataB: 3 };
logging.trackCustomEvent(context, customEventName, customEventData); //Custom key-value data. It will be avaiable under the customDimentions column in Application Insights.
You can see a working sample in https://github.com/morsh/bot-with-instrumentation