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

时间:2017-10-06 00:11:16

标签: asp.net-core performancecounter azure-application-insights

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

1 个答案:

答案 0 :(得分:2)

如果ASP.NET Core应用程序是在完整的.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,那么目前它不受支持。