Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过IServiceCollection配置自适应采样_C#_Asp.net Core_Dependency Injection_Azure Application Insights - Fatal编程技术网

C# 如何通过IServiceCollection配置自适应采样

C# 如何通过IServiceCollection配置自适应采样,c#,asp.net-core,dependency-injection,azure-application-insights,C#,Asp.net Core,Dependency Injection,Azure Application Insights,根据,在“配置采样设置”下,我们可以配置自适应采样,还可以从采样中包括或排除某些类型: public void Configure(IApplicationBuilder app, IHostingEnvironment env, TelemetryConfiguration configuration) { var builder = configuration.DefaultTelemetrySink.TelemetryProcessorChainBuilder; // Fo

根据,在“配置采样设置”下,我们可以配置自适应采样,还可以从采样中包括或排除某些类型:

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();

    // ...
}
但是,如果我们正在通过
WebHostBuilder.Configure()
配置应用程序,并传入一个接受
iaapplicationbuilder
的委托,有没有办法做同样的事情?在这种情况下,我们无法通过DI获得
遥测配置

我需要做与上面类似的事情,但我只有
iaapplicationbuilder
界面。从文档来看,似乎我应该使用
TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder
,但是
TelemetryConfiguration.Active
说它在.NET Core上过时了,还说它从ApplicationInsights.config加载实例,而我甚至没有。我正在从代码创建一个完整的AppInsights客户端


我想另一种方法是创建我自己的遥测处理器,它完全按照我想要的方式进行采样,但这似乎有些过头了。基本上,我想更改管道中当前
自适应采样遥测处理器的配置。

IAApplicationBuilder
界面有一个
ApplicationServices
属性,您可以使用该属性解析
遥测配置。下面是一个如何使用它的示例:

webHostBuilder.Configure(applicationBuilder =>
{
    var telemetryConfiguration = applicationBuilder.ApplicationServices
        .GetRequiredService<TelemetryConfiguration>();

    // ...
});
webHostBuilder.Configure(applicationBuilder=>
{
var遥测配置=applicationBuilder.ApplicationServices
.GetRequiredService();
// ...
});
遥测配置
实例已注册为单例,与使用
启动时提供的实例相同。配置