Ядро Asp.net, размещенное в функциях Azure с помощью приложения Azure Insights - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть функция Azure, которая реализована с использованием ядра 2.2 Asp.net, которое использует план потребления Windows.Я также использую пакет Microsoft.ApplicationInsights.AspNetCore.Я пытаюсь отключить сбор счетчиков производительности, но до сих пор не удалось.Есть ли способ отключить сбор счетчиков перфорации?

Код, который я использую для удаления модуля счетчиков перф, -

public override void Configure(IFunctionsHostBuilder builder)
{
  var serviceDescriptor = builder.Services.FirstOrDefault(descriptor => descriptor.ImplementationType == typeof(PerformanceCollectorModule));
            builder.Services.Remove(serviceDescriptor);
}

Тем не менее я могу видеть счетчики перф в журнальной аналитике.

enter image description here

1 Ответ

0 голосов
/ 30 сентября 2019

@ Хари Субраманиам,

Я мог бы подумать об определении пустого счетчика, как показано ниже, он удалит счетчик производительности (Выполнение программно, ниже - только пример):

<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
    <DefaultCounters/>
    <Counters>
        <Add PerformanceCounter="Your Custom Counter"/>
    </Counters>
</Add>

Хотяна мой взгляд, вместо того, чтобы отключить его, вы можете попробовать использовать выборку, которую вы можете установить в host.json.

Проверьте это для дополнительной справки:

https://docs.microsoft.com/en-us/azure/azure-monitor/app/configuration-with-applicationinsights-config#adaptive-sampling-telemetry-processor-from-200-beta3

https://docs.microsoft.com/bs-latn-ba/azure/azure-monitor/app/performance-counters

Согласно коду, если инициализатор по умолчанию равен true, он не будет инициализировать другой счетчик

if (!this.defaultCountersInitialized)
                        {
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\Process(??APP_WIN32_PROC??)\% Processor Time", @"\Process(??APP_WIN32_PROC??)\% Processor Time"));
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\Process(??APP_WIN32_PROC??)\% Processor Time Normalized", @"\Process(??APP_WIN32_PROC??)\% Processor Time Normalized"));
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\Memory\Available Bytes", @"\Memory\Available Bytes"));
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec", @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec"));
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\.NET CLR Exceptions(??APP_CLR_PROC??)\# of Exceps Thrown / sec", @"\.NET CLR Exceptions(??APP_CLR_PROC??)\# of Exceps Thrown / sec"));
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time", @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time"));
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\Process(??APP_WIN32_PROC??)\Private Bytes", @"\Process(??APP_WIN32_PROC??)\Private Bytes"));
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\Process(??APP_WIN32_PROC??)\IO Data Bytes/sec", @"\Process(??APP_WIN32_PROC??)\IO Data Bytes/sec"));
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue", @"\ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue"));
                            this.DefaultCounters.Add(new PerformanceCounterCollectionRequest(@"\Processor(_Total)\% Processor Time", @"\Processor(_Total)\% Processor Time"));
                        }

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

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