【问题标题】:How to turn off Application Insights performance counters and tracking telemetry in .Net Core 3.1 web app如何在 .Net Core 3.1 Web 应用程序中关闭 Application Insights 性能计数器和跟踪遥测
【发布时间】:2022-01-15 04:22:46
【问题描述】:

如何在 .Net Core 3.1 Web 应用程序中关闭 Application Insights 性能计数器和跟踪遥测? 我试图像这样禁用这些模块:

ApplicationInsightsServiceOptions aiOptions = new ApplicationInsightsServiceOptions();

aiOptions.EnablePerformanceCounterCollectionModule = false;
aiOptions.EnableDependencyTrackingTelemetryModule = false;

services.AddApplicationInsightsTelemetry(aiOptions);

但这似乎不起作用。

【问题讨论】:

  • 你为什么不直接卸载 AI NuGet 包?
  • 因为我希望它们仅在暂存环境中被关闭。
  • 您的代码似乎在做正确的事情。您如何确认它不起作用?
  • 因为重新部署后AI应用中还有性能计数器。

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


【解决方案1】:
  • 如图所示修改您的 startup.cs。您有两种选择。

第一个完全禁用性能计数器。

public void ConfigureServices(IServiceCollection services)
{
    var serviceDescriptor = services.FirstOrDefault(descriptor => descriptor.ImplementationType == typeof(PerformanceCollectorModule));
    services.Remove(serviceDescriptor);
}

或第二个会删除单个计数器,您可以稍后添加自己的计数器。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    var modules = app.ApplicationServices.GetServices<ITelemetryModule>();
    var perfModule = modules.OfType<PerformanceCollectorModule>().First();
    perfModule.DefaultCounters.Clear();
}

更多详情请参考Disabling Application Insights for ASP.NET Core with Visual StudioRemoving TelemetryInitializersEnableRequestTrackingTelemetryModuleSO

【讨论】:

    猜你喜欢
    • 2017-03-08
    • 2021-11-12
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多