Работа с событиями с помощью диагностики приложений
Опубликовано: Март 2016
Применимо к:System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager
Работа с предупреждениями — это стандартная задача в System Center 2012 — Operations Manager. Предупреждения, выводимые в рамках наблюдения за приложениями .NET, содержат ту же информацию, что и другие предупреждения, например общие сведения и информацию из базы знаний по продукту. Однако предупреждение для приложения .NET также содержит ссылку в описании. По этой ссылке в консоли диагностики приложений открывается событие, вызвавшее предупреждение. Здесь вы можете получить гораздо более полную информацию, которая поможет вам в определении причины проблемы и способа ее устранения.
Примечание |
---|
Для глубокой диагностики предупреждений, связанных с наблюдением за производительностью приложений, часто требуется доступ к исходному коду приложений, а также участие со стороны разработчиков. Вы можете установить пакет управления синхронизацией рабочих элементов Team Foundation Server и пересылать предупреждения на сервер Team Foundation Server, используемый командой разработчиков. Пакет управления синхронизацией рабочих элементов Team Foundation Server отслеживает и синхронизирует изменения, вносимые в рабочие элементы Team Foundation Server и соответствующие предупреждения Operations Manager. |
Анализ предупреждений, связанных с приложениями .NET
Основной целью наблюдения за приложениями в Operations Manager является ускорение процессов выявления неполадок и их устранения назначенными ответственными лицами. Когда вы получаете предупреждение, вам необходимо узнать, что вызвало его (система, в которой размещается приложение, или код), предоставить данные, подтверждающие ваше заключение, и четко определить, кто должен заняться устранением проблемы. Чтобы установить, связана ли неполадка с системой, вам необходимо знать состояние системы на момент возникновения события. А чтобы найти корень проблемы, требуется проследить всю цепочку вызовов. Для дальнейшего анализа вам необходимо сравнить аналогичные и связанные события, произошедшие в то же время. Сведения о событиях, счетчики производительности и распределенные цепочки в совокупности помогут вам решить, кто должен заняться этой проблемой в первую очередь. Если это системная ошибка, вы можете внести корректировки в доступные ресурсы или конфигурацию обслуживающей системы. Если же сбой связан с приложением, проблему следует передать команде разработчиков приложения вместе со строкой кода, в которой он происходит. Ниже описывается несколько стратегий по использованию представлений, фильтров и параметров в консоли диагностики приложений для определения источника проблемы, поиска решения и определения лиц, которые должны заняться ее устранением.
Открытие консоли диагностики приложений из предупреждения
-
Для реагирования на предупреждения, связанные с настроенными вами группами приложений, удобнее всего просматривать активные предупреждения по определенным группам приложений. В консоли Operations Manager в области навигации нажмите кнопку Наблюдение, разверните узел Наблюдение за приложениями, разверните узел Наблюдение за .NET, щелкните папку с именем настроенной для наблюдения группы приложений, предупреждения для которой вы хотите просмотреть, а затем щелкните Активные предупреждения.
-
Дважды щелкните предупреждение, которое вы хотите открыть.
-
На странице Свойства предупреждения щелкните ссылку в области Описание предупреждения. В браузере откроется консоль диагностики приложений, новый компонент наблюдения Operations Manager. На вкладке Свойства события можно увидеть такую информацию, как метрики производительности, стек вызовов и примечания. С помощью вкладок вы можете просмотреть аналогичные события, связанные события, цепочки событий и счетчики производительности. Эта подробная информация о событии производительности или исключения поможет вам установить, возникла ли неполадка в самом приложении, в процессе вызова веб-службы или при обращении к базе данных. Дополнительные сведения о вкладке "Свойства события" см. в сведениях о событии производительности. Нажмите кнопку Да, чтобы закрыть основное окно после загрузки сведений о событии.
Примечание Ссылка на консоль диагностики приложений также имеется на вкладке Контекст предупреждения.
Для анализа предупреждения используйте следующие процедуры. ИТ-специалистам скорее всего потребуется информация на вкладках "Свойства события", "Счетчики производительности" и "Распределенные цепочки" для выяснения того, что произошло, связана ли проблема с неполадкой системы и в чем ее первопричина. Разработчикам же скорее всего потребуется информация на вкладках "Распределенные цепочки", "Аналогичные события" и "Связанные события" для определения контекста проблемы, связанной с кодом.
Устранение неполадок с помощью свойств события исключения в консоли диагностики приложений
-
В окне "Диагностика приложений" для анализируемого предупреждения об исключении перейдите на вкладку Свойства события, чтобы просмотреть основные сведения о предупреждении. Именно здесь следует начинать поиск причины проблемы. Вот некоторые из основных категорий сведений, которые можно найти на странице "Свойства события".
- **Источник**. Чтобы просмотреть время загрузки и ответа приложения, щелкните ссылку **Источник** в левом верхнем углу. Откроется информация о загрузке системы в тот момент, когда наступило событие исключения. Чтобы просмотреть счетчики производительности и полнее оценить состояние системы, на странице "Источник" перейдите на вкладку **Тренд-отчеты**. Чтобы узнать, на каких компьютерах работает это приложение и нет ли проблем с балансировкой нагрузки между ними, перейдите на вкладку **Компьютеры**. Чтобы просмотреть подробные сведения о связанных вызовах или узнать, к каким цепочкам относятся события, перейдите на вкладку **Топология**. - **Цепочка исключения**. Отображается для событий исключений. Разверните цепочку исключения, чтобы увидеть, как именно произошло исключение. - **Данные исключения**. Отображается для событий исключений и содержит параметры и переменные, заданные для класса при возникновении исключения. - **Стек**. Это стек вызовов, который показывает порядок возникновения событий. Представление дерева выполнения позволяет развернуть узлы для анализа вызовов. Чтобы получить общие сведения о том, как долго выполнялась та или иная задача, установите переключатель в положение **Представление группы ресурсов**. Таким образом можно узнать, на каком уровне или где возникла проблема. - **Список модулей**. Отображается для событий исключений и содержит модули, загруженные в момент возникновения исключения. - **Примечания**. Содержит примечания к событию.
Совет Для устранения неполадок, связанных с событиями производительности, аналогичными событиями, связанными событиями, распределенными цепочками и счетчиками производительности, используйте те же действия, что и для событий исключений.
Устранение неполадок с помощью свойств события производительности в консоли диагностики приложений
-
В окне "Диагностика приложений" для анализируемого предупреждения о производительности перейдите на вкладку Свойства события, чтобы просмотреть основные сведения о предупреждении. Именно здесь следует начинать поиск причины проблемы. Вот некоторые из основных категорий сведений, которые можно найти на странице свойств события производительности.
- **Источник**. Чтобы просмотреть время загрузки и ответа приложения, щелкните ссылку **Источник** в левом верхнем углу. Откроется информация о загрузке системы в тот момент, когда наступило событие исключения. Чтобы просмотреть счетчики производительности и полнее оценить состояние системы, на странице "Источник" перейдите на вкладку **Тренд-отчеты**. Чтобы узнать, на каких компьютерах работает это приложение и нет ли проблем с балансировкой нагрузки между ними, перейдите на вкладку **Компьютеры**. Чтобы просмотреть подробные сведения о связанных вызовах или узнать, к каким цепочкам относятся события, перейдите на вкладку **Топология**. - **Самые медленные узлы**. Это список самых медленных узлов в представлении дерева выполнения, которые являются наиболее вероятной причиной проблем с производительностью в приложении. - **Стек**. Это стек вызовов, который показывает порядок возникновения событий. Представление дерева выполнения позволяет развернуть узлы для анализа вызовов. Чтобы получить общие сведения о том, как долго выполнялась та или иная задача, установите переключатель в положение **Представление группы ресурсов**. Таким образом можно узнать, на каком уровне или где возникла проблема. - **Примечания**. Содержит примечания к событию.
Диагностика состояния системы с помощью счетчиков производительности
-
Чтобы просмотреть основные счетчики производительности в виде таблицы или схемы, перейдите на вкладку Счетчики производительности.
Примечание В отслеживаемой системе собираются и кэшируются данные о производительности за последние пятнадцать минут. Если происходит событие производительности или исключения, эти данные отправляются в Operations Manager вместе с событием.
-
Установите флажки рядом со счетчиками производительности, данные которых необходимо получать, и нажмите кнопку Применить.
-
Используйте информацию на этом экране для оценки состояния производительности системы в то время, когда произошло анализируемое событие. Например, если производительность в это время была постоянно низкая, предупреждение скорее всего вызвано проблемой с производительностью системы.
Поиск источника проблемы с помощью распределенных цепочек
-
Чтобы просмотреть очередность вызовов, то есть цепочку событий, к которой относится данное событие, перейдите на вкладку Распределенные цепочки. Это поможет вам понять, как повлияли на анализируемое событие другие события данного приложения или связанных с ним приложений.
-
В представлении распределенных цепочек щелкните один из вызовов (то есть звеньев) в цепочке. Если для одного объекта имеется несколько событий, откроется мастер создания цепочек. Этот мастер позволяет выбрать события, которые могут быть связаны с цепочкой событий. Чтобы начать работу с мастером, нажмите кнопку Далее.
Примечание Получите метку времени выбранного вызова, так как она потребуется для сопоставления с событием на следующей странице.
-
На странице Выбор возможного события цепочки выберите событие, которое вы хотите проанализировать. В идеале это должно быть событие с меткой времени, наиболее близкой к метке времени вызова, выбранного в представлении "Распределенные цепочки".
-
То, что вы увидите дальше, зависит от типа проблемы, которую вы исследуете. Например, если вы выбрали транзакцию, при выполнении которой не удалось найти сервер, может открыться страница свойств этого события. Это позволит вам сопоставить ошибку сервера с событием, которые вы анализировали изначально. Так как это ошибка сервера, вы знаете, что проблема кроется не на стороне клиента, а на стороне сервера. Вы можете увидеть график выбранного события, с помощью которого сможете детально проанализировать событие производительности с учетом времени загрузки страницы.
-
На странице свойств события выберите вызов на стороне сервера и перейдите на вкладку Счетчики производительности, чтобы получить дополнительные сведения.
Устранение неполадок путем просмотра аналогичных событий
-
Перейдите на вкладку Аналогичные события, чтобы узнать, не создавались ли аналогичные предупреждения, что может указывать на проблему с приложением.
-
Есть несколько способов отфильтровать аналогичные события. Щелкните раскрывающееся меню Подобно, чтобы выбрать способ группировки аналогичных событий: по проблеме, действию, классу исключения или функции, завершившейся сбоем. В текстовых полях От и До вы можете указать диапазон дат, для которого нужно просмотреть аналогичные события. Воспользуйтесь вкладкой Аналогичные события, чтобы узнать, не создавались ли аналогичные предупреждения, что может указывать на проблему с приложением.
- **Фильтрация по проблеме** позволяет просмотреть аналогичные события того же типа. Например, вы можете просмотреть все аналогичные события, связанные с тем, что ссылка на объект не указывает на экземпляр объекта. Нажмите кнопку **Схема**, чтобы узнать соотношение общего числа событий, связанных с текущей проблемой, и общего числа событий, связанных с другими проблемами. Таким образом можно быстро получить представление о серьезности проблемы, вызвавшей данное событие. Если большое число текущих аналогичных событий связано с одной и той же проблемой, возможно, ее следует решить в первую очередь, так как это позволит значительно уменьшить количество получаемых предупреждений. - **Фильтрация по действию** позволяет группировать аналогичные события по определенному аспекту: безопасности, производительности, возможностям подключения и сбоям приложения. Нажмите кнопку **Схема**, чтобы просмотреть число аналогичных событий по этим категориям и определить, с какими аспектами может быть связана проблема. - **При фильтрации по классу исключений** аналогичные события группируются в соответствии с их именами, назначенными в ходе настройки. Предположительно, эти имена могут помочь определить имеющийся вид исключений, например класс **System.NullReferenceException**. - **При фильтрации по функции, завершившейся сбоем,** аналогичные события группируются по той функции, в которой было вызвано исключение. Это может означать наличие проблемы с точкой входа.
Следует иметь в виду, что все эти события являются аналогичными — они связаны по определению, и указанные фильтры позволяют точно выяснить их взаимосвязь. Поэтому при использовании фильтров аналогичных событий можно определить, что большинство происходящих событий связано с той же проблемой, что и просматриваемое событие, и этой проблемой является проблема производительности. Также можно заметить, что события принадлежат к настроенному классу исключений, и половина аналогичных событий связана с одной и той же функцией, завершившейся сбоем. Действие: функция передается разработчику для изменения ее кода.
Устранение неполадок посредством просмотра связанных событий
-
Чтобы просмотреть связанные по времени события, выберите вкладку Связанные события. Существуют исключения, взаимосвязанные с другими событиями, изучение которых может помочь выявить проблему.
-
Для просмотра сведений о событии из списка щелкните ссылку в столбце Описание.
При изучении связанных событий можно заметить, что время отклика было слишком большим для всех событий, произошедших в определенное время. Это может означать наличие проблем с системой, а не с кодом, поэтому решение проблемы может быть передано в отдел ИТ.