Поделиться через


Динамические метрики: мониторинг и диагностика с задержкой в 1 секунду

Используйте динамические метрики из Application Insights для мониторинга веб-приложений. Выберите и отфильтруйте метрики и счетчики производительности для просмотра в реальном времени и проверки трассировки стека из примера неудачных запросов и исключений. Динамические метрики — это мощное средство диагностики при сочетании с Профилировщиком и отладчиком моментальных снимков.

С помощью динамических метрик можно:

  • Проверьте исправление во время выпуска, наблюдая за производительностью и количеством сбоев.
  • Посмотрите влияние тестовой нагрузки и диагностики проблем в реальном времени.
  • Сосредоточьтесь на определенных сеансах тестирования или отфильтруйте известные проблемы, выбрав и отфильтровав метрики, которые вы хотите просмотреть.
  • Получать трассировки исключений по мере того, как они возникают.
  • Экспериментировать с фильтрами, чтобы найти наиболее важные ключевые показатели эффективности.
  • Отслеживать любые счетчики производительности Windows в режиме реального времени.
  • Легко определить сервер, имеющий проблемы, и отфильтровать весь ключевой показатель эффективности и динамический веб-канал только на этом сервере.

Снимок экрана: вкладка динамических метрик.

Начало работы

  1. Включите динамические метрики с помощью следующих рекомендаций для конкретного языка:
  • ASP.NET: не поддерживается.
  • ASP.NET Core: включен по умолчанию.
  • Java: включен по умолчанию.
  • Node.js: включен по умолчанию.
  • Python: передача enable_live_metrics=True configure_azure_monitorв . Дополнительные сведения см. в документации по дистрибутиву OpenTelemetry в Azure Monitor.
  1. Откройте ресурс Application Insights для приложения в портал Azure. Выберите динамические метрики, которые перечислены в разделе "Исследование " в меню слева.

  2. Защита канала управления путем включения проверки подлинности Microsoft Entra при использовании пользовательских фильтров.

Примечание.

Поддержка приема ключей инструментирования будет завершена 31 марта 31, 2025 г. Прием ключей инструментирования будет и дальше осуществляться, но мы больше не будем предоставлять обновления или поддержку для этой функции. Перейдите на строки подключения, чтобы использовать новые возможности.

Как динамические метрики отличаются от обозревателя метрик и Log Analytics?

Возможности Live Stream Обозреватель метрик и Log Analytics
Задержка Данные отображаются в течение одной секунды. Агрегировано за минуты.
Без хранения Данные сохраняются во время ее хранения на диаграмме и затем удаляются. Данные хранятся в течение 90 дней.
по запросу Данные передаются только в режиме реального времени, пока открыта область динамических метрик. Данные отправляются всякий раз, когда пакет SDK установлен и включен.
Бесплатно Плата за данные Live Stream не взимается. Подпадает под цену.
Образец Передаются все выбранные метрики и счетчики. Производится выборка сбоев и трассировок стека. Можно использовать примеры событий.
Канал управления В пакет SDK отправляются управляющие сигналы фильтрации. Мы советуем защитить этот канал. Обмен данными — это один из способов подключения к порталу.

Выбор и фильтрация метрик

Эти возможности доступны с ASP.NET, ASP.NET Core и Функции Azure (версия 2).

Пользовательские индикаторы производительности можно отслеживать в реальном времени, применяя произвольные фильтры на любом телеметрии Application Insights на портале. Щелкните элемент управления фильтром, появляющийся при наведении указателя мыши на любую диаграмму. На следующей диаграмме показан пользовательский ключевой показатель эффективности подсчета запросов с фильтрами по атрибутам URL-адреса и длительности . Проверьте фильтры с помощью раздела предварительного просмотра потока, в который отображается динамический канал телеметрии, соответствующий заданным критериям в любой момент времени.

Снимок экрана: частота запросов фильтра.

Вы можете отслеживать значение, отличное от счетчика. Параметры зависят от типа потока, который может быть любой телеметрией Application Insights, такими как запросы, зависимости, исключения, трассировки, события или метрики. Это также может быть собственное пользовательское измерение.

Снимок экрана: построитель запросов по частоте запросов с пользовательской метрикой.

Наряду с телеметрией Application Insights можно также отслеживать любой счетчик производительности Windows. Выберите его из параметров потока и укажите имя счетчика производительности.

Динамические метрики агрегируются в двух точках: локально на каждом сервере, а затем на всех серверах. Чтобы изменить значение по умолчанию, можно выбрать другие параметры в соответствующих раскрывающихся списках.

Пример телеметрии: пользовательские динамические диагностические события

По умолчанию динамический веб-канал событий отображает примеры завершившихся сбоем запросов и вызовов зависимостей, исключений, событий и трассировок. Щелкните значок фильтра, чтобы просмотреть действующие критерии в любой момент времени.

Снимок экрана: кнопка

Как и для метрик, можно указать любые произвольные критерии для любого типа данных телеметрии Application Insights. В этом примере мы выбираем определенные сбои запросов и события.

Снимок экрана: построитель запросов.

Примечание.

В настоящее время для критериев на основе сообщений об исключении используйте самое внешнее сообщение об исключении. В предыдущем примере для фильтрации доброкачественного исключения с внутренним сообщением об исключении (следует< разделителю --" ) "Клиент отключен", используйте сообщение, не содержащее условия "Чтение содержимого запроса на чтение ошибок".

Чтобы просмотреть сведения о элементе в динамическом веб-канале, выберите его. Вы можете приостановить веб-канал, нажав кнопку "Приостановить " или прокрутив вниз и выбрав элемент. Динамический канал возобновляется после прокрутки обратно в верхнюю часть или при выборе счетчика элементов, собранных во время приостановки.

Снимок экрана: окно образца телеметрии с выбранным исключением и сведения об исключении, отображаемые в нижней части окна.

Фильтрация по экземпляру сервера

Если требуется отслеживать определенный экземпляр роли сервера, можно применить фильтрацию по серверу. Чтобы отфильтровать данные, выберите имя сервера в разделе Серверы.

Снимок экрана: примеры динамических сбоев.

Защита канала управления

Защитите канал управления динамическими метриками, включив проверку подлинности Microsoft Entra, которая предотвращает несанкционированное раскрытие потенциально конфиденциальной информации, введенной в пользовательские фильтры.

Примечание.

30 сентября 2025 г. поддержка ключей API, используемых для потоковой передачи телеметрии Live Metrics в Application Insights, будет прекращена. После этой даты приложения, использующие ключи API, не смогут отправлять данные динамических метрик в ресурс Application Insights. Прием данных телеметрии с проверкой подлинности для потоковой передачи динамических метрик в Application Insights потребуется выполнить проверку подлинности Microsoft Entra для Application Insights.

Таблица поддерживаемых возможностей

Язык Базовые метрики Метрики производительности Настраиваемая фильтрация Пример данных телеметрии Разделение ЦП по процессам
.NET Framework Поддерживается (LTS) Поддерживается (LTS) Поддерживается (LTS) Поддерживается (LTS) Поддерживается (LTS)
.NET Core (целевая платформа .NET Core) Поддерживается (LTS) Поддерживается (LTS) Поддерживается (LTS) Поддерживается (LTS) Поддерживается (LTS)
.NET Core (целевая платформа .NET Core) Поддерживается (LTS) Поддерживается* Поддерживается (LTS) Поддерживается (LTS) Не поддерживаются
Функции Azure версии 2 Поддерживается Поддерживаемые Поддерживаемые Поддерживается Не поддерживаются
Java Поддерживается (версия 2.0.0 +) Поддерживается (версия 2.0.0 +) Не поддерживаются Поддерживается (версия 3.2.0 +) Не поддерживаются
Node.js Поддерживается (версия 1.3.0+) Поддерживается (версия 1.3.0+) Не поддерживаются Поддерживается (версия 1.3.0+) Не поддерживаются
Python Поддерживается (дистрибутив версии 1.6.0+) Не поддерживаются Не поддерживаются Не поддерживаются Не поддерживаются

К базовым метрикам относится количество запросов, зависимостей и исключений. К метрикам производительности (счетчикам производительности) относятся память и ЦП. Пример данных телеметрии демонстрирует поток подробных сведений о неудачных запросах и зависимостях, исключениях, событиях и трассировках.

Поддержка PerfCounters немного зависит от версий .NET Core, которые не предназначены для платформа .NET Framework:

  • Метрики PerfCounters поддерживаются при запуске в службе приложение Azure для Windows (пакет SDK для ядра ASP.NET версии 2.4.1 или более поздней).
  • PerfCounters поддерживается при запуске приложения на любом компьютере Windows для приложений, предназначенных для .NET Core LTS или более поздней версии.
  • PerfCounters поддерживается, если приложение работает в любом месте (например, Linux, Windows, служба приложений для Linux или контейнеров) в последних версиях, но только для приложений, предназначенных для .NET Core LTS или более поздней версии.

Устранение неполадок

В следующем разделе рассматриваются распространенные сценарии устранения неполадок для работы с динамическими метриками.

Отсутствуют данные динамических метрик

В режиме динамической метрики используются разные IP-адреса, отличные от данных телеметрии Application Insights. Убедитесь, что эти IP-адреса открыты в брандмауэре. Кроме того, убедитесь, что исходящие порты для динамических метрик открыты в брандмауэре серверов.

Как описано в объявлении о миграции AZURE TLS 1.2, динамические метрики теперь поддерживают только TLS 1.2. Если вы используете более раннюю версию TLS, область динамических метрик не отображает никаких данных. Сведения о приложениях, основанных на платформа .NET Framework 4.5.1, см. в статье "Включение протокола TLS" 1.2 на клиентах — Configuration Manager для поддержки более новой версии TLS.

Убедитесь, что Application Insights включена, и приложение использует последнюю версию дистрибутива OpenTelemetry в Azure Monitor. Если вы используете классический API the.NET, установите пакет NuGet Application Insights .

Авторизация подключенных серверов: этот параметр не будет доступен

Настоятельно не рекомендуется использовать незащищенные каналы.

Если вы решили попробовать пользовательские фильтры без настройки канала с проверкой подлинности, вам придется авторизовать подключенные серверы в каждом новом сеансе или при подключении новых серверов к сети. Кроме того, использование незащищенных каналов будет автоматически отключено через шесть месяцев.

В диалоговом окне появится предупреждение "Вы можете передавать метрики и события с настраиваемыми фильтрами, которые отправляются обратно в приложение. Избегайте ввода потенциально конфиденциальной информации (например, идентификатора клиента), пока не настроите прошедший проверку подлинности канал. Однако если вы распознаете и доверяете всем серверам ниже, можно попробовать пользовательские фильтры без проверки подлинности. Этот параметр не будет доступен после ##/##/### Серверы, подключенные без проверки подлинности:"

Чтобы устранить это предупреждение, см. раздел "Защита канала управления".

Низкое количество отслеживаемых экземпляров сервера

Количество отслеживаемых экземпляров сервера, отображаемых динамическими метриками, может быть меньше фактического числа экземпляров, выделенных для приложения. Это несоответствие связано с тем, что многие современные веб-серверы выгрузят приложения, которые не получают запросы за период времени для экономии ресурсов. Так как динамические метрики учитывают только серверы, работающие в настоящее время под управлением приложения, серверы, которые уже выгрузили процесс, не будут включены в этот общий объем.

Отсутствует конфигурация для .NET

  1. Убедитесь, что вы используете последнюю версию пакета NuGet Microsoft.ApplicationInsights.PerfCounterCollector.

  2. Измените файл ApplicationInsights.config:

    • Убедитесь, что строка подключения указывает на ресурс Application Insights, который вы используете.
    • QuickPulseTelemetryModule Найдите параметр конфигурации. Если он не существует, добавьте его.
    • QuickPulseTelemetryProcessor Найдите параметр конфигурации. Если он не существует, добавьте его.
    <TelemetryModules>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryModules>
    
    <TelemetryProcessors>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryProcessors>
    
  3. перезапустите приложение.

Сообщение о состоянии "Данные временно недоступны"

При переходе к динамическим метрикам вы увидите баннер с сообщением о состоянии: "Данные временно недоступны. Обновления о нашем статусе размещены здесь https://aka.ms/aistatus "

Перейдите по ссылке на страницу состояния Azure и проверьте, есть ли сбой активации, влияющий на Application Insights. Убедитесь, что брандмауэры и расширения браузера не блокируют доступ к динамическим метрикам, если не происходит сбой. Например, некоторые популярные расширения ad-blocker блокируют подключения к *.monitor.azure.com. Чтобы использовать полные возможности динамических метрик, отключите расширение блокировки рекламы или добавьте правило исключения для домена *.livediagnostics.monitor.azure.com в блокировщик рекламы, брандмауэр и т. д.

Непредвиденное большое количество запросов на трансляцию диагностика.monitor.azure.com

Пакеты SDK Application Insights используют REST API для взаимодействия с конечными точками QuickPulse, которые предоставляют динамические метрики для веб-приложения. По умолчанию пакеты SDK опрашивает конечные точки каждые пять секунд, чтобы проверить, просматривается ли область динамических метрик в портал Azure.

При открытии динамических метрик пакеты SDK переключаются в режим более высокой частоты и отправляют новые метрики в QuickPulse каждую секунду. Это позволяет отслеживать и диагностировать динамическое приложение с задержкой в 1 секунду, но также генерировать больше сетевого трафика. Чтобы восстановить обычный поток трафика, навижайте от области динамических метрик.

Примечание.

Вызовы REST API, выполняемые пакетами SDK для конечных точек QuickPulse, не отслеживаются Application Insights и не влияют на вызовы зависимостей или другие метрики. Однако их можно увидеть в других средствах мониторинга сети.

Следующие шаги