在没有配置文件的情况下创建ApplicationSight TelemetryConfiguration

发布于 2025-02-09 06:07:18 字数 2470 浏览 1 评论 0原文

I dont know if it's posssible to create full TelemetryConfiguration without applicationInsight.config

I see there are TelemetryInitializers.Add it working well

but nothing for the configs

  • TelemetryModules (present in config file but not on the class)
  • DefaultTelemetrySink.TelemetryProcessors (present in the config file但是,在类中没有添加方法

。我想摆脱配置文件,因为我想在公共库中使用遥控文件。并且不想在最终库中添加许多配置文件。

我以调试模式查看,并看到了使用 telemetryconfiguration.createdefault()获得的类别之间的许多差异,而当我从Nuget软件包中获得配置文件时,以及当我没有配置文件时获得的。这是我问题的原因。

我拥有的沙发

internal class ApplicationInsightConfig
{
   public TelemetryConfiguration Config { get; }

   public ApplicationInsightConfig()
   {
      Config = TelemetryConfiguration.CreateDefault();
      Config.InstrumentationKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));
      Config.ApplicationIdProvider = new ApplicationInsightsApplicationIdProvider();
      Config.TelemetryChannel.DeveloperMode = false;
      DefineTelemetryInitializers();
      DefineDefaultTelemetrySink();
   }

   private void DefineDefaultTelemetrySink()
   {
      var tp = Config.DefaultTelemetrySink.TelemetryProcessors;
      Config.DefaultTelemetrySink.TelemetryChannel = new ServerTelemetryChannel();
   }

   private void DefineTelemetryInitializers()
   {
      Config.TelemetryInitializers.Add(new AzureAppServiceRoleNameFromHostNameHeaderInitializer());
      Config.TelemetryInitializers.Add(new HttpDependenciesParsingTelemetryInitializer());
      Config.TelemetryInitializers.Add(new AzureRoleEnvironmentTelemetryInitializer());
      Config.TelemetryInitializers.Add(new BuildInfoConfigComponentVersionTelemetryInitializer());
      Config.TelemetryInitializers.Add(new WebTestTelemetryInitializer());
      Config.TelemetryInitializers.Add(new SyntheticUserAgentTelemetryInitializer { Filters = "search|spider|crawl|Bot|Monitor|AlwaysOn" });
      Config.TelemetryInitializers.Add(new ClientIpHeaderTelemetryInitializer());
      Config.TelemetryInitializers.Add(new OperationNameTelemetryInitializer());
      Config.TelemetryInitializers.Add(new UserTelemetryInitializer());
      Config.TelemetryInitializers.Add(new AuthenticatedUserIdTelemetryInitializer());
      Config.TelemetryInitializers.Add(new AccountIdTelemetryInitializer());
      Config.TelemetryInitializers.Add(new SessionTelemetryInitializer());
   }
}

谢谢您的帮助!

I dont know if it's posssible to create full TelemetryConfiguration without applicationInsight.config

I see there are TelemetryInitializers.Add it working well

but nothing for the configs

  • TelemetryModules (present in config file but not on the class)
  • DefaultTelemetrySink.TelemetryProcessors (present in the config file but there are no Add method in the class)

I serarched everywhere for an example of complete configuration via code but did not find anything. I want to get rid of the config file, because I want to use the TelemetryConfiguration in a common library. And don't want to pupulate many config files in end up librairies.

I looking in debug mode and seen many differences between class obtained with TelemetryConfiguration.CreateDefault() when I have the config file obtained from nuget package, and the one obtained when I have no config file. This is the reason of my question.

what I have sofar

internal class ApplicationInsightConfig
{
   public TelemetryConfiguration Config { get; }

   public ApplicationInsightConfig()
   {
      Config = TelemetryConfiguration.CreateDefault();
      Config.InstrumentationKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));
      Config.ApplicationIdProvider = new ApplicationInsightsApplicationIdProvider();
      Config.TelemetryChannel.DeveloperMode = false;
      DefineTelemetryInitializers();
      DefineDefaultTelemetrySink();
   }

   private void DefineDefaultTelemetrySink()
   {
      var tp = Config.DefaultTelemetrySink.TelemetryProcessors;
      Config.DefaultTelemetrySink.TelemetryChannel = new ServerTelemetryChannel();
   }

   private void DefineTelemetryInitializers()
   {
      Config.TelemetryInitializers.Add(new AzureAppServiceRoleNameFromHostNameHeaderInitializer());
      Config.TelemetryInitializers.Add(new HttpDependenciesParsingTelemetryInitializer());
      Config.TelemetryInitializers.Add(new AzureRoleEnvironmentTelemetryInitializer());
      Config.TelemetryInitializers.Add(new BuildInfoConfigComponentVersionTelemetryInitializer());
      Config.TelemetryInitializers.Add(new WebTestTelemetryInitializer());
      Config.TelemetryInitializers.Add(new SyntheticUserAgentTelemetryInitializer { Filters = "search|spider|crawl|Bot|Monitor|AlwaysOn" });
      Config.TelemetryInitializers.Add(new ClientIpHeaderTelemetryInitializer());
      Config.TelemetryInitializers.Add(new OperationNameTelemetryInitializer());
      Config.TelemetryInitializers.Add(new UserTelemetryInitializer());
      Config.TelemetryInitializers.Add(new AuthenticatedUserIdTelemetryInitializer());
      Config.TelemetryInitializers.Add(new AccountIdTelemetryInitializer());
      Config.TelemetryInitializers.Add(new SessionTelemetryInitializer());
   }
}

Thank you for help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蒗幽 2025-02-16 06:07:18

我认为您在正确的道路上。设置遥测通道可能会稍有不同:

TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.InstrumentationKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));
config.TelemetryChannel = new ServerTelemetryChannel { DeveloperMode = false };

遥测模块所有实现itelemetryModule,它定义了void initialize(telemetryConfiguration configuration)方法方法可以接线模块:

var module = new UnhandledExceptionTelemetryModule();
module.Initialize(config);

远程组的过程 :使用telemetryprocessorchainbuilder添加了:

var builder = config.TelemetryProcessorChainBuilder;
builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next));
builder.Build();

然后,最后一步是使用配置:

var telemetryClient = new TelemetryClient(config);

I think you are on the right track. Setting the telemetry channel could be done slightly different:

TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.InstrumentationKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));
config.TelemetryChannel = new ServerTelemetryChannel { DeveloperMode = false };

Telemetry modules all implement ITelemetryModule, which defines a void Initialize(TelemetryConfiguration configuration) method to wire up the module:

var module = new UnhandledExceptionTelemetryModule();
module.Initialize(config);

Telemetry processors can be added using the TelemetryProcessorChainBuilder:

var builder = config.TelemetryProcessorChainBuilder;
builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next));
builder.Build();

Then the final step is to use the config:

var telemetryClient = new TelemetryClient(config);
不喜欢何必死缠烂打 2025-02-16 06:07:18

班级的最新版本

public static class ApplicationInsightConfig
{
   internal static TelemetryConfiguration Setup()
   {
      var config = TelemetryConfiguration.CreateDefault();

      config.ConnectionString = GetConnectionString();
      config.TelemetryChannel = new ServerTelemetryChannel { DeveloperMode = false };

      //Setup TelemetryInitializers...
      InitTelemetryInitializer(config);

      //Setup Modules
      InitTelemetryModules(config);

      //Setup TelemetryProcessor
      InitTelemetryProcessor(config.TelemetryProcessorChainBuilder);

      return config;
   }

   private static void InitTelemetryProcessor(TelemetryProcessorChainBuilder builder)
   {
      builder.Use(next => new QuickPulseTelemetryProcessor(next));
      builder.Use(next => new AutocollectedMetricsExtractor(next));
      builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next) { MaxTelemetryItemsPerSecond = 5, ExcludedTypes = "Event" });
      builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next) {MaxTelemetryItemsPerSecond = 5, IncludedTypes = "Event"});
      builder.Build();
   }

   private static void InitTelemetryModules(TelemetryConfiguration config)
   {
      new DependencyTrackingTelemetryModule
      {
         ExcludeComponentCorrelationHttpHeadersOnDomains =
         {
            "core.windows.net",
            "core.chinacloudapi.cn",
            "core.cloudapi.de",
            "core.usgovcloudapi.net"
         },
         IncludeDiagnosticSourceActivities =
         {
            "Microsoft.Azure.EventHubs",
            "Microsoft.Azure.ServiceBus"
         }
      }.Initialize(config);
      new PerformanceCollectorModule().Initialize(config);
      new QuickPulseTelemetryModule().Initialize(config);
      new AppServicesHeartbeatTelemetryModule().Initialize(config);
      new AzureInstanceMetadataTelemetryModule().Initialize(config);
      new DeveloperModeWithDebuggerAttachedTelemetryModule().Initialize(config);
      new UnhandledExceptionTelemetryModule().Initialize(config);
      new UnobservedExceptionTelemetryModule().Initialize(config);
      new RequestTrackingTelemetryModule
      {
         Handlers =
         {
            "Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler",
            "System.Web.StaticFileHandler",
            "System.Web.Handlers.AssemblyResourceLoader",
            "System.Web.Optimization.BundleHandler",
            "System.Web.Script.Services.ScriptHandlerFactory",
            "System.Web.Handlers.TraceHandler",
            "System.Web.Services.Discovery.DiscoveryRequestHandler",
            "System.Web.HttpDebugHandler"
         }
      }.Initialize(config);
      new ExceptionTrackingTelemetryModule().Initialize(config);
      new AspNetDiagnosticTelemetryModule().Initialize(config);
   }

   private static void InitTelemetryInitializer(TelemetryConfiguration config)
   {
      config.TelemetryInitializers.Add(new AzureAppServiceRoleNameFromHostNameHeaderInitializer());
      config.TelemetryInitializers.Add(new HttpDependenciesParsingTelemetryInitializer());
      config.TelemetryInitializers.Add(new AzureRoleEnvironmentTelemetryInitializer());
      config.TelemetryInitializers.Add(new BuildInfoConfigComponentVersionTelemetryInitializer());
      config.TelemetryInitializers.Add(new WebTestTelemetryInitializer());
      config.TelemetryInitializers.Add(new SyntheticUserAgentTelemetryInitializer { Filters = "search|spider|crawl|Bot|Monitor|AlwaysOn" });
      config.TelemetryInitializers.Add(new ClientIpHeaderTelemetryInitializer());
      config.TelemetryInitializers.Add(new OperationNameTelemetryInitializer());
      config.TelemetryInitializers.Add(new UserTelemetryInitializer());
      config.TelemetryInitializers.Add(new AuthenticatedUserIdTelemetryInitializer());
      config.TelemetryInitializers.Add(new AccountIdTelemetryInitializer());
      config.TelemetryInitializers.Add(new SessionTelemetryInitializer());
   }

   public static string GetConnectionString()
   {
      var configKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));

      if (string.IsNullOrEmpty(configKey)) configKey = "local";
      return $"InstrumentationKey={configKey};";
   } 
}

latest version of the class

public static class ApplicationInsightConfig
{
   internal static TelemetryConfiguration Setup()
   {
      var config = TelemetryConfiguration.CreateDefault();

      config.ConnectionString = GetConnectionString();
      config.TelemetryChannel = new ServerTelemetryChannel { DeveloperMode = false };

      //Setup TelemetryInitializers...
      InitTelemetryInitializer(config);

      //Setup Modules
      InitTelemetryModules(config);

      //Setup TelemetryProcessor
      InitTelemetryProcessor(config.TelemetryProcessorChainBuilder);

      return config;
   }

   private static void InitTelemetryProcessor(TelemetryProcessorChainBuilder builder)
   {
      builder.Use(next => new QuickPulseTelemetryProcessor(next));
      builder.Use(next => new AutocollectedMetricsExtractor(next));
      builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next) { MaxTelemetryItemsPerSecond = 5, ExcludedTypes = "Event" });
      builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next) {MaxTelemetryItemsPerSecond = 5, IncludedTypes = "Event"});
      builder.Build();
   }

   private static void InitTelemetryModules(TelemetryConfiguration config)
   {
      new DependencyTrackingTelemetryModule
      {
         ExcludeComponentCorrelationHttpHeadersOnDomains =
         {
            "core.windows.net",
            "core.chinacloudapi.cn",
            "core.cloudapi.de",
            "core.usgovcloudapi.net"
         },
         IncludeDiagnosticSourceActivities =
         {
            "Microsoft.Azure.EventHubs",
            "Microsoft.Azure.ServiceBus"
         }
      }.Initialize(config);
      new PerformanceCollectorModule().Initialize(config);
      new QuickPulseTelemetryModule().Initialize(config);
      new AppServicesHeartbeatTelemetryModule().Initialize(config);
      new AzureInstanceMetadataTelemetryModule().Initialize(config);
      new DeveloperModeWithDebuggerAttachedTelemetryModule().Initialize(config);
      new UnhandledExceptionTelemetryModule().Initialize(config);
      new UnobservedExceptionTelemetryModule().Initialize(config);
      new RequestTrackingTelemetryModule
      {
         Handlers =
         {
            "Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler",
            "System.Web.StaticFileHandler",
            "System.Web.Handlers.AssemblyResourceLoader",
            "System.Web.Optimization.BundleHandler",
            "System.Web.Script.Services.ScriptHandlerFactory",
            "System.Web.Handlers.TraceHandler",
            "System.Web.Services.Discovery.DiscoveryRequestHandler",
            "System.Web.HttpDebugHandler"
         }
      }.Initialize(config);
      new ExceptionTrackingTelemetryModule().Initialize(config);
      new AspNetDiagnosticTelemetryModule().Initialize(config);
   }

   private static void InitTelemetryInitializer(TelemetryConfiguration config)
   {
      config.TelemetryInitializers.Add(new AzureAppServiceRoleNameFromHostNameHeaderInitializer());
      config.TelemetryInitializers.Add(new HttpDependenciesParsingTelemetryInitializer());
      config.TelemetryInitializers.Add(new AzureRoleEnvironmentTelemetryInitializer());
      config.TelemetryInitializers.Add(new BuildInfoConfigComponentVersionTelemetryInitializer());
      config.TelemetryInitializers.Add(new WebTestTelemetryInitializer());
      config.TelemetryInitializers.Add(new SyntheticUserAgentTelemetryInitializer { Filters = "search|spider|crawl|Bot|Monitor|AlwaysOn" });
      config.TelemetryInitializers.Add(new ClientIpHeaderTelemetryInitializer());
      config.TelemetryInitializers.Add(new OperationNameTelemetryInitializer());
      config.TelemetryInitializers.Add(new UserTelemetryInitializer());
      config.TelemetryInitializers.Add(new AuthenticatedUserIdTelemetryInitializer());
      config.TelemetryInitializers.Add(new AccountIdTelemetryInitializer());
      config.TelemetryInitializers.Add(new SessionTelemetryInitializer());
   }

   public static string GetConnectionString()
   {
      var configKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));

      if (string.IsNullOrEmpty(configKey)) configKey = "local";
      return 
quot;InstrumentationKey={configKey};";
   } 
}
感情洁癖 2025-02-16 06:07:18

对于那些想要最终版本的最终版本是代码:

using Microsoft.ApplicationInsights.DependencyCollector;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.Implementation;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using Microsoft.ApplicationInsights.Web;
using Microsoft.ApplicationInsights.WindowsServer;
using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;

//-------------------------------------------------------------
// Transcription code of the default ApplicationInsight.config
//-------------------------------------------------------------
internal class ApplicationInsightConfig
{
   public static TelemetryConfiguration Setup()
   {
      var config = TelemetryConfiguration.CreateDefault();

      config.InstrumentationKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));
      config.TelemetryChannel = new ServerTelemetryChannel { DeveloperMode = false };

      //Setup TelemetryInitializers...
      InitTelemetryInitializer(config);

      //Setup Modules
      InitTelemetryModules(config);

      //Setup TelemetryProcessor
      InitTelemetryProcessor(config.TelemetryProcessorChainBuilder);

      return config;
   }

   private static void InitTelemetryProcessor(TelemetryProcessorChainBuilder builder)
   {
      builder.Use(next => new QuickPulseTelemetryProcessor(next));
      builder.Use(next => new AutocollectedMetricsExtractor(next));
      builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next) { MaxTelemetryItemsPerSecond = 5, ExcludedTypes = "Event" });
      builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next) {MaxTelemetryItemsPerSecond = 5, IncludedTypes = "Event"});
      builder.Build();
   }

   private static void InitTelemetryModules(TelemetryConfiguration config)
   {
      new DependencyTrackingTelemetryModule
      {
         ExcludeComponentCorrelationHttpHeadersOnDomains =
         {
            "core.windows.net",
            "core.chinacloudapi.cn",
            "core.cloudapi.de",
            "core.usgovcloudapi.net"
         },
         IncludeDiagnosticSourceActivities =
         {
            "Microsoft.Azure.EventHubs",
            "Microsoft.Azure.ServiceBus"
         }
      }.Initialize(config);
      new PerformanceCollectorModule().Initialize(config);
      new QuickPulseTelemetryModule().Initialize(config);
      new AppServicesHeartbeatTelemetryModule().Initialize(config);
      new AzureInstanceMetadataTelemetryModule().Initialize(config);
      new DeveloperModeWithDebuggerAttachedTelemetryModule().Initialize(config);
      new UnhandledExceptionTelemetryModule().Initialize(config);
      new UnobservedExceptionTelemetryModule().Initialize(config);
      new RequestTrackingTelemetryModule
      {
         Handlers =
         {
            "Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler",
            "System.Web.StaticFileHandler",
            "System.Web.Handlers.AssemblyResourceLoader",
            "System.Web.Optimization.BundleHandler",
            "System.Web.Script.Services.ScriptHandlerFactory",
            "System.Web.Handlers.TraceHandler",
            "System.Web.Services.Discovery.DiscoveryRequestHandler",
            "System.Web.HttpDebugHandler"
         }
      }.Initialize(config);
      new ExceptionTrackingTelemetryModule().Initialize(config);
      new AspNetDiagnosticTelemetryModule().Initialize(config);
   }

   private static void InitTelemetryInitializer(TelemetryConfiguration config)
   {
      config.TelemetryInitializers.Add(new AzureAppServiceRoleNameFromHostNameHeaderInitializer());
      config.TelemetryInitializers.Add(new HttpDependenciesParsingTelemetryInitializer());
      config.TelemetryInitializers.Add(new AzureRoleEnvironmentTelemetryInitializer());
      config.TelemetryInitializers.Add(new BuildInfoConfigComponentVersionTelemetryInitializer());
      config.TelemetryInitializers.Add(new WebTestTelemetryInitializer());
      config.TelemetryInitializers.Add(new SyntheticUserAgentTelemetryInitializer { Filters = "search|spider|crawl|Bot|Monitor|AlwaysOn" });
      config.TelemetryInitializers.Add(new ClientIpHeaderTelemetryInitializer());
      config.TelemetryInitializers.Add(new OperationNameTelemetryInitializer());
      config.TelemetryInitializers.Add(new UserTelemetryInitializer());
      config.TelemetryInitializers.Add(new AuthenticatedUserIdTelemetryInitializer());
      config.TelemetryInitializers.Add(new AccountIdTelemetryInitializer());
      config.TelemetryInitializers.Add(new SessionTelemetryInitializer());
   }
}

软件包nuget:

  • microsoft.ApplicationInsights.dependendencyCollector(2.21.0+)
  • Microsoft.ApplicationInsights.perfcountercollector(2.21.0+)
  • microsoft.application.application.applicationinsightinsightsights.tracelists.tracelisteristener(2.21.0+)
  • Microfoft Microft。 ApplicationSights.Web(2.21.0+)
  • Microsoft.ApplicationInsights.WindowsServer(2.21.0+)
  • Microsoft.ApplicationInsights.windowsserver.telemetryChannel(2.21.0+)

For those how want te final version here is the code :

using Microsoft.ApplicationInsights.DependencyCollector;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.Implementation;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using Microsoft.ApplicationInsights.Web;
using Microsoft.ApplicationInsights.WindowsServer;
using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;

//-------------------------------------------------------------
// Transcription code of the default ApplicationInsight.config
//-------------------------------------------------------------
internal class ApplicationInsightConfig
{
   public static TelemetryConfiguration Setup()
   {
      var config = TelemetryConfiguration.CreateDefault();

      config.InstrumentationKey = ConfigurationManager.GetSetting(new ConfigKey("ApplicationInsightKey"));
      config.TelemetryChannel = new ServerTelemetryChannel { DeveloperMode = false };

      //Setup TelemetryInitializers...
      InitTelemetryInitializer(config);

      //Setup Modules
      InitTelemetryModules(config);

      //Setup TelemetryProcessor
      InitTelemetryProcessor(config.TelemetryProcessorChainBuilder);

      return config;
   }

   private static void InitTelemetryProcessor(TelemetryProcessorChainBuilder builder)
   {
      builder.Use(next => new QuickPulseTelemetryProcessor(next));
      builder.Use(next => new AutocollectedMetricsExtractor(next));
      builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next) { MaxTelemetryItemsPerSecond = 5, ExcludedTypes = "Event" });
      builder.Use(next => new AdaptiveSamplingTelemetryProcessor(next) {MaxTelemetryItemsPerSecond = 5, IncludedTypes = "Event"});
      builder.Build();
   }

   private static void InitTelemetryModules(TelemetryConfiguration config)
   {
      new DependencyTrackingTelemetryModule
      {
         ExcludeComponentCorrelationHttpHeadersOnDomains =
         {
            "core.windows.net",
            "core.chinacloudapi.cn",
            "core.cloudapi.de",
            "core.usgovcloudapi.net"
         },
         IncludeDiagnosticSourceActivities =
         {
            "Microsoft.Azure.EventHubs",
            "Microsoft.Azure.ServiceBus"
         }
      }.Initialize(config);
      new PerformanceCollectorModule().Initialize(config);
      new QuickPulseTelemetryModule().Initialize(config);
      new AppServicesHeartbeatTelemetryModule().Initialize(config);
      new AzureInstanceMetadataTelemetryModule().Initialize(config);
      new DeveloperModeWithDebuggerAttachedTelemetryModule().Initialize(config);
      new UnhandledExceptionTelemetryModule().Initialize(config);
      new UnobservedExceptionTelemetryModule().Initialize(config);
      new RequestTrackingTelemetryModule
      {
         Handlers =
         {
            "Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler",
            "System.Web.StaticFileHandler",
            "System.Web.Handlers.AssemblyResourceLoader",
            "System.Web.Optimization.BundleHandler",
            "System.Web.Script.Services.ScriptHandlerFactory",
            "System.Web.Handlers.TraceHandler",
            "System.Web.Services.Discovery.DiscoveryRequestHandler",
            "System.Web.HttpDebugHandler"
         }
      }.Initialize(config);
      new ExceptionTrackingTelemetryModule().Initialize(config);
      new AspNetDiagnosticTelemetryModule().Initialize(config);
   }

   private static void InitTelemetryInitializer(TelemetryConfiguration config)
   {
      config.TelemetryInitializers.Add(new AzureAppServiceRoleNameFromHostNameHeaderInitializer());
      config.TelemetryInitializers.Add(new HttpDependenciesParsingTelemetryInitializer());
      config.TelemetryInitializers.Add(new AzureRoleEnvironmentTelemetryInitializer());
      config.TelemetryInitializers.Add(new BuildInfoConfigComponentVersionTelemetryInitializer());
      config.TelemetryInitializers.Add(new WebTestTelemetryInitializer());
      config.TelemetryInitializers.Add(new SyntheticUserAgentTelemetryInitializer { Filters = "search|spider|crawl|Bot|Monitor|AlwaysOn" });
      config.TelemetryInitializers.Add(new ClientIpHeaderTelemetryInitializer());
      config.TelemetryInitializers.Add(new OperationNameTelemetryInitializer());
      config.TelemetryInitializers.Add(new UserTelemetryInitializer());
      config.TelemetryInitializers.Add(new AuthenticatedUserIdTelemetryInitializer());
      config.TelemetryInitializers.Add(new AccountIdTelemetryInitializer());
      config.TelemetryInitializers.Add(new SessionTelemetryInitializer());
   }
}

Packages Nuget :

  • Microsoft.ApplicationInsights.DependencyCollector (2.21.0+)
  • Microsoft.ApplicationInsights.PerfCounterCollector (2.21.0+)
  • Microsoft.ApplicationInsights.TraceListener (2.21.0+)
  • Microsoft.ApplicationInsights.Web (2.21.0+)
  • Microsoft.ApplicationInsights.WindowsServer (2.21.0+)
  • Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel (2.21.0+)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文