Что такое Azure Application Insights?

Завершено

Приложение Аналитика анализирует производительность веб-приложения и может предупреждать вас о потенциальных проблемах.

Для этой функции не требуется специальная настройка, кроме настройки приложения для приложений Аналитика (на ASP.NET, Java или Node.js и в коде веб-страницы). Он активен после создания достаточной телеметрии приложения.

Когда я получаю уведомление об интеллектуальном обнаружении?

Приложение Аналитика отправляет уведомление при обнаружении снижения производительности приложения одним из следующих способов:

  • Снижение времени отклика: приложение начало отвечать на запросы медленнее, чем раньше. Изменение может произойти внезапно, например, если в последнем развертывании произошла регрессия, или может произойти постепенное снижение, возможно, из-за утечки памяти.
  • Снижение длительности зависимостей: приложение вызывает REST API, базу данных или другую зависимость. Зависимость отвечает медленнее, чем должна.
  • Шаблон медленной производительности: у приложения возникает проблема с производительностью, которая влияет только на некоторые запросы. Например, страницы загружаются медленнее в одном типе браузера, чем на других, или запросы обслуживаются медленнее с одного конкретного сервера. Алгоритмы Аналитика приложения смотрят на время загрузки страницы, время отклика запроса и время отклика зависимостей.

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

Всегда ли оповещение означает проблему?

Оповещение не обязательно означает, что у вашего приложения возникла проблема. Это больше предложения о чем-то, что вы можете посмотреть более внимательно.

Разделы справки устранить проблемы?

Каждое уведомление оповещений содержит диагностические сведения. Ниже приведен пример использования этих сведений:

A screenshot showing server response times as part of notification diagnostics.

  • Для рассмотрения: уведомление показывает, сколько пользователей или сколько операций затронуты. Это поможет назначить приоритет проблемы.
  • Чтобы определить область: проблема влияет на весь трафик или только некоторые страницы? Она связана с определенными браузерами или расположениями?
  • Для диагностика: Часто диагностические сведения в уведомлении свидетельствуют о характере проблемы. Например, если время отклика замедлится при высокой скорости запроса, что предполагает перегрузку сервера или зависимостей. Если вам нужны дополнительные сведения, откройте раздел Производительность в Application Insights. Там вы найдете данные профилировщика. Если были созданы исключения, можно также попробовать отладчик моментальных снимков.

Настройка уведомлений по электронной почте

Уведомления интеллектуального обнаружения включены по умолчанию и отправляются владельцам, участник и читателям доступ к ресурсу Приложения Аналитика. Чтобы изменить это, выберите "Настроить" в уведомлении электронной почты или откройте параметры интеллектуального обнаружения в приложении Аналитика.

A screenshot showing Smart Detection settings. These settings include detection for slow page load times, slow server response times, and more.

Чтобы прекратить получение Уведомления по электронной почте, можно использовать ссылку отмены подписки в электронной почте интеллектуального обнаружения.

Сообщения электронной почты о аномалиях производительности интеллектуального обнаружения ограничены одной электронной почтой в день на ресурс приложения Аналитика. Сообщение отправляется только в том случае, если в этот день обнаружена по крайней мере одна новая проблема.

Как можно повысить производительность?

Медленные и неудачные ответы разочаровывают пользователей веб-сайта. Важно быстро решить проблемы. Ниже приведены действия по повышению производительности.

  1. Рассмотрение
  2. Шаг
  3. Улучшение

Рассмотрим эти шаги более подробно с точки зрения времени загрузки страницы.

Рассмотрение

При просмотре вопроса, первое, что нужно спросить: имеет ли это значение? Если страница всегда медленно загружается, но только 1% пользователей вашего сайта когда-либо просматривают его, проблема является низкой приоритетом. С другой стороны, если только 1% пользователей открывают страницу, но она создает исключение каждый раз, приоритет является высоким. Используйте инструкцию влияния (затронутых пользователей или процент трафика) в качестве общего руководства, но помните, что влияние не является всей историей. Соберите другие доказательства и рассмотрите параметры проблемы. Если проблема зависит от географического региона, настройте тесты доступности, включающие регион.

Диагностика медленных загрузок страниц

При диагностике проблемы задайте себе следующие вопросы:

  • В чем суть проблемы?
  • Медленно ли отвечает сервер?
  • Длинна ли страница?
  • Требуется ли браузеру много работы для отображения этой страницы?

Если вы изучаете время отклика браузера, откройте метрики браузеров . Сегментированные отображение времени загрузки страницы браузера показывает, куда идет время.

  • Если время отправки запроса имеет высокий уровень, сервер реагирует медленно или запрос является POST с большим объемом данных. Чтобы узнать время отклика, просмотрите метрики производительности .
  • Настройте отслеживание зависимостей, чтобы узнать, связана ли задержка с внешними службами или базой данных.
  • Если получение ответа является преобладающим, страница и ее зависимые части — JavaScript, CSS, изображения и т. д. (но не асинхронно загруженные данные) — длинна. Выполните тест доступности и обязательно настройте загрузку зависимых компонентов. После получения результатов откройте сведения и разверните их, чтобы просмотреть показатели времени загрузки различных файлов.
  • Высокая скорость обработки клиентов предполагает, что сценарии выполняются медленно. Если причина не очевидна, попробуйте добавить код времени и отправить время в trackMetric вызовах.

Улучшение производительности медленных страниц

Ниже приведены некоторые места, чтобы приступить к работе при думать о том, как улучшить медленные страницы:

  • Замедление загрузки из-за больших файлов: асинхронная загрузка скриптов и других частей. Используйте объединение скриптов. Разбейте главную страницу на мини-приложения, которые загружают свои данные по отдельности. Не отправляйте обычный старый HTML-код для длинных таблиц; используйте скрипт для запроса данных в формате JSON или другого компактного формата, а затем заполните таблицу.
  • Медленные зависимости сервера. Рассмотрим географические расположения компонентов. Например, при использовании Azure веб-сервер и база данных должны быть расположены в одном регионе. Проверьте, не получают ли запросы больше данных, чем требуется. Возможно, поможет кэширование или пакетная обработка.
  • Проблемы с емкостью. Просмотрите метрики времени отклика сервера и количество запросов. Если время отклика пиковое значение непропорционально с пиками количества запросов, скорее всего, ваши серверы работают слишком трудно. Рассмотрите возможность увеличения или масштабирования.

Увеличение времени ответа сервера

Уведомление о снижении времени отклика сообщает:

  • Время отклика по сравнению с обычным временем отклика для этой операции.
  • Сколько пользователей затронуто.
  • Среднее время отклика и 90-й процентиль отклика для этой операции в день обнаружения и семь дней до этого.
  • Количество запросов операций в день обнаружения и семь дней до этого.
  • Корреляция между снижением производительности данной операции и снижением производительности связанных зависимостей.
  • Ресурсы, помогающие диагностировать проблему:
    • Трассировки профилировщика помогают просматривать время операции (ссылка доступна, если примеры трассировки Профилировщика были собраны для этой операции в течение периода обнаружения).
    • Отчеты о производительности в Обозреватель метрик, где можно проверить диапазоны времени и фильтры для этой операции.
    • Выполните поиск этого вызова для просмотра определенных свойств вызова.
    • Отчеты об ошибках. Если число больше 1, это означает, что в этой операции произошли сбои, которые могли бы привести к снижению производительности.

Увеличение времени отклика зависимостей

Если приложение сильно зависит от внешних служб, рекомендуется следить за снижением зависимостей.

Ниже приведен пример уведомления о снижении зависимостей:

A screenshot showing a dependency degradation notification from Application Insights.

Это говорит вам:

  • Длительность по сравнению с обычным временем отклика для этой операции.
  • Сколько пользователей затронуто.
  • Средняя длительность и 90-й процентиль для этой зависимости в день обнаружения и семь дней до этого.
  • Количество вызовов зависимостей в день обнаружения и семь дней до этого.
  • Ресурсы, помогающие диагностировать проблему:
    • Отчеты о производительности в Обозреватель метрик для этой зависимости.
    • Выполните поиск вызовов этой зависимости для просмотра свойств вызова.
    • Отчеты об ошибках. При наличии одного или нескольких сбоев это означает, что в течение периода обнаружения произошли сбои вызовов зависимостей, которые могли бы способствовать снижению длительности.
    • Откройте аналитику с запросами, которые вычисляют эту длительность и количество зависимостей.

Интеллектуальное обнаружение шаблонов снижения производительности

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

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

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

A screenshot showing smart detection in Application Insights.

Поле " Когда отображается время обнаружения проблемы".

В поле "Что такое" описано:

  • Обнаружена проблема.
  • События, которые привели к поведению проблемы.

Таблица сравнивает плохо выполняющийся набор со средним поведением всех остальных событий.

Выберите ссылки для открытия Обозреватель метрик и поиска, чтобы найти соответствующие отчеты, отфильтрованные по времени и свойствам медленно выполняющегося набора, а затем измените диапазон времени и фильтры для изучения телеметрии.