Режим разработчика Application Insights не работает в ASP. NET Core 3.1 - PullRequest
1 голос
/ 12 июля 2020

Я использую Application Insights в ASP. NET приложении Core 3.1 с приведенным ниже кодом.

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            ApplicationInsightsServiceOptions aiOptions = new ApplicationInsightsServiceOptions();
            aiOptions.DeveloperMode = true;
            services.AddApplicationInsightsTelemetry(aiOptions);
        }

Как вы можете видеть, я включил режим разработчика, чтобы гарантировать, что данные телеметрии нажал сразу (вместо того, чтобы ждать 2-5 минут). Однако, похоже, это не работает.

Есть идеи, как заставить его работать?

Ответы [ 2 ]

3 голосов
/ 12 июля 2020

DeveloperMode просто означает, что канал SDK не буферизует элементы телеметрии в памяти. Обычное поведение - телеметрия буферизуется в памяти, и каждые 30 секунд или когда в буфере содержится 500 элементов, они отправляются на серверную часть. В режиме разработчика каждый элемент просто отправляется без буферизации.

Телеметрия будет видна на портале Azure обычно через 3-10 минут (в зависимости от задержек backend / indexing / et c., Не контролируется SDK). При включении режима разработчика отключается только буферизация уровня SDK, что приводит к максимальному «усилению» 30 se c. Для отображения телеметрии на портале может потребоваться несколько минут.

(Целью режима разработчика является мгновенное отображение данных на локальном уровне. Т.е. сама Visual Studio показывает телеметрию во время отладки. Для этого разработчика не требуется явно включен. Присоединение отладчика автоматически включает режим разработчика)

0 голосов
/ 12 июля 2020

Работало ли это до того, как вы включили режим разработчика?

Когда вы регистрируете аналитические данные приложения в контейнере DI, например,

services.AddApplicationInsightsTelemetry()

Он автоматически предполагает, что у вас есть настройки приложения. json файл объекта json с ключом инструментария

  "ApplicationInsights": {
    "InstrumentationKey": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  },

То же самое, когда вы развертываете его как веб-приложение azure, оно автоматически создает для вас переменную конфигурации.

Я бы хотел Предлагаем вам явно передать ключ инструментария в ApplicationInsightsServiceOptions, чтобы убедиться, что он загружен правильно.

ApplicationInsightsServiceOptions aiOptions = new ApplicationInsightsServiceOptions();
aiOptions.InstrumentationKey("xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
aiOptions.DeveloperMode = true;
services.AddApplicationInsightsTelemetry(aiOptions);
...