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


Мониторинг и диагностика состояния служб в локальной среде разработки

Благодаря возможностям мониторинга состояния, а также выявления, диагностики и устранения неполадок службы могут работать практически без перерывов. Мониторинг и диагностика состояния в рабочей среде играют важную роль. Вы можете существенно повысить эффективность работы и обеспечить успешное перемещение служб в рабочую среду, внедрив аналогичную модель мониторинга во время разработки служб. Платформа Service Fabric позволяет использовать средства диагностики, которые одинаково хорошо работают как в среде разработки на одном локальном компьютере, так и в условиях реального рабочего кластера.

Трассировка событий Windows

трассировки событий Windows (ETW). Преимущества использования трассировки событий Windows:

  • ETW работает быстро. Технология разработана таким образом, что время выполнения кода практически не меняется.
  • Трассировка событий Windows одинаково работает в локальных средах разработки и в рабочем кластере. Это означает, что вам не потребуется изменять код трассировки, когда вы будете готовы развернуть свой код в реальном кластере.
  • Для внутренней трассировки системного кода Service Fabric также используется ETW. Вы можете просматривать данные с точек трассировки приложения параллельно с данными с системных точек трассировки Service Fabric. Это облегчает установление связей между кодом приложения и событиями в базовой системе.
  • В инструментах Visual Studio для работы с Service Fabric поддержка событий ETW предусмотрена по умолчанию. События трассировки событий Windows отображаются в представлении событий диагностики Visual Studio, когда для Visual Studio правильно настроена Service Fabric.

Просмотр системных событий Service Fabric в Visual Studio

Service Fabric генерирует события ETW, чтобы разработчики понимали, что происходит в платформе. Если это еще не сделано, следуйте указаниям статьи Создание первого приложения в Visual Studio. Эта информация поможет вам получить запущенное и работающее приложение со средством просмотра событий диагностики, показывающим сообщения трассировки.

  1. Если окно событий диагностики не отображается автоматически, перейдите на вкладку Вид в Visual Studio, выберите Другие окна и Средство просмотра событий диагностики.

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

    Средство просмотра событий диагностики Visual Studio

Добавление собственных точек трассировки в код приложения

В шаблонах проектов Service Fabric в Visual Studio приведен пример кода, демонстрирующий добавление в код приложения собственных точек трассировки ETW. Их данные отображаются в средстве просмотра данных ETW в Visual Studio вместе с системными данными трассировки Service Fabric. Преимущество этого метода заключается в том, что метаданные автоматически добавляются в точки трассировки и их отображение уже настроено в средстве просмотра диагностических событий Visual Studio.

Для проектов, созданных из шаблонов служб (с отслеживанием или без отслеживания состояния), просто найдите реализацию RunAsync:

  1. Вызовите ServiceEventSource.Current.ServiceMessage in the RunAsync , чтобы просмотреть пример пользовательской точки трассировки ETW в коде приложения.
  2. В файле ServiceEventSource.cs вы найдете перегрузку для метода ServiceEventSource.ServiceMessage, которая должна использоваться для событий с высокой частотой по соображениям производительности.

Для проектов, созданных из шаблонов субъектов (с отслеживанием или без отслеживания состояния):

  1. Откройте файл имя_проекта.cs , где имя_проекта — это имя, которое вы выбрали для своего проекта Visual Studio.
  2. Найдите строку ActorEventSource.Current.ActorMessage(this, "Doing Work"); в методе DoWorkAsync . Это пример пользовательской точки трассировки ETW из кода приложения.
  3. В файле ActorEventSource.cs вы найдете перегрузку для метода ActorEventSource.ActorMessage, которая должна использоваться для событий с высокой частотой по соображениям производительности.

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

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

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