Azure. ApplicationInsights. Необъяснимое сообщение об ошибке в журнале AI

Я настроил ресурс AppllicationInsights на портале Azure. В него записываются 2 службы: служба windows в помещении и служба фабрики обслуживания, работающая в локальном кластере фабрики обслуживания. Я использую объект TelemetryClient в обеих службах для отправки данных на ресурс Azure ApplicationInsights. Похоже, я получаю все сообщения, которые хотел, но есть некоторые сообщения, происхождение которых я не понимаю. Вот пример странного сообщения:

AI: Ошибка сбора 6 из настроенных счетчиков производительности. Пожалуйста, проверьте конфигурацию. Счетчик \ Приложения ASP.NET (??APP_W3SVC_PROC??)\ Запросы / сек. Не удалось выполнить первое чтение для счетчика производительности. Пожалуйста, убедитесь, что он существует. Категория: ASP.NET приложения, счетчик: Requests/Sec, экземпляр SFAIUsingSrv.exe
Счетчик.NET CLR Exceptions(??APP_CLR_PROC??)# of Exceps Throw / sec: Не удалось выполнить первое чтение для счетчика производительности. Пожалуйста, убедитесь, что он существует. Категория: Исключения.NET CLR, счетчик: Количество выданных исключений / сек, экземпляр
Счетчик \ Приложения ASP.NET (??APP_W3SVC_PROC??)\ Время выполнения запроса: не удалось выполнить первое чтение для счетчика производительности. Пожалуйста, убедитесь, что он существует. Категория: Приложения ASP.NET, счетчик: Время выполнения запроса, экземпляр SFAIUsingSrv.exe
.Counter \ Приложения ASP.NET (??APP_W3SVC_PROC??)\ Запросы в очереди приложений: не удалось выполнить первое чтение для счетчика производительности. Пожалуйста, убедитесь, что он существует. Категория: Приложения ASP.NET, счетчик: Запросы в очереди приложений, экземпляр SFAIUsingSrv.exe
Счетчик \Process(??APP_W3SVC_PROC??)\Handle Count: Не удалось выполнить первое чтение для счетчика производительности. Пожалуйста, убедитесь, что он существует. Категория: Процесс, счетчик: Handle Count, instance SFAIUsingSrv.exe
Счетчик \ Приложения ASP.NET (??APP_W3SVC_PROC??)\ Запросы / сек. Не удалось выполнить первое чтение для счетчика производительности. Пожалуйста, убедитесь, что он существует. Категория: ASP.NET приложения, счетчик: Requests/Sec, экземпляр SFAIUsingSrv.exe

Вот мой ApplicationInsights.config для сервисной фабричной службы:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
  <InstrumentationKey>some instrumentation key</InstrumentationKey>
  <TelemetryInitializers>
        <Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer"/>
    </TelemetryInitializers>
    <TelemetryModules>
        <Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector">
            <ExcludeComponentCorrelationHttpHeadersOnDomains>
                <!-- 
        Requests to the following hostnames will not be modified by adding correlation headers. 
        This is only applicable if Profiler is installed via either StatusMonitor or Azure Extension.
        Add entries here to exclude additional hostnames.
        NOTE: this configuration will be lost upon NuGet upgrade.
        -->
                <Add>core.windows.net</Add>
                <Add>core.chinacloudapi.cn</Add>
                <Add>core.cloudapi.de</Add>
                <Add>core.usgovcloudapi.net</Add>
                <Add>localhost</Add>
                <Add>127.0.0.1</Add>
            </ExcludeComponentCorrelationHttpHeadersOnDomains>
        </Add>
        <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
     <!--      
      The following placeholders are supported as InstanceName:
        ??APP_WIN32_PROC?? - instance name of the application process  for Win32 counters.
        ??APP_W3SVC_PROC?? - instance name of the application IIS worker   process for IIS/ASP.NET counters.
        ??APP_CLR_PROC?? - instance name of the application CLR process for .NET counters.
-->
        </Add>
        <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer">
            <!--</Add>
    <Add Type="Microsoft.ApplicationInsights.WindowsServer.FirstChanceExceptionStatisticsTelemetryModule, Microsoft.AI.WindowsServer">
-->
        </Add>
    </TelemetryModules>
    <TelemetryProcessors>
        <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
        <Add Type="Microsoft.ApplicationInsights.Extensibility.AutocollectedMetricsExtractor, Microsoft.ApplicationInsights"/>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
            <ExcludedTypes>Event</ExcludedTypes>
        </Add>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
            <IncludedTypes>Event</IncludedTypes>
        </Add>
    </TelemetryProcessors>
    <TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel"/>
<!-- 
    Learn more about Application Insights configuration with ApplicationInsights.config here: 
    http://go.microsoft.com/fwlink/?LinkID=513840

    Note: If not present, please add <InstrumentationKey>Your Key</InstrumentationKey> to the top of this file.
  -->
</ApplicationInsights>

Кто-нибудь может помочь мне понять, почему я получаю эти сообщения?

РЕДАКТИРОВАТЬ: Это были мои услуги (службы Windows и службы Service Fabric), которые производили эти сообщения. И обе эти службы работали на моем компьютере для разработки. Поэтому было довольно странно видеть эти сообщения, связанные с веб-приложениями, когда нет никаких веб-приложений. Но затем я прокомментировал раздел PerformanceCounterCollector в файле ApplicationInsights.config, сообщения больше не создаются, если я найду способ работать с этими сообщениями более дружественным образом, я обновлю свой вопрос.

EDIT2: эти сообщения отображаются только при запуске служб.

РЕДАКТИРОВАТЬ3: Вот все пакеты самородок, установленные для сервисной фабричной службы:

1 ответ

Решение

Если это веб-приложение Azure, Azure предоставляет только подмножество перфконтеров, они несколько документированы здесь:

https://github.com/Microsoft/ApplicationInsights-dotnet-server/blob/develop/Src/PerformanceCollector/Shared/Implementation/WebAppPerformanceCollector/CounterFactory.cs

Если вы управляете сервером, вам необходимо убедиться, что любой пользователь, на котором запущен этот веб-сайт / пул IIS, является членом Performance Monitor Users группа, чтобы он мог читать счетчики перфорации.

Эти сообщения поступают из конфигурации по умолчанию пакета PerfCounterCollector, который включен в пакет WindowsServer, который вы можете увидеть здесь в исходном коде github для сборщика счетчика перфорации.

если вы вообще не используете сборщик производительности и просто хотите, чтобы все исчезло, вы можете удалить всю

<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
...stuff about perf counters here...
</Add>

раздел и Application Insights перестанут пытаться собирать счетчики перфораторов целиком.

Другие вопросы по тегам