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


Историческое наблюдение с помощью метрик службы WCF

В разделе Журнал вызовов WCF отображаются исторические метрики для вызовов WCF, поступающих в службы WCF и WF Платформа .NET Framework 4, управляемые AppFabric.Сводные метрики Выполнено и Ошибки содержат сведения о совокупном количестве успешных выполнений и сбоев, имевших место в результате получения вызовов WCF.Можно развернуть раздел Журнал вызовов WCF (щелкнув стрелку вниз или в любом месте, кроме ссылок сводных метрик в строке заголовка Журнал вызовов WCF), чтобы отобразить первые пять служб, для которых имеются Выполненные вызовы или Исключения служб.При выполнении данного действия также отображается значение Ошибки — Группирование по общим типам. Эти сводные значения верхнего уровня и их связанные подробные представления, идущие в порядке убывания, можно использовать для отслеживания истории вызовов WCF для служб.

Метрики «Журнал вызовов WCF»

В разделе Журнал вызовов WCF панели мониторинга AppFabric в затененном поле заголовка, где находится заголовок Журнал вызовов WCF, представлено сводное представление вызовов службы WCF.Следующие метрики позволяют быстро получить общее представление о вызовах WCF, которые были выполнены успешно, и вызовах, которые были выполнены с ошибкой.

  • Сводная метрика Выполнено обозначает совокупное количество принятых вызовов WCF, которые были выполнены без ошибок или исключений, вызывающих тип события WCF OperationCompleted.

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

  • Метрика Срабатывания регулирования предоставляет счетчик числа периодов регулирования WCF, имевших место для любой из служб, развернутых в соответствующей области.Отдельный период регулирования начинается с превышения порога регулирования WCF.Этот период заканчивается, когда значение регулирования становится меньше 70 % порога регулирования.

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

  • Выполненные вызовы —Группирование по службе (первые 5) — первые пять служб с наибольшим общим числом выполненных вызовов WCF за определенный период времени.

  • Исключения служб — Группирование по службе (первые 5) — первые пять служб с наибольшим общим числом исключений за определенный период времени.

  • Ошибки — Группирование по общим типам — группирование общего числа исключений служб или определенных пользователем ошибок.Счетчик исключений служб также делится на два наиболее распространенных типа:неудачные и завершившиеся с неустранимой ошибкой вызовы.Исключения служб могут также быть вызваны проблемами, отличными от неудачных или завершившихся с неустранимой ошибкой вызовов, например, ошибками активации.

В столбцы Выполненные вызовы —Группирование по службе (первые 5) или Исключения служб — Группирование по службе (первые 5) на панели мониторинга включены не все отслеживаемые события WCF.В события, отображаемые в столбцах для первых пяти служб, не входят события, порожденные внутренней службой AppFabric, управляющей конечными точками и событиями.В этих двух столбцах отображаются только события, у которых есть полный виртуальный путь службы.События, созданные на более высоком уровне в стеке канала WCF, например, обратные вызовы и исключения служб, не содержат полный виртуальный путь службы.События без полного виртуального пути службы исключаются из указанных счетчиков.Этим обеспечивается, что эти счетчики учитывают только пользовательские службы, и не учитывают пользовательские приложения.

Страница «Отслеживаемые события»

Страницу Отслеживаемые события можно использовать для просмотра журнала событий, которые произошли при определенной последовательности вызовов WCF для экземпляра службы.При щелчке любой сводной метрики (например, Выполнено) или одной из ссылок на службы под столбцом в разделе Журнал вызовов WCF (например, столбцом Выполненные вызовы) открывается страница Отслеживаемые события.

Страница «Отслеживаемые события»

Ссылка для перехода со страницы Панель мониторинга AppFabric на страницу Отслеживаемые события используется для фильтрации данных о событиях и вызовах WCF, чтобы перечисляемые на странице Отслеживаемые события данные соответствовали исходной ссылке.Например, при щелчке ссылки на запись службы под столбцом Исключения служб — Группирование по службе (первые 5) открывается страница Отслеживаемые события.На ней перечисляются события, отфильтрованные по типу события службы (в данном случае — «Исключения WCF»), и время порождения, соответствующее метрике и периоду времени, выбранным на панели мониторинга AppFabric.

Однако можно изменить значение одного или нескольких полей (например, События) в разделе Сводка по запросу, чтобы изменить выходные данные и провести дальнейшую диагностику по определенному типу событий.Например, если исходная метрика, которая привело к открытию страницы Отслеживаемые события, имела значение Исключения WCF, можно изменить значение поля События на Все события WCF, а затем нажать кнопку Запуск запроса для просмотра других результатов.

Для фильтрации отображаемых сообщений по типу можно использовать следующие параметры:

  • Все события WCF — отображение всех событий WCF, доступных в хранилище данных наблюдения, включая, в числе прочего, выполненные вызовы WCF, исключения WCF, неудачные вызовы WCF и вызовы с неустранимой ошибкой WCF.

  • Выполненные вызовы WCF — отображение всех выполненных вызовов WCF.

  • Все ошибки WCF — отображение всех событий, порожденных на уровне «Ошибка»:события исключений служб или определенных пользователем ошибок.

  • Исключения WCF — отображение всех исключений службы WCF.

  • Определенные пользователем ошибки WCF — отображение всех определенных пользователем событий, порожденных на уровне «Ошибка».

  • Неудачные вызовы WCF — отображение всех неудачных вызовов WCF.

  • Вызовы WCF с неустранимой ошибкой — отображение всех вызовов WCF с неустранимой ошибкой.

  • Срабатывания регулирования WCF — отображение событий регулирования WCF.Каждое событие представляет период регулирования и порождается при первом превышении порогового значения регулирования WCF.

  • Все события WF — отображение всех событий WF.

Дополнительные сведения см. в разделе Tracked Events Page.

Диагностика с помощью наблюдения метрик «Журнал вызовов WCF»

Указанные выше сведения можно объединить с целью проведения диагностики в разделе Журнал вызовов WCF, чтобы наблюдать за вызовами WCF в службах Платформа .NET Framework.При первоначальном просмотре раздела Журнал вызовов WCF предоставляется высокоуровневое сводное представление состояния вызовов WCF.Таким образом можно быстро узнать о наличии проблемы на уровне вызова WCF по наличию исключений, неудачных или завершившихся с неустранимой ошибкой вызовов.Если сводные метрики Исключения служб — Группирование по службе (первые 5) или Ошибки — Группирование по общим типам содержат ненулевое значение, это указывает на возможную проблему.Каждая сводная метрика связана со страницей Отслеживаемые события, на которой можно в явном виде просмотреть подробные метрики по данным вызовов WCF, по которым была создана сводка на начальной странице Панель мониторинга AppFabric на более высоком уровне.Эти необработанные данные предоставляют дополнительные сведения для изоляции проблемы, связанной с вызовами WCF.

Рассмотрим ситуацию, в которой секция Журнал вызовов WCF используется для наблюдения за вызовами WCF или службами WCF или WF в данной области для выявления проблем.Если для сводных метрик «Исключения» имеются ненулевые значения, то, развернув виджет, можно просмотреть детализацию исключений для пяти первых служб.Это позволяет сконцентрировать усилия на службах с наибольшим числом потенциальных проблем.После этого можно обратиться к определенной службе, для которой существует проблема, и указать сведения, открыв страницу перечисления и изменив значения запроса.

Предположим, что заголовок сводки Ошибки в виджете Журнал вызовов WCF содержит ненулевое значение, указывающее на наличие ошибок.Можно развернуть виджет Журнал вызовов WCF и обратиться к столбцу Исключения служб — Группирование по службе (первые 5), чтобы просмотреть первые пять служб с наибольшим числом исключений за выбранный период времени.Можно также обратиться к столбцу Ошибки — Группирование по общим типам для просмотра детализации по типам ошибок:«Исключения служб» (чаще всего вызванные неудачными и завершившимися с неустранимой ошибкой вызовами) или «Определенные пользователем ошибки».Чтобы получить дополнительные сведения по ошибкам или исключениям, можно щелкнуть одну из ссылок служб для открытия страницы Отслеживаемые события.

Примечание

Если интересующая вас служба Х является одной из первых пяти служб, она отображается на данной странице.В этом случае можно щелкнуть ссылку на эту службу для перехода на страницу Отслеживаемые события.Если служба X не входит в число первых пяти служб, можно щелкнуть любую метрику в разделе для перехода на страницу Отслеживаемые события.На этой странице можно соответствующим образом изменить существующий запрос (например, добавить условие для необходимого имени службы).

Страница Отслеживаемые события заполняется из журнала исключений, возникших в определенной области в иерархии службы IIS с именем X. Можно щелкнуть одно из событий исключений WCF в списке (но все еще на странице Отслеживаемые события), чтобы отобразить дополнительные сведения о данном исключении в области «Подробно» в нижней части страницы.Сведения об исключении можно просмотреть на вкладке Обзор, Отслеживаемые переменные или Ошибки области «Подробно».На вкладке Обзор содержатся общие сведения о событии, например параметры E2EActivityID (используется для корреляции при сквозном отслеживании), EventType, ExceptionTypeName, EventSourceId и другая информация.На вкладке Отслеживаемые переменные отображаются значения любых явно отслеживаемых переменных, хранящихся в событии.На вкладке Ошибки предоставляются сведения о вызвавшем исключение сбое, если они доступны.Эти сведения можно использовать для того, чтобы лучше понять процедуру вызова исключений WCF и эффективнее устранять связанные с ними проблемы.

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

Примечание

Чтобы воспользоваться параметром Просмотр всех связанных событий, для приложения должен быть установлен уровень наблюдения Сквозное наблюдение или более высокий.Этот уровень требует от инфраструктуры наблюдения собирать события передачи, сопоставляющие один идентификатор сквозного действия (E2EActivityId) с другим.

Кроме того, можно обратиться к столбцу Исключения служб — Группирование по службе (первые 5) для просмотра значения параметра Неудачные вызовы или Вызовы с неустранимой ошибкой.Общее число, указанное для параметра Неудачные вызовы или Вызовы с неустранимой ошибкой, входит в общее значение Исключения WCF, как указано в сводной области раздела. При щелчке ссылки на любой из этих двух параметров также выполняется переход на страницу Отслеживаемые события.В зависимости от выбранной ссылки отображается список перечисленных событий для параметра Неудачные вызовы WCF или Вызовы WCF с неустранимой ошибкой соответственно.Как было описано выше, когда в списке перечисленных значений выбирается одного из событий вызовов, в области «Подробно» отображаются дополнительные сведения.Можно также щелкнуть правой кнопкой мыши и выбрать пункт Просмотр всех связанных событий или Просмотр отслеживаемого экземпляра WF (если он доступен).

Дополнительные сведения о том, как получить более подробную информацию об отслеживаемом событии для облегчения устранения проблемы, см. в разделе Tracked Events Page.

Отображение сведений об ошибках WCF

AppFabric отображает информацию об ошибках для WCF только в том случае, когда для приложения задан уровень наблюдения не ниже «Сквозное наблюдение».При этом уровне выполняется захват потока сообщений WCF между службами и связи между событиями WF и WCF.Для приведенных ниже уровней наблюдения, включая уровень «Наблюдение за работоспособностью», информация об ошибках WCF в следующих разделах не отображается:

  • Столбцы Ошибки или Исключения служб в разделе Журнал вызовов WCF на странице Панель мониторинга AppFabric.

  • Вкладка Ошибки в области сведений на странице Отслеживаемые события.

  • Все разделы на странице Отслеживаемые события, в которых события WCF отображаются в результатах для условий запроса.

Например, вкладка Ошибки на странице Отслеживаемые события использует события передачи WCF для сбора сведений об исключениях из события исключения Service Model, которое соответствует событию для неудачного или завершившегося с неустранимой ошибкой вызова WCF.Если для наблюдаемого приложения настроено использование уровня наблюдения ниже уровня сквозного наблюдения, то события передачи WCF не захватываются.Из-за этого на вкладке Ошибки области «Подробно» не отображаются никакие значения.

Если используется уровень «Сквозное наблюдение» для захвата событий передачи и не требуется выполнять сбор дополнительных событий WF, выполните следующие действия:

  1. Откройте корневой файл конфигурации сервера C:\Windows\Microsoft.NET\Framework(64)\v4.0.xxx\CONFIG\Web.config.

  2. Скопируйте весь код, расположенный между записями <trackingProfile name="HealthMonitoring Tracking Profile"> и </trackingProfile>, включая их самих, в буфер обмена.Ниже приведен пример копируемых данных.

    <trackingProfile name="HealthMonitoring Tracking Profile">
       <workflow activityDefinitionId="*">
    <workflowInstanceQueries>
    <workflowInstanceQuery>
       <states>
    <state name="Started" />
    <state name="Completed" />
    <state name="Terminated" />
    <state name="Canceled" />
    <state name="Unsuspended" />
    <state name="Persisted" />
    <state name="Aborted" />
    <state name="UnhandledException" />
       </states>
    </workflowInstanceQuery>
    </workflowInstanceQueries>
    
    <activityStateQueries>
    <activityStateQuery activityName="*">
    <states>
    <state name="Closed" />
    </states>
    </activityStateQuery>
    </activityStateQueries>
    
    <faultPropagationQueries>
       <faultPropagationQuery faultSourceActivityName="*" faultHandlerActivityName="*" />
    </faultPropagationQueries>
    
    <customTrackingQueries>
    <customTrackingQuery name="*" activityName="*" />
    </customTrackingQueries>
    </workflow>
    </trackingProfile>
    
  3. Измените файл Web.config приложения.Убедитесь в наличии полного и допустимого вложения элементов в <system.serviceModel><tracking><profiles><trackingProfile>, внутрь которого в последующих действиях будет вставлено содержимое элемента <trackingProfile>.

  4. В начале раздела <system.serviceModel><tracking><profiles> добавьте <remove name=”EndToEndMonitoring Tracking Profile” />.

  5. В этом же разделе вставьте фрагмент кода, скопированный в действии 2, прямо под недавно вставленным тегом remove.

  6. Замените текст HealthMonitoring Tracking Profile на EndToEndMonitoring Tracking Profile в файле Web.config приложения.Сохраните текст и завершите работу редактора.

  7. Используя ползунок в диалоговом окне Настройка WCF и WF для приложения, измените Уровень наблюдения за приложением на Сквозное. AppFabric использует локальную запись профиля сквозного отслеживания из файла Web.config приложения, который является просто профилем отслеживания для уровня «Наблюдение за работоспособностью».

См. также

Другие ресурсы

Tracked Events Page

  2012-03-05