Azure 如何在Net Core HostBuilder上配置应用程序细节采样?

Azure 如何在Net Core HostBuilder上配置应用程序细节采样?,azure,.net-core,azure-application-insights,Azure,.net Core,Azure Application Insights,我正在使用ApplicationInsights.WorkerService nuget包构建.Net核心后台服务。有关采样配置的文档中提到: 它表明: public void Configure(IApplicationBuilder app, IHostingEnvironment env, TelemetryConfiguration configuration) { var builder = configuration.DefaultTelemetrySink.Telemetry

我正在使用ApplicationInsights.WorkerService nuget包构建.Net核心后台服务。有关采样配置的文档中提到:

它表明:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, TelemetryConfiguration configuration)
{
  var builder = configuration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
  // For older versions of the Application Insights SDK, use the following line instead:
  // var builder = configuration.TelemetryProcessorChainBuilder;

  // Using adaptive sampling
  builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5);

  // Alternately, the following configures adaptive sampling with 5 items per second, and also excludes DependencyTelemetry from being subject to sampling.
  // builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5, excludedTypes: "Dependency");

  // If you have other telemetry processors:
  builder.Use((next) => new AnotherProcessor(next));

  builder.Build();

  // ...
}
现在在HostBuilder上,我没有看到任何扩展方法可以提供遥测配置,nuget的源代码也没有:

那么,如何在HostBuilder上获取TelemetryConfiguration或TelemetryProcessorChainBuilder?目前看起来是这样的:

Host.CreateDefaultBuilder(args)
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService<Worker>();
                    services.AddApplicationInsightsTelemetryWorkerService();
                });

您应该按如下方式使用它:

Host.CreateDefaultBuilder(args)
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService<Worker>();

                    services.Configure<TelemetryConfiguration>((config)=>
                    {
                        var builder = config.DefaultTelemetrySink.TelemetryProcessorChainBuilder;

                        builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond: 5);
                        builder.Build();
                    }                    
                    );

                   // Your other code
                });

您应该按如下方式使用它:

Host.CreateDefaultBuilder(args)
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService<Worker>();

                    services.Configure<TelemetryConfiguration>((config)=>
                    {
                        var builder = config.DefaultTelemetrySink.TelemetryProcessorChainBuilder;

                        builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond: 5);
                        builder.Build();
                    }                    
                    );

                   // Your other code
                });

我希望某处有一个可用的工作样本。我浪费了太多时间试图让它与AppInsights配置的特性一起工作:我希望在某处有一个可用的工作示例。我浪费了太多的时间试图让它与App Insights配置的特性一起工作: