Application Insights в настольном приложении не отправляет счетчики производительности

Я следую этим инструкциям, чтобы < strong> добавить App Insights в классическое приложение Windows. Я добавил в свой код несколько вызовов TrackMetric и TrackException, и данные из них отлично отображаются на портале, так что я знаю, что основная сантехника работает.

На основе этих инструкций , Я затем добавил пакет NuGet AI.Web в свой проект (да, я знаю, что это звучит странно, но это особенно рекомендуется) и отключил все кроме следующих модулей / инициализаторов в файле конфигурации:

  • ДиагностикаТелеметрияМодуль
  • DependencyTrackingTelemetryModule
  • PerformanceCollectorModule
  • DeviceTelemetryInitializer

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

К сожалению, что бы я ни делал, стандартные показатели счетчика производительности не отображаются.

Есть ли что-то еще, что мне нужно сделать, чтобы включить сбор счетчиков перфомансов в настольном приложении?

Заранее благодарим за любую, э-э, информацию ... :)

РЕДАКТИРОВАТЬ. Под «стандартными счетчиками производительности» я подразумеваю счетчики производительности Windows, которые PerformanceCollectorModule якобы отслеживает по умолчанию, согласно инструкции, связанные ранее, в которых говорится:

PerformanceCollectorModule отслеживает ряд счетчиков производительности Windows. Эти счетчики можно увидеть, щелкнув диаграмму в Metric Explorer, чтобы открыть колонку с подробными сведениями.

Вы можете отслеживать дополнительные счетчики производительности - как стандартные счетчики Windows, так и любые другие, которые вы добавили ...

Совершенно очевидно, что мне не нужно добавлять стандартные в файл конфигурации - только любые дополнительные счетчики, которые я хочу включить.


person Bob Meyers    schedule 06.09.2015    source источник
comment
вам не нужно добавлять веб-пакет, счетчик производительности можно установить независимо, просто установив nuget.org/packages/   -  person John Gardner    schedule 09.09.2015
comment
а какую часть инструкции по перфоллектору ты делал? Вы либо в файле конфигурации, либо в коде установили, какие счетчики производительности вы хотите отслеживать? если да, можете ли вы добавить это к своему вопросу?   -  person John Gardner    schedule 09.09.2015


Ответы (2)


В идеале вы должны иметь возможность использовать только пакет nuget Perf Counter Collector на в верхней части базового пакета Application Insights для вашего приложения.

Вам все равно придется настроить, какие счетчики производительности вы хотите отслеживать, либо в файле appinsights.config, либо с помощью кода, который задокументирован в инструкции, на которые вы указали, например:

<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector">
  <Counters>
    <Add PerformanceCounter="\MyCategory\MyCounter" />
    <Add PerformanceCounter="\Process(??APP_WIN32_PROC??)\Handle Count" ReportAs="Process handle count" />
    <!-- ... -->
  </Counters>
</Add>

Я считаю, что веб-SDK просто настраивает кучу счетчиков производительности ASP.NET pipeline / w3wp, которые ничего не делают в стандартном приложении Windows.

person John Gardner    schedule 08.09.2015

Убедитесь, что учетная запись (под которой работает ваше приложение) имеет доступ к счетчикам производительности на этом компьютере (обычно она должна быть просто членом группы «Пользователи монитора производительности»).

person Dmitry Matveev    schedule 08.09.2015
comment
Да, это очень важный шаг, о котором часто забывают. - person BrettJ; 11.09.2015
comment
Мое приложение запускают стандартные пользователи Windows (не администраторы). Я предполагаю, что любой, кто может запускать диспетчер задач и видеть пользовательские процессы с такими показателями, как ЦП, память и т. Д., Также может получить доступ к стандартным счетчикам производительности. - person Bob Meyers; 18.09.2015