Azure AppInsights default TelemetryInitializer - Javascript SDK - PullRequest
0 голосов
/ 08 июня 2019

Я использую версию AppInsights для NPM и не могу подключить этот инициализатор телеметрии к каждому исходящему конверту:

import { ApplicationInsights } from '@microsoft/applicationinsights-web'
appInsights = new ApplicationInsights({ config: {
  instrumentationKey: 'removed',
  autoTrackPageVisitTime: true
}});

appInsights.loadAppInsights();

var userInitializer = (envelope) => {
  var telemetryItem = envelope.baseData;
  telemetryItem.properties = telemetryItem.properties || {};
  telemetryItem.properties["role"] = userProfile.role;
}
appInsights.queue.push(function () {
  appInsights.context.addTelemetryInitializer(userInitializer);
});

Проблема в том, что appInsights.queue всегда неопределен. Единственное, что мне удалось найти, - это завернуть его в проверку, чтобы убедиться, что он не пытается выполнить дважды, но здесь это не так, он никогда не выполняется. Инициализатор телеметрии работает нормально, если я вызываю его индивидуально перед каждым отслеживанием, как это:

appInsights.addTelemetryInitializer(userInitializer);
appInsights.trackPageView();

Когда я console.log (appInsights), определенно никогда не бывает свойства очереди, но оно используется таким образом в каждом примере.

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Вы должны быть в состоянии просто сделать

appInsights.addTelemetryInitializer(userInitializer);
0 голосов
/ 10 июня 2019

Это происходит, когда код вызывается дважды, и во второй раз больше нет "queue".Решение состоит в том, чтобы иметь фрагмент кода с проверкой

if (this.AppInsights.queue) {
        this.AppInsights.queue.push(function() { 
        this.AppInsights.context.addTelemetryInitializer(function(envelope) {
        var telemetryItem = envelope.data.baseData;

        telemetryItem.Properties = telemetryItem.Properties || {};
        telemetryItem.Properties["prop1"] = "This is a custom property";
        telemetryItem.Properties["prop2"] = "This is another custom property";
      });
    });
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...