是否可以使用 ASP .NET Core 应用程序将性能监视器指标添加到 AppInsights?

Is it possible to add performance monitor metrics to AppInsights with an ASP .NET Core app?

我们是 运行 一个 ASP .NET 核心应用程序,并将其配置为将遥测数据发送到 AppInsights。我还想在支持 AppInsights 中的应用程序的服务器上收集 perf mon 计数器,例如内存和 CPU 使用情况。这可能吗?我在 AppInsights 中使用我们的标准 .NET 应用程序配置了 perf mon 计数器,但看不到如何使用 .NET Core 对其进行配置。

如果您 ASP.NET 核心应用程序是在完整框架 NET 4.5.1(及更高版本)下编译的,那么应该可以通过在代码中添加计数器来实现,例如:

Type perfModuleType = typeof(PerformanceCollectorModule);

PerformanceCollectorModule perfModule = (PerformanceCollectorModule)server.ApplicationServices.GetServices<ITelemetryModule>()
.FirstOrDefault(m => m.GetType() == perfModuleType);

perfModule.Counters.Add(
      new PerformanceCounterCollectionRequest(
          @"\.NET CLR Memory(??APP_CLR_PROC??)\# GC Handles", "GC Handles"));

如果它被编译为纯 netcoreapp,那么目前不支持它。