Функция пульса из AppInsights не отображается на портале Azure - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь настроить функцию сердцебиения в AppInsights SDK, но у меня возникли некоторые проблемы.

У меня есть простое приложение (просто проект по умолчанию ASP.net core 2.2, созданный с помощью нового веб-приложения dotnet), работающее в кластере k8 в Azure и настроенное со следующими параметрами:

public void ConfigureServices(IServiceCollection services)
        {
            ApplicationInsightsServiceOptions aiOptions
                                = new ApplicationInsightsServiceOptions();
            // Disables adaptive sampling.
            aiOptions.EnableAdaptiveSampling = false;

            // Disables QuickPulse (Live Metrics stream).
            aiOptions.EnableQuickPulseMetricStream = false;
            aiOptions.InstrumentationKey = InstrumentationKey;
            aiOptions.EnableHeartbeat=true;
            services.AddApplicationInsightsTelemetry(aiOptions);

            services.Configure<CookiePolicyOptions>(options =>
            {
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddApplicationInsightsKubernetesEnricher();

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }

Однако я не вижу никаких свойств в Application Insights, связанных с функционированием пульса. Я могу видеть другие вещи, такие как имя стручка kubernetes и т. Д.

Мне не хватает какой-то конфигурации?

Спасибо.

1 Ответ

0 голосов
/ 09 июля 2019

Функция Heartbeat включена по умолчанию в базовом SDK 2.5.0, а возможность настройки Heartbeat была добавлена ​​в 2.3.0-beta1.

Я бы предложил вам изменить файл запуска, как показано ниже:

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

    ApplicationInsightsServiceOptions aiOpts = 
      new ApplicationInsightsServiceOptions();
    aiOpts.EnableHeartbeat = true; // false to disable
    services.AddApplicationInsightsTelemetry(aiOpts);
    ...
}

Также добавьте using Microsoft.ApplicationInsights.AspNetCore.Extensions; в начало вашего файла.Сконфигурируйте функцию Heartbeat в коде, изменив IHeartbeatPropertyManager напрямую.Это можно сделать, когда вы впервые получите менеджера по недвижимости через TelemetryModules.Instance singleton.

 foreach (var md in TelemetryModules.Instance.Modules)
  {
    if (md is IHeartbeatPropertyManager heartbeatPropertyMan)
    {
      heartbeatPropertyMan.HeartbeatInterval = TimeSpan.FromMinutes(5.0);
      heartbeatPropertyMan.ExcludedHeartbeatProperties.Add("osType");
      ...

Попробуйте и посмотрите, поможет ли это.

...