Информация о приложении Azure для веб-приложения .Net On Premise - быстрый импульс недоступен - PullRequest
0 голосов
/ 27 марта 2019

Мы создали приложение Azure Insight для существующего приложения Asp.Net MVC, я могу видеть быстрый импульс и подключенный сервер в потоковом режиме метрики. Я использую только один инструментальный ключ, связанный со всей нижней средой. который возвращает Слишком много серверов отчитываются перед этим приложением. Другие серверы не будут отображаться в этом представлении.

Если мы проверили образец телеметрии, мы получили ошибку ниже.

AI (Internal): [Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse] Unexpected error in QuickPulse infrastructure: System.InvalidOperationException: Can't start collection while it is already running.
 at Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryProcessor.Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.IQuickPulseTelemetryProcessor.StartCollection(IQuickPulseDataAccumulatorManager accumulatorManager, Uri serviceEndpoint, TelemetryConfiguration configuration, Boolean disableFullTelemetryItems)
 at Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule.OnStartCollection()
 at Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.Implementation.QuickPulse.QuickPulseCollectionStateManager.UpdateState(String instrumentationKey, String authApiKey)
 at Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule.StateThreadWorker(CancellationToken cancellationToken). QuickPulse data will not be available.

Вместо скрипта по умолчанию попробовал приведенный ниже код c # в gloabl.asax Начать запрос.

    protected void Application_BeginRequest(Object sender, EventArgs e)
    {
        TelemetryConfiguration configuration = new TelemetryConfiguration();
        configuration.InstrumentationKey = System.Configuration.ConfigurationManager.AppSettings["instrumentationKey"];
        QuickPulseTelemetryProcessor processor = null;

        configuration.TelemetryProcessorChainBuilder
            .Use((next) =>
            {
                processor = new QuickPulseTelemetryProcessor(next);
                return processor;
            })
            .Build();

        var QuickPulse = new QuickPulseTelemetryModule();
        QuickPulse.Initialize(configuration);
        QuickPulse.RegisterTelemetryProcessor(processor);
    }

Из-за этой проблемы большую часть времени не учащается пульс, пожалуйста, помогите нам найти проблему.

1 Ответ

0 голосов
/ 18 апреля 2019

Вы упоминаете, что у вас есть этот код в запросе Begin.Я не думаю, что вы хотите вызывать этот код для каждого запроса.Вы должны сделать это в Global Application_Start.

...