Изменить ключ инструментария для входа в ASP.NET Core с помощью Application Insights

Есть ли способ переключить ключ инструментария в процессе выполнения на основе некоторой бизнес-логики для целевого назначения журнала для различных экземпляров Application Insights.

Поскольку мы настраиваем Application Insights для использования в качестве регистратора в стартовом проекте, я не могу найти какой-либо нестандартный подход или взломать обходной путь для этого требования.

Вышеупомянутое переключение может быть легко выполнено, если я использую Application Insight в качестве клиента телеметрии, потому что в этом случае я могу предоставить клиенту различные ключи инструментария во время выполнения, что не то же самое для ILogger, вводимого с использованием встроенного DI ASP..NET Core.

2 ответа

Напишите инициализатор для условного переопределения ключа инструментария, как показано ниже:

class MyTelemetryInstrumentationKeyOverrider : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {
            // conditionally do this.
            telemetry.Context.InstrumentationKey = "newkey";
        }
    }

Это необходимо сделать в момент запуска приложения, в этом случае ДА. но после запуска приложения изменить нельзя.

Вы можете посмотреть ключ динамического инструментария

protected void Application_Start()
{
  Microsoft.ApplicationInsights.Extensibility.
    TelemetryConfiguration.Active.InstrumentationKey = 
      // - for example -
      WebConfigurationManager.AppSettings["ikey"];
Другие вопросы по тегам