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