Как настроить выборку Application Insights на Net Core HostBuilder? - PullRequest
0 голосов
/ 19 февраля 2020

Я строю. Net Базовая фоновая служба, использующая пакет nuget ApplicationInsights.WorkerService. В документации, касающейся конфигурации сэмплирования, говорится следующее: https://docs.microsoft.com/en-us/azure/azure-monitor/app/sampling#configure -sampling-settings

И это показывает следующее:

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 я не надеваю Я не вижу каких-либо методов расширения, которые дали бы мне TelemetryConfiguration, исходный код nuget не имеет его: HostBuilder? На данный момент это выглядит так:

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

1 Ответ

1 голос
/ 20 февраля 2020

Вы должны использовать его, как показано ниже:

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
                });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...