in extensions/applicationinsights-debugplugin-js/sample/public/sample.js [44:149]
function myFunc() {
// all trackers
// var toTrack = [
// 'trackEvent',
// 'trackPageView',
// 'trackPageViewPerformance',
// 'trackException',
// 'trackTrace',
// 'trackMetric',
// 'trackDependencyData',
// 'throwInternal', // called when a message is logged internally
// 'logInternalMessage', // called when a message is logged internally
// 'triggerSend', // called when data is queued to be sent to the server
// '_sender', // called when data is sent to the server
// ];
// error handling functions
var toTrack = [
'trackException',
'trackTrace',
'throwInternal',
'logInternalMessage'
];
var debugPlugin = Microsoft.ApplicationInsights.DebugPlugin;
var debugPluginInstance = new debugPlugin();
// Application Insights Configuration
var configObj = {
instrumentationKey: "MyInstrumentationKey",
appId: "OSKAR",
disableFetchTracking: false,
enableCorsCorrelation: true,
disableCorrelationHeaders: false,
maxBatchInterval: 5000,
extensions: [
debugPluginInstance
],
extensionConfig: { },
correlationHeaderDomains: ["oskarsvc", "localhost"],
enablePerfMgr: true
};
configObj.extensionConfig[debugPlugin.identifier] = {
trackers: toTrack,
//logProcessTelemetry: true,
maxMessages: 50
};
var appInsights = new Microsoft.ApplicationInsights.ApplicationInsights({ config: configObj });
appInsights.loadAppInsights();
var testBtnFns = {
trackEvent: function () { appInsights.trackEvent({name: 'some event'}); },
trackPageView: function () { appInsights.trackPageView({name: 'some page'}); },
trackPageViewPerformance: function () { appInsights.trackPageViewPerformance({name : 'some page', url: 'some url'}); },
trackException: function () { appInsights.trackException({exception: new Error('some error')}); },
trackTrace: function () { appInsights.trackTrace({message: 'some trace'}); },
trackMetric: function () { appInsights.trackMetric({name: 'some metric', average: 42}); },
trackDependencyData: function () { appInsights.trackDependencyData({absoluteUrl: 'some url', responseCode: 200, method: 'GET', id: 'some id'}); },
triggerErrorImmediate: function () {
throw new Error('testErrorImmediate');
},
triggerErrorAsync: function () {
setTimeout(function() {throw new Error('testErrorAsync')}, 1000);
},
throwInternal: function () {
appInsights.core.logger.throwInternal(1, 42069, 'test internal err');
},
send: function () {
var idx = appInsights.core._extensions.findIndex(function(v) { return v.identifier === 'ChannelControllerPlugin' });
appInsights.core._extensions[idx].getChannelControls()[0][0].triggerSend();
}
};
var container = document.createElement('div');
container.style.position = 'absolute';
container.style.margin = 'auto';
container.style.top = '0';
container.style.left = '0';
container.style.bottom = '0';
container.style.right = '0';
container.style.width = "300px";
container.style.height = 24 * 11 + 'px';
container.style.zIndex = '-1';
var keys = Object.keys(testBtnFns);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
var fn = testBtnFns[key];
var btn = document.createElement('button');
btn.style.display = 'block';
btn.style.width = '300px';
btn.style.height = '24px';
btn.style.background = '#0078D4';
btn.style.color = "#FFFFFF";
btn.style.borderRadius = '2px';
btn.style.border = 'none';
btn.style.margin = '5px 0';
btn.textContent = "trigger " + key;
btn.onclick = fn;
container.appendChild(btn);
}
document.body.appendChild(container);
}