Мониторинг и диагностика состояния служб в локальной среде разработки
Благодаря возможностям мониторинга состояния, а также выявления, диагностики и устранения неполадок службы могут работать практически без перерывов. Мониторинг и диагностика состояния в рабочей среде играют важную роль. Вы можете существенно повысить эффективность работы и обеспечить успешное перемещение служб в рабочую среду, внедрив аналогичную модель мониторинга во время разработки служб. Платформа 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. Эта информация поможет вам получить запущенное и работающее приложение со средством просмотра событий диагностики, показывающим сообщения трассировки.
Если окно событий диагностики не отображается автоматически, перейдите на вкладку Вид в Visual Studio, выберите Другие окна и Средство просмотра событий диагностики.
Стандартные метаданные события включают сведения об исходных узле, приложении и службе. Вы можете фильтровать события в списке событий, используя поле События фильтра в верхней части окна. Например, вы можете выполнить фильтрацию по имени узла или имени службы. Кроме того, при просмотре информации о событии вы можете приостановить поток информации с помощью кнопки Пауза в верхней части окна, а позже возобновить его без потери событий.
Добавление собственных точек трассировки в код приложения
В шаблонах проектов Service Fabric в Visual Studio приведен пример кода, демонстрирующий добавление в код приложения собственных точек трассировки ETW. Их данные отображаются в средстве просмотра данных ETW в Visual Studio вместе с системными данными трассировки Service Fabric. Преимущество этого метода заключается в том, что метаданные автоматически добавляются в точки трассировки и их отображение уже настроено в средстве просмотра диагностических событий Visual Studio.
Для проектов, созданных из шаблонов служб (с отслеживанием или без отслеживания состояния), просто найдите реализацию RunAsync
:
- Вызовите
ServiceEventSource.Current.ServiceMessage
in theRunAsync
, чтобы просмотреть пример пользовательской точки трассировки ETW в коде приложения. - В файле ServiceEventSource.cs вы найдете перегрузку для метода
ServiceEventSource.ServiceMessage
, которая должна использоваться для событий с высокой частотой по соображениям производительности.
Для проектов, созданных из шаблонов субъектов (с отслеживанием или без отслеживания состояния):
- Откройте файл имя_проекта.cs , где имя_проекта — это имя, которое вы выбрали для своего проекта Visual Studio.
- Найдите строку
ActorEventSource.Current.ActorMessage(this, "Doing Work");
в методе DoWorkAsync . Это пример пользовательской точки трассировки ETW из кода приложения. - В файле ActorEventSource.cs вы найдете перегрузку для метода
ActorEventSource.ActorMessage
, которая должна использоваться для событий с высокой частотой по соображениям производительности.
После добавления пользовательской точки трассировки ETW в код службы вы можете снова скомпилировать, развернуть и запустить приложение, чтобы просмотреть события в средстве просмотра диагностических событий. При запуске отладки приложения с помощью клавиши F5средство просмотра диагностических событий открывается автоматически.
Следующие шаги
Код трассировки, добавленный в приложение для локальной диагностики, будет работать с инструментами, используемыми для просмотра соответствующих событий при выполнении вашего приложения в кластере Azure. Ознакомьтесь с этими статьями, в которых рассматриваются различные варианты инструментов и описывается, как их настроить.