Устранение неполадок с помощью отчетов о работоспособности системы
Компоненты Azure Service Fabric предоставляют готовые системные отчеты о работоспособности для всех сущностей в кластере. В магазине здоровья создаются и удаляются сущности на основании отчетов системы. Кроме того, эти сущности упорядочиваются в иерархию с учетом взаимодействия между ними.
Примечание.
Чтобы понять концепции, связанные со здоровьем, читайте больше в модели состояния Service Fabric.
В системных отчетах о работоспособности отражаются показатели функциональности кластеров и приложений, а также отмечаются проблемы. Что касается приложений и служб, отчеты о работоспособности системы проверяют правильность реализации и поведения сущностей на уровне платформы Service Fabric. Отчеты не обеспечивают отслеживание работоспособности бизнес-логики службы или обнаружение процессов, прекративших отвечать на запросы. Пользовательские службы могут обогатить данные о здоровье сведениями, характерными для их применения логики.
Примечание.
Отчеты о работоспособности, отправляемые пользователями-наблюдателями, отображаются только после того, как компоненты системы создают сущность. При удалении сущности хранилище данных о работоспособности автоматически удаляет все связанные с ней отчеты о работоспособности. Это же происходит при создании нового экземпляра сущности Примером является создание нового экземпляра реплики сохраняемой службы с состоянием. Все отчеты, связанные со старым экземпляром, удаляются и очищаются из хранилища.
Отчеты о компонентах системы определяются по их источнику, который начинается с префикса System. Устройства наблюдения не могут использовать такой же префикс для своих источников, так как из-за недопустимых параметров отчеты отклоняются.
Рассмотрим некоторые системные отчеты, чтобы понять, как они активируются, и узнаем, как устранить возможные проблемы, отраженные в них.
Примечание.
Платформа Service Fabric продолжает добавлять отчеты об интересующих условиях, которые улучшают видимость того, что происходит в кластере и приложениях. Существующие отчеты можно дополнить более подробными данными, чтобы ускорить устранение проблем.
Системные отчеты о работоспособности кластеров
В хранилище данных о работоспособности автоматически создается сущность работоспособности кластера. Если всё работает правильно, системного отчёта нет.
Потеря окружения
System.Federation сообщает об ошибке при обнаружении потери окружения. Отчеты приходят с отдельных узлов. В имя свойства включается идентификатор узла. Если в кольце Service Fabric теряется один сегмент, вы обычно можете ожидать два события, представляющих оба аспекта разрыва. Если теряется больше районов, происходит больше событий.
В отчете указывается тайм-аут глобальной аренды как срока жизни (TTL). Отчет повторно отправляется каждые полсрока действия TTL, пока условие остается активным. Событие автоматически удаляется по истечении срока его действия. Поведение автоматического удаления при истечении срока действия обеспечивает надлежащее удаление отчетов из хранилища данных о работоспособности, даже если узел, отправляющий отчет, не работает.
- SourceId: System.Federation.
- Свойство: начинается с Neighborhood и включает в себя сведения об узле.
- Дальнейшие действия: выясните, почему район в упадке. (например, проверьте связь между узлами кластера).
Восстановить
Служба "Диспетчер отработки отказов" (FM) управляет сведениями об узлах кластера. Когда диспетчер отработки отказов теряет свои данные и оказывается в состоянии потери данных, он не в состоянии гарантировать самую актуальную информацию об узлах кластера. В этом случае система проходит через перестройку и System.FM собирает данные со всех узлов в кластере, чтобы перестроить состояние. Иногда из-за проблем с сетью или узлами при перестроении могут возникнуть сбои или приостановка процесса. Это же может произойти со службой мастера диспетчера отработки отказов (FMM). Служба FMM — это безгосударственная системная служба, которая отслеживает расположение всех модулей FMM в кластере. Главный узел FMM — это всегда узел с идентификатором, наиболее близким к 0. При удалении этого узла активируется перестройка. System.FM или System.FMM помечают возникновение одного из предыдущих условий с помощью отчета об ошибке. Перестроение может застрять на одном из двух этапов.
Ожидание трансляции: FM/FMM ожидают ответа на широковещательное сообщение от других узлов.
- Дальнейшие действия. Проверьте, нет ли проблем с сетевым подключением между узлами.
Ожидание узлов: FM/FMM уже получили ответ широковещательной передачи от других узлов и ожидают ответа от определённых узлов. В отчете о работоспособности перечислены узлы, для которых диспетчер отработки отказов (FM) или мастер диспетчера отработки отказов (FMM) ожидают ответ.
- Следующие шаги: Исследуйте сетевое подключение между FM/FMM и указанными узлами. Исследуйте каждый указанный узел на предмет других возможных проблем.
Идентификатор источника: System.FM или System.FMM.
Свойство: Восстановление.
Дальнейшие действия. Проверьте сетевое подключение между узлами, а также состояние какого-либо определенного узла, указанного в описании отчета о работоспособности.
Состояние начального узла
System.FM выдает предупреждение на уровне кластера, если некоторые начальные узлы неработоспособны. Начальные узлы — это узлы, которые поддерживают доступность базового кластера. Эти узлы гарантируют работу кластера, арендуя другие узлы и выступая в роли прерывателя связи во время определенных сбоев сети. Если большинство начальных узлов в кластере выведено из строя и они не возобновляют работу, кластер автоматически завершает работу.
Начальный узел неработоспособен, если находится в состоянии "Отключено", "Удалено" или "Неизвестно". В отчете по предупреждению о состоянии начального узла будут перечислены все неработоспособные начальные узлы и приведены подробные сведения.
- SourceId: System.FM
- Свойство: SeedNodeStatus
- Дальнейшие действия: Если для кластера отображается такое предупреждение, следуйте приведенным ниже инструкциям по устранению неполадки. Для кластера, на котором выполняется Service Fabric версии 6.5 или более поздней: Для кластера Service Fabric на Azure, после отключения начального узла Service Fabric попытается автоматически изменить его на узел, не являющийся начальным. Чтобы это сработало, количество несеменных узлов в типе первичного узла должно быть больше или равно количеству выключенных начальных узлов. При необходимости добавьте дополнительные узлы в тип основного узла, чтобы добиться этого. На устранение проблемы может потребоваться некоторое время В зависимости от состояния кластера. После этого отчет о предупреждениях будет автоматически очищен.
Чтобы очистить отчет о предупреждениях в автономном кластере Service Fabric, необходимо, чтобы все начальные узлы стали здоровыми. В зависимости от причин неработоспособности начальных узлов, необходимо выполнить различные действия. Если начальный узел "Отключен", пользователи должны включить этот начальный узел. Если начальный узел обозначен как "Удален" или "Неизвестно", его необходимо удалить из кластера. Предупредительный отчет автоматически удаляется, когда все начальные узлы становятся здоровыми.
Для кластера, в котором выполняется Service Fabric версии выше 6.5: в этом случае отчет о предупреждениях необходимо очистить вручную. Прежде чем очистить отчет, пользователи должны убедиться в работоспособности всех начальных узлов. Если начальный узел "Отключен", пользователи должны включить его. Если начальный узел обозначен как "Удален" или "Неизвестно", его необходимо удалить из кластера. Когда все начальные узлы станут работоспособными, выполните следующую команду PowerShell, чтобы очистить отчет о предупреждениях:
PS C:\> Send-ServiceFabricClusterHealthReport -SourceId "System.FM" -HealthProperty "SeedNodeStatus" -HealthState OK
Системные отчеты о работоспособности узлов
System.FM представляет собой службу диспетчера отработки отказов. Это система, которая управляет сведениями об узлах кластера. Каждый узел должен содержать один отчет системы System.FM о его состоянии. Сущности узла удаляются, когда состояние узла удаляется. Дополнительные сведения см. в разделе RemoveNodeStateAsync.
Включение и отключение узла
Система System.FM сообщает о нормальном состоянии, если узел присоединяется к кольцевой сети (запускается и работает). Система выдает сообщение об ошибке, когда узел отключается от кольцевой сети (не работает из-за обновления или сбоя). Иерархия работоспособности, созданная в хранилище данных о работоспособности, выполняет действия с развернутыми сущностями в соответствии с отчетами об узлах System.FM. Считается, что узел является виртуальным родителем всех развернутых объектов. Развернутые сущности на этом узле доступны посредством запросов, если в отчетах System.FM указано, что узел работает, и экземпляр на узле идентичен экземпляру, связанному с этими сущностями. Когда System.FM сообщает о прекращении работы или перезапуске узла (новый экземпляр), хранилище данных о работоспособности автоматически удаляет развернутые сущности, которые могут существовать только на отключенном узле или предыдущем экземпляре узла.
- SourceId: System.FM.
- Свойство: Состояние.
- Дальнейшие действия: если узел не работает вследствие обновления, он запустится после обновления. В этом случае состояние должно снова переключиться на "ОК". Если узел не возобновляет работу или вышел из строя, необходимо дополнительно проанализировать проблему.
В следующем примере показано событие System.FM с состоянием "ОК" для активного узла.
PS C:\> Get-ServiceFabricNodeHealth _Node_0
NodeName : _Node_0
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Ok
SequenceNumber : 8
SentAt : 7/14/2017 4:54:51 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : Fabric node is up.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
Истечение срока действия сертификата
System.FabricNode выдает предупреждение, когда приближается истечение срока действия сертификатов, используемых узлом. У каждого узла есть три сертификата: Certificate_cluster, Certificate_server и Certificate_default_client. Если срок действия истекает не ранее, чем через две недели, состояние отчета считается нормальным. Если срок действия истекает в течение двух недель, отображается отчет с предупреждением. Срок жизни этих событий не ограничен. Они удаляются при выходе узла из кластера.
- SourceId: System.FabricNode.
- Свойство: начинается с Certificate и содержит дополнительные сведения о типе сертификата.
- Дальнейшие действия: обновите сертификаты, если срок их действия вскоре истечет.
Нарушение грузоподъемности
Подсистема балансировки нагрузки Service Fabric выдает предупреждение, если обнаруживает нарушение емкости узла.
- SourceId: System.PLB.
- Свойство: начинается с Capacity.
- Дальнейшие действия: проверьте предоставленные метрики и просмотрите данные о текущей емкости на узле.
Несоответствие емкости узла и метрик управления ресурсами
System.Hosting выдает предупреждение, если определенные емкости узлов в манифесте кластера превышают реальные емкости узлов для метрик управления ресурсами (память и количество ядер ЦП). Отчет о работоспособности отобразится, когда первый пакет службы, использующий систему управления ресурсами, зарегистрируется на указанном узле.
- SourceId: System.Hosting.
- Свойство:ResourceGovernance.
- Дальнейшие действия: может возникнуть проблема, так как пакеты управления службами не выполняются должным образом и система управления ресурсами работает неправильно. Обновите манифест кластера, используя правильные значения емкости узлов для этих метрик, или не указывайте их, тогда Service Fabric автоматически обнаружит доступные ресурсы.
Системные отчеты о работоспособности приложений
System.CM представляет собой службу диспетчера кластеров. Это система, которая управляет сведениями о приложении.
Государство
Система System.CM сообщает об отсутствии проблем во время создания или обновления приложения. Она уведомляет магазин приложений для здоровья о том, что приложение удалено, чтобы оно могло быть удалено из магазина.
- SourceId: System.CM.
- Свойство: Состояние.
- Дальнейшие действия: если приложение создано или обновлено, оно должно включать отчет о работоспособности диспетчера кластера. Или проверьте состояние приложения, выполнив запрос Например, используйте командлет Get-ServiceFabricApplication -ApplicationNameapplicationName.
В следующем примере показано событие состояния в приложении fabric:/WordCount .
PS C:\> Get-ServiceFabricApplicationHealth fabric:/WordCount -ServicesFilter None -DeployedApplicationsFilter None -ExcludeHealthStatistics
ApplicationName : fabric:/WordCount
AggregatedHealthState : Ok
ServiceHealthStates : None
DeployedApplicationHealthStates : None
HealthEvents :
SourceId : System.CM
Property : State
HealthState : Ok
SequenceNumber : 282
SentAt : 7/13/2017 5:57:05 PM
ReceivedAt : 7/14/2017 4:55:10 PM
TTL : Infinite
Description : Application has been created.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/13/2017 5:57:05 PM, LastWarning = 1/1/0001 12:00:00 AM
Отчеты о состоянии системы обслуживания
System.FM, представляющая собой службу диспетчера отработки отказов, является уполномоченным органом, управляющим сведениями о службах.
Государство
Система System.FM сообщает об отсутствии проблем, когда служба создана. Она удаляет сущность из хранилища данных о работоспособности, когда служба удалена.
- SourceId: System.FM.
- Свойство: Состояние.
В следующем примере показано событие состояния в службе fabric:/WordCount/WordCountWebService.
PS C:\> Get-ServiceFabricServiceHealth fabric:/WordCount/WordCountWebService -ExcludeHealthStatistics
ServiceName : fabric:/WordCount/WordCountWebService
AggregatedHealthState : Ok
PartitionHealthStates :
PartitionId : 8bbcd03a-3a53-47ec-a5f1-9b77f73c53b2
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Ok
SequenceNumber : 14
SentAt : 7/13/2017 5:57:05 PM
ReceivedAt : 7/14/2017 4:55:10 PM
TTL : Infinite
Description : Service has been created.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/13/2017 5:57:18 PM, LastWarning = 1/1/0001 12:00:00 AM
Ошибка корреляции служб
System.PLB сообщает об ошибке, когда обнаруживает, что обновление службы связано с другой службой, что приводит к созданию цепочки взаимосвязей. Отчет очищается, когда происходит успешное обновление.
- SourceId: System.PLB.
- Свойство:ServiceDescription.
- Дальнейшие действия: проверьте описания сопоставленных служб.
Отчеты о состоянии системы разделов
System.FM, который представляет собой службу Failover Manager, является органом, управляющим сведениями о разделах сервисов.
Государство
Система System.FM сообщает о статусе "ОК", если раздел создан и находится в исправном состоянии. Удаляет сущность из хранилища здоровья при удалении раздела.
Если в разделе нет минимального требуемого количества реплик, она сообщает об ошибке. Если количество реплик в разделе не ниже минимального, но ниже целевого, он отображает предупреждение. Если в разделе наблюдается потеря кворума, система System.FM сообщает об ошибке.
Другие важные события: предупреждение о том, что перенастройка или сборка занимают больше времени, чем ожидалось. Ожидаемое время, необходимое для сборки или перенастройки, настраивается на основе сценариев службы. Если служба, например база данных SQL Azure, содержит терабайт данных о состоянии, то сборка занимает больше времени, чем для службы с меньшим объемом данных о состоянии.
- SourceId: System.FM.
- Свойство: Состояние.
- Дальнейшие действия: если с состоянием работоспособности наблюдаются проблемы, возможно, некоторые реплики не созданы, не открыты либо их уровень не повышен до первичной или вторичной реплики должным образом.
Если в описании указана потеря кворума, необходимо просмотреть подробный отчет о состоянии реплик, которые не работают, и восстановить их работоспособность. Это поможет вернуть раздел в сеть.
Если в описание указано, что заблокирована перенастройка секции, то дополнительные сведения можно будет получить из отчета о работоспособности первичной реплики.
Для других отчетов о работоспособности System.FM также могут существовать отчеты о репликах, разделах или службах от других компонентов системы.
Некоторые из этих отчетов описываются в приведенных ниже примерах.
Ниже приведен пример работоспособного раздела.
PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountWebService | Get-ServiceFabricPartitionHealth -ExcludeHealthStatistics -ReplicasFilter None
PartitionId : 8bbcd03a-3a53-47ec-a5f1-9b77f73c53b2
AggregatedHealthState : Ok
ReplicaHealthStates : None
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Ok
SequenceNumber : 70
SentAt : 7/13/2017 5:57:05 PM
ReceivedAt : 7/14/2017 4:55:10 PM
TTL : Infinite
Description : Partition is healthy.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/13/2017 5:57:18 PM, LastWarning = 1/1/0001 12:00:00 AM
В следующем примере показаны данные о работоспособности секции, количество реплик в которой меньше целевого значения. Далее необходимо получить описание секции со сведениями о ее конфигурации: MinReplicaSetSize равно 3, а TargetReplicaSetSize — 7. Затем получите количество узлов в кластере. В данном случае оно равно пяти. В этом случае мы не сможем разместить две реплики, так как требуемое число реплик больше, чем число доступных узлов.
PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | Get-ServiceFabricPartitionHealth -ReplicasFilter None -ExcludeHealthStatistics
PartitionId : af2e3e44-a8f8-45ac-9f31-4093eb897600
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.FM', Property='State', HealthState='Warning', ConsiderWarningAsError=false.
ReplicaHealthStates : None
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Warning
SequenceNumber : 123
SentAt : 7/14/2017 4:55:39 PM
ReceivedAt : 7/14/2017 4:55:44 PM
TTL : Infinite
Description : Partition is below target replica or instance count.
fabric:/WordCount/WordCountService 7 2 af2e3e44-a8f8-45ac-9f31-4093eb897600
N/S Ready _Node_2 131444422260002646
N/S Ready _Node_4 131444422293113678
N/S Ready _Node_3 131444422293113679
N/S Ready _Node_1 131444422293118720
N/P Ready _Node_0 131444422293118721
(Showing 5 out of 5 replicas. Total available replicas: 5)
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 7/14/2017 4:55:44 PM, LastOk = 1/1/0001 12:00:00 AM
SourceId : System.PLB
Property : ServiceReplicaUnplacedHealth_Secondary_af2e3e44-a8f8-45ac-9f31-4093eb897600
HealthState : Warning
SequenceNumber : 131445250939703027
SentAt : 7/14/2017 4:58:13 PM
ReceivedAt : 7/14/2017 4:58:14 PM
TTL : 00:01:05
Description : The Load Balancer was unable to find a placement for one or more of the Service's Replicas:
Secondary replica could not be placed due to the following constraints and properties:
TargetReplicaSetSize: 7
Placement Constraint: N/A
Parent Service: N/A
Constraint Elimination Sequence:
Existing Secondary Replicas eliminated 4 possible node(s) for placement -- 1/5 node(s) remain.
Existing Primary Replica eliminated 1 possible node(s) for placement -- 0/5 node(s) remain.
Nodes Eliminated By Constraints:
Existing Secondary Replicas -- Nodes with Partition's Existing Secondary Replicas/Instances:
--
FaultDomain:fd:/4 NodeName:_Node_4 NodeType:NodeType4 UpgradeDomain:4 UpgradeDomain: ud:/4 Deactivation Intent/Status: None/None
FaultDomain:fd:/3 NodeName:_Node_3 NodeType:NodeType3 UpgradeDomain:3 UpgradeDomain: ud:/3 Deactivation Intent/Status: None/None
FaultDomain:fd:/2 NodeName:_Node_2 NodeType:NodeType2 UpgradeDomain:2 UpgradeDomain: ud:/2 Deactivation Intent/Status: None/None
FaultDomain:fd:/1 NodeName:_Node_1 NodeType:NodeType1 UpgradeDomain:1 UpgradeDomain: ud:/1 Deactivation Intent/Status: None/None
Existing Primary Replica -- Nodes with Partition's Existing Primary Replica or Secondary Replicas:
--
FaultDomain:fd:/0 NodeName:_Node_0 NodeType:NodeType0 UpgradeDomain:0 UpgradeDomain: ud:/0 Deactivation Intent/Status: None/None
RemoveWhenExpired : True
IsExpired : False
Transitions : Error->Warning = 7/14/2017 4:56:14 PM, LastOk = 1/1/0001 12:00:00 AM
PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | select MinReplicaSetSize,TargetReplicaSetSize
MinReplicaSetSize TargetReplicaSetSize
----------------- --------------------
2 7
PS C:\> @(Get-ServiceFabricNode).Count
5
В следующем примере показано состояние раздела, заблокированного на этапе перенастройки из-за того, что пользователь не учел токен отмены в методе RunAsync. Просмотр отчета о работоспособности любой реплики, помеченной как первичная (P), может помочь более детально изучить проблему.
PS C:\utilities\ServiceFabricExplorer\ClientPackage\lib> Get-ServiceFabricPartitionHealth 0e40fd81-284d-4be4-a665-13bc5a6607ec -ExcludeHealthStatistics
PartitionId : 0e40fd81-284d-4be4-a665-13bc5a6607ec
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.FM', Property='State', HealthState='Warning',
ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.FM
Property : State
HealthState : Warning
SequenceNumber : 7
SentAt : 8/27/2017 3:43:09 AM
ReceivedAt : 8/27/2017 3:43:32 AM
TTL : Infinite
Description : Partition reconfiguration is taking longer than expected.
fabric:/app/test1 3 1 0e40fd81-284d-4be4-a665-13bc5a6607ec
P/S Ready Node1 131482789658160654
S/P Ready Node2 131482789688598467
S/S Ready Node3 131482789688598468
(Showing 3 out of 3 replicas. Total available replicas: 3)
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Ok->Warning = 8/27/2017 3:43:32 AM, LastError = 1/1/0001 12:00:00 AM
Этот отчет о работоспособности показывает состояние реплик раздела, подвергающегося перенастройке.
P/S Ready Node1 131482789658160654
S/P Ready Node2 131482789688598467
S/S Ready Node3 131482789688598468
Для каждой реплики отчет о работоспособности содержит:
- роль в предыдущей конфигурации;
- роль в текущей конфигурации;
- состояние реплики;
- узел, на котором выполняется реплика;
- идентификатор реплики
В случае, пример которого приведен, требуется углубленное изучение. Изучите работоспособность каждой отдельной реплик, начав с реплик, которые помечены как Primary
и Secondary
(131482789658160654 и 131482789688598467) в предыдущем примере.
Нарушение ограничений репликации
System.PLB выдает предупреждение, если обнаруживает нарушение ограничений реплик и не может разместить все реплики раздела. В сведениях отчета показано, какие ограничения и свойства блокируют размещение реплики.
- SourceId: System.PLB.
- Свойство: начинается с ReplicaConstraintViolation.
Отчеты о работоспособности системы реплик
System.RA представляет собой компонент агента перенастройки. Это система для отслеживания состояния реплики.
Государство
System.RA сообщает об успешном завершении процесса после создания реплики.
- SourceId: System.RA.
- Свойство: Состояние.
Ниже приведен пример работоспособной реплики.
PS C:\> Get-ServiceFabricPartition fabric:/WordCount/WordCountService | Get-ServiceFabricReplica | where {$_.ReplicaRole -eq "Primary"} | Get-ServiceFabricReplicaHealth
PartitionId : af2e3e44-a8f8-45ac-9f31-4093eb897600
ReplicaId : 131444422293118721
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.RA
Property : State
HealthState : Ok
SequenceNumber : 131445248920273536
SentAt : 7/14/2017 4:54:52 PM
ReceivedAt : 7/14/2017 4:55:13 PM
TTL : Infinite
Description : Replica has been created._Node_0
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:13 PM, LastWarning = 1/1/0001 12:00:00 AM
ReplicaOpenStatus, ReplicaCloseStatus, ReplicaChangeRoleStatus
Это свойство используется для указания предупреждений или сбоев при попытке открыть реплику, закрыть реплику или изменить роль реплики. Ознакомьтесь с жизненным циклом реплики. Ошибками могут быть исключения, порожденные вызовами API или аварийным завершением процесса узла службы в течение этого времени. Для сбоев из-за вызовов API из кода C# платформа Service Fabric добавляет в отчет о работоспособности исключение и трассировку стека.
Эти предупреждения о здоровье создаются после того, как действие несколько раз пробуют выполнить локально (в зависимости от политики). Платформа Service Fabric повторяет действие, пока не будет достигнуто максимальное пороговое значение. По достижении максимального значения порога платформа может попытаться исправить ситуацию. Эта попытка может привести к снятию этих предупреждений, поскольку она отказывается от выполнения действия на данном узле. Пример. Если не удастся открыть реплику на узле, Service Fabric выдаст предупреждение о работоспособности. Если реплику по-прежнему не удается открыть, Service Fabric предпринимает меры для самостоятельного восстановления. При этом может быть предпринята попытка выполнить ту же самую операцию на другом узле. Эта попытка приведет к снятию предупреждения об этой реплике.
- SourceId: System.RA.
- Свойство: ReplicaOpenStatus, ReplicaCloseStatus и ReplicaChangeRoleStatus.
- Дальнейшие действия. Изучите код службы и аварийные дампы, чтобы определить, почему происходит сбой операции.
В следующем примере показана работоспособность реплики, порождающей TargetInvocationException
в методе open. Описание содержит точку сбоя (IStatefulServiceReplica.Open), тип исключения (TargetInvocationException) и трассировку стека.
PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 337cf1df-6cab-4825-99a9-7595090c0b1b -ReplicaOrInstanceId 131483509874784794
PartitionId : 337cf1df-6cab-4825-99a9-7595090c0b1b
ReplicaId : 131483509874784794
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='ReplicaOpenStatus', HealthState='Warning',
ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : ReplicaOpenStatus
HealthState : Warning
SequenceNumber : 131483510001453159
SentAt : 8/27/2017 11:43:20 PM
ReceivedAt : 8/27/2017 11:43:21 PM
TTL : Infinite
Description : Replica had multiple failures during open on _Node_0 API call: IStatefulServiceReplica.Open(); Error = System.Reflection.TargetInvocationException (-2146232828)
Exception has been thrown by the target of an invocation.
at Microsoft.ServiceFabric.Replicator.RecoveryManager.d__31.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Replicator.LoggingReplicator.d__137.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Replicator.DynamicStateManager.d__109.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Replicator.TransactionalReplicator.d__79.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Replicator.StatefulServiceReplica.d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.ServiceFabric.Services.Runtime.StatefulServiceReplicaAdapter.d__0.MoveNext()
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/27/2017 11:43:21 PM, LastOk = 1/1/0001 12:00:00 AM
В следующем примере показана реплика, которая постоянно выходит из строя при закрытии.
C:>Get-ServiceFabricReplicaHealth -PartitionId dcafb6b7-9446-425c-8b90-b3fdf3859e64 -ReplicaOrInstanceId 131483565548493142
PartitionId : dcafb6b7-9446-425c-8b90-b3fdf3859e64
ReplicaId : 131483565548493142
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='ReplicaCloseStatus', HealthState='Warning',
ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : ReplicaCloseStatus
HealthState : Warning
SequenceNumber : 131483565611258984
SentAt : 8/28/2017 1:16:01 AM
ReceivedAt : 8/28/2017 1:16:03 AM
TTL : Infinite
Description : Replica had multiple failures during close on _Node_1. The application
host has crashed.
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/28/2017 1:16:03 AM, LastOk = 1/1/0001 12:00:00 AM
Переконфигурация
Это свойство используется для указания, когда реплика, выполняющая перенастройку, обнаруживает, что процесс перенастройки застопорился или замер. Этот отчет о состоянии здоровья может касаться реплики, которая в настоящий момент является первичной, за исключением случаев перенастройки, когда первичная реплика может быть переведена в активную вторичную.
Перенастройка может быть заблокирована по одной из следующих причин:
Действие с локальной репликой, той же самой, которая выполняет перенастройку, не завершается. В этом случае следует изучить отчеты о работоспособности этой реплики из других компонентов (System.RAP или System.RE). Они могут содержать дополнительные сведения.
Действие не завершается на удаленной реплике. Реплики, ожидающие действий, будут указаны в отчете о работоспособности. Следует подробнее изучить отчеты о состоянии этих удаленных реплик. Также возможны проблемы связи между текущим узлом и удаленным узлом.
В редких случаях перенастройка может быть заблокирована из-за проблем связи или других проблем между текущим узлом и службой диспетчера отработки отказов.
- SourceId: System.RA.
- Свойство: Переконфигурация.
- Дальнейшие действия: Изучите локальные или удалённые реплики в зависимости от содержания отчёта о состоянии системы.
В следующем примере показан отчет о работоспособности в ситуации, когда перенастройка застряла на локальной реплике. В этом примере это произошло из-за того, что служба не учитывает токен отмены.
PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 9a0cedee-464c-4603-abbc-1cf57c4454f3 -ReplicaOrInstanceId 131483600074836703
PartitionId : 9a0cedee-464c-4603-abbc-1cf57c4454f3
ReplicaId : 131483600074836703
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning',
ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : Reconfiguration
HealthState : Warning
SequenceNumber : 131483600309264482
SentAt : 8/28/2017 2:13:50 AM
ReceivedAt : 8/28/2017 2:13:57 AM
TTL : Infinite
Description : Reconfiguration is stuck. Waiting for response from the local replica
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/28/2017 2:13:57 AM, LastOk = 1/1/0001 12:00:00 AM
В следующем примере показан отчет о состоянии, где перенастройка застряла в ожидании ответа от двух удаленных реплик. В этом примере в разделе находятся три реплики, включая текущую первичную реплику.
PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 579d50c6-d670-4d25-af70-d706e4bc19a2 -ReplicaOrInstanceId 131483956274977415
PartitionId : 579d50c6-d670-4d25-af70-d706e4bc19a2
ReplicaId : 131483956274977415
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : Reconfiguration
HealthState : Warning
SequenceNumber : 131483960376212469
SentAt : 8/28/2017 12:13:57 PM
ReceivedAt : 8/28/2017 12:14:07 PM
TTL : Infinite
Description : Reconfiguration is stuck. Waiting for response from 2 replicas
Pending Replicas:
P/I Down 40 131483956244554282
S/S Down 20 131483956274972403
For more information see: https://aka.ms/sfhealth
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/28/2017 12:07:37 PM, LastOk = 1/1/0001 12:00:00 AM
Этот отчет о работоспособности показывает, что перенастройка была заблокирована из-за ожидания ответа от двух реплик.
P/I Down 40 131483956244554282
S/S Down 20 131483956274972403
В нем представлена следующая информация для каждой реплики:
- роль в предыдущей конфигурации;
- роль в текущей конфигурации;
- состояние реплики;
- Идентификатор узла
- идентификатор реплики.
Чтобы разблокировать перенастройку нужно:
- восстановить работоспособность нерабочих реплик;
- завершить сборку реплик в состоянии сборки и перевести их в состояние готовности.
Медленный вызов API службы
Системы System.RAP и System.Replicator выдают предупреждение, если вызов пользовательского кода службы длится больше заданного периода. Предупреждение удаляется по завершении вызова.
- SourceId: System.RAP или System.Replicator.
- Свойство: имя медленного API. В описании приводятся дополнительные сведения о времени, в течение которого в работе API наблюдалась задержка.
- Дальнейшие действия: выясните причину, по которой вызов занимает больше времени, чем ожидалось.
В следующем примере показано событие работоспособности из System.RAP для отказоустойчивого сервиса, который игнорирует маркер отмены в методе RunAsync.
PS C:\> Get-ServiceFabricReplicaHealth -PartitionId 5f6060fb-096f-45e4-8c3d-c26444d8dd10 -ReplicaOrInstanceId 131483966141404693
PartitionId : 5f6060fb-096f-45e4-8c3d-c26444d8dd10
ReplicaId : 131483966141404693
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.RA', Property='Reconfiguration', HealthState='Warning', ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RAP
Property : IStatefulServiceReplica.ChangeRole(S)Duration
HealthState : Warning
SequenceNumber : 131483966663476570
SentAt : 8/28/2017 12:24:26 PM
ReceivedAt : 8/28/2017 12:24:56 PM
TTL : Infinite
Description : The api IStatefulServiceReplica.ChangeRole(S) on _Node_1 is stuck. Start Time (UTC): 2017-08-28 12:23:56.347.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Warning = 8/28/2017 12:24:56 PM, LastOk = 1/1/0001 12:00:00 AM
Свойство и текст указывают, какие API привели к блокировке. Следующие шаги для различных зависших API различны. Любой API в IStatefulServiceReplica или IStatelessServiceInstance, как правило, является ошибкой в коде службы. В следующем разделе описано, как это преобразовать в модель Reliable Services.
IStatefulServiceReplica.Open: Это предупреждение указывает на то, что вызов к
CreateServiceInstanceListeners
,ICommunicationListener.OpenAsync
или, если переопределено,OnOpenAsync
застрял.IStatefulServiceReplica.Close и IStatefulServiceReplica.Abort. Наиболее распространенный случай — когда служба не учитывает маркер отмены, передаваемый в
RunAsync
. Возможна также ситуация, когдаICommunicationListener.CloseAsync
либо, если переопределено,OnCloseAsync
будет заблокировано.IStatefulServiceReplica.ChangeRole(S) и IStatefulServiceReplica.ChangeRole(N). Наиболее распространенный случай — когда служба не учитывает маркер отмены, передаваемый в
RunAsync
. В этом сценарии лучшим решением будет перезапуск реплики.IStatefulServiceReplica.ChangeRole(P). Наиболее распространенный случай — когда служба не вернула задачу из
RunAsync
.
Остальные вызовы API, которые могут быть заблокированы, относятся к интерфейсу IReplicator. Рассмотрим пример.
IReplicator.CatchupReplicaSet. Это предупреждение означает одну из следующих ситуаций: недостаточно активных реплик (это можно определить, посмотрев состояние реплик в секции или отчет о работоспособности System.FM для заблокированной перенастройки); Или реплики не подтверждают операции. С помощью командлета PowerShell
Get-ServiceFabricDeployedReplicaDetail
можно узнать ход выполнения всех реплик. Проблема связана с репликами, у которых значениеLastAppliedReplicationSequenceNumber
ниже значенияCommittedSequenceNumber
первичной реплики.IReplicator.BuildReplica(<Remote ReplicaId>). Это предупреждение указывает на проблему в процессе сборки. Ознакомьтесь с жизненным циклом реплики. Проблема может быть вызвана неправильной настройкой адреса репликатора. Дополнительные сведения см. в разделах Настройка надежных служб с отслеживанием состояния и Указание ресурсов в манифесте служб. Также возможно наличие проблемы на удаленном узле.
Системные отчеты о работоспособности репликатора
Переполнение очереди репликации.System.Replicator выдает предупреждение при переполнении очереди репликации. На основной реплике очередь репликации обычно заполняется, так как одна или несколько вторичных реплик медленно подтверждают операции. На вторичном сервере это обычно происходит, если служба медленно применяет операции. Предупреждение удаляется, когда очередь больше не заполнена.
- SourceId: System.Replicator.
- Свойство: PrimaryReplicationQueueStatus или SecondaryReplicationQueueStatus, в зависимости от роли реплики.
- Дальнейшие действия. Если отчет находится на сервере-источнике, проверьте подключение между узлами в кластере. Если все подключения находятся в работоспособном состоянии, возможно, по крайней мере одна вторичная реплика с высокой задержкой диска применяет операции. Если отчет находится на вторичном узле, сначала проверьте использование дискового пространства и производительность на узле. а затем проверьте исходящее соединение из медленного узла к первичному узлу.
RemoteReplicatorConnectionStatus:System.Replicator на первичной реплике указывает на проблему работоспособности подключения ко вторичному (удаленному) репликатору. Адрес удаленного репликатора можно посмотреть в сообщении отчетов. Это упрощает определение ложных конфигураций и сетевых проблем между репликаторами.
- SourceId: System.Replicator.
- Свойство:RemoteReplicatorConnectionStatus.
- Дальнейшие действия. Проверьте сообщение об ошибке и убедитесь, что адрес удаленного репликатора настроен правильно (например, если удаленный репликатор открывается с адресом ожидания передачи данных "localhost", внешний доступ к нему невозможен). Если адрес выглядит правильно, проверьте подключение между первичным узлом и удаленным адресом, чтобы найти возможные проблемы в сети.
Очередь репликации переполнена
System.Replicator выдает предупреждение при переполнении очереди репликации. На основном сервере очередь репликации обычно заполняется, потому что одна или несколько вторичных реплик медленно подтверждают операции. Это обычно происходит на вторичном сервере, если сервис медленно применяет операции. Предупреждение отменяется, когда очередь перестает быть переполненной.
- SourceId: System.Replicator.
- Свойство: PrimaryReplicationQueueStatus или SecondaryReplicationQueueStatus, в зависимости от роли реплики.
Медленные операции именования
System.NamingService сообщает о состоянии первичной реплики, если операция именования занимает больше времени, чем допустимо. Примеры операций именования — CreateServiceAsync и DeleteServiceAsync. Дополнительные методы можно найти в статьях, посвященных FabricClient (например, в статье о методах управления службами или методах управления свойствами).
Примечание.
Служба именования присваивает имена служб определенному расположению в кластере, позволяя пользователям управлять именами и свойствами служб. Это разделённый сохраняемый сервис Service Fabric. Один из разделов представляет Authority Owner, который содержит метаданные обо всех названиях и службах Service Fabric. Имена Service Fabric сопоставляются с разными секциями, называемыми секциями Name Owner. Таким образом, служба является расширяемой. Узнайте больше о службе именования.
Когда операция именования длится дольше, чем ожидалось, она помечается как предупреждение в первичной реплике раздела службы именования, которая обслуживает эту операцию. Если операция завершается успешно, предупреждение снимается. Если операция завершается с ошибкой, отчет о работоспособности будет содержать сведения об ошибке.
- SourceId: System.NamingService.
- Свойство: начинается с префикса Duration_ и определяет медленную операцию и имя экземпляра Service Fabric, к которому применяется операция. Например, если создание службы с именем fabric:/MyApp/MyService занимает слишком много времени, то имя свойства — Duration_AOCreateService.fabric:/MyApp/MyService. "AO" указывает на роль раздела именования для этого имени и операции.
- Дальнейшие действия: проверьте, почему происходит сбой операции именования. У каждой операции могут быть разные коренные причины. Например, служба удаления может быть заблокирована. Служба может быть заблокирована, так как узел приложения постоянно аварийно завершается из-за ошибки пользователя в коде службы.
В следующем примере показана операция создания службы. Длительность операции превышает заданное время. "AO" повторяет попытку и отправляет работу на "NO". "NO" завершил последнюю операцию с параметром TIMEOUT. В этом случае одна и та же реплика является первичной для ролей "AO" и "NO".
PartitionId : 00000000-0000-0000-0000-000000001000
ReplicaId : 131064359253133577
AggregatedHealthState : Warning
UnhealthyEvaluations :
Unhealthy event: SourceId='System.NamingService', Property='Duration_AOCreateService.fabric:/MyApp/MyService', HealthState='Warning', ConsiderWarningAsError=false.
HealthEvents :
SourceId : System.RA
Property : State
HealthState : Ok
SequenceNumber : 131064359308715535
SentAt : 4/29/2016 8:38:50 PM
ReceivedAt : 4/29/2016 8:39:08 PM
TTL : Infinite
Description : Replica has been created.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 4/29/2016 8:39:08 PM, LastWarning = 1/1/0001 12:00:00 AM
SourceId : System.NamingService
Property : Duration_AOCreateService.fabric:/MyApp/MyService
HealthState : Warning
SequenceNumber : 131064359526778775
SentAt : 4/29/2016 8:39:12 PM
ReceivedAt : 4/29/2016 8:39:38 PM
TTL : 00:05:00
Description : The AOCreateService started at 2016-04-29 20:39:08.677 is taking longer than 30.000.
RemoveWhenExpired : True
IsExpired : False
Transitions : Error->Warning = 4/29/2016 8:39:38 PM, LastOk = 1/1/0001 12:00:00 AM
SourceId : System.NamingService
Property : Duration_NOCreateService.fabric:/MyApp/MyService
HealthState : Warning
SequenceNumber : 131064360657607311
SentAt : 4/29/2016 8:41:05 PM
ReceivedAt : 4/29/2016 8:41:08 PM
TTL : 00:00:15
Description : The NOCreateService started at 2016-04-29 20:39:08.689 completed with FABRIC_E_TIMEOUT in more than 30.000.
RemoveWhenExpired : True
IsExpired : False
Transitions : Error->Warning = 4/29/2016 8:39:38 PM, LastOk = 1/1/0001 12:00:00 AM
Системные отчеты о работоспособности DeployedApplication
System.Hosting — это управляющий развернутыми сущностями.
Активация
Система System.Hosting сообщает об отсутствии проблем, если приложение успешно активировано на узле. В противном случае отображается сообщение об ошибке.
- SourceId: System.Hosting.
- Свойство:Активация, включая версию выпуска.
- Дальнейшие действия: если в приложении есть проблемы с работоспособностью, выясните причину ошибки при активации.
Ниже приведен пример успешной активации.
PS C:\> Get-ServiceFabricDeployedApplicationHealth -NodeName _Node_1 -ApplicationName fabric:/WordCount -ExcludeHealthStatistics
ApplicationName : fabric:/WordCount
NodeName : _Node_1
AggregatedHealthState : Ok
DeployedServicePackageHealthStates :
ServiceManifestName : WordCountServicePkg
ServicePackageActivationId :
NodeName : _Node_1
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.Hosting
Property : Activation
HealthState : Ok
SequenceNumber : 131445249083836329
SentAt : 7/14/2017 4:55:08 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : The application was activated successfully.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
Загрузка
System.Hosting сообщает об ошибке, если скачивание пакета приложения завершается сбоем.
- SourceId: System.Hosting.
- Свойство:Загрузка, включая версию развертывания.
- Дальнейшие действия: выясните причину ошибки при скачивании на узле.
Системные отчеты о работоспособности DeployedServicePackage
System.Hosting — это авторитет в области развернутых сущностей.
Активация пакета службы
Система System.Hosting сообщает об отсутствии проблем, если пакет службы на узле успешно активирован. В противном случае отображается сообщение об ошибке.
- SourceId: System.Hosting.
- Свойство: Активация.
- Дальнейшие действия: выясните причину ошибки при активации.
Активация пакета кода
System.Hosting сообщает об отсутствии проблем, если каждый пакет кода успешно активирован. Если активация завершилась ошибкой, выводится заданное предупреждение. Если не удалось активировать CodePackage или этот элемент завершил работу с ошибкой, бoльшей, чем настроенное значение параметра CodePackageHealthErrorThreshold, хостинг сообщает об ошибке. Если пакет службы содержит несколько пакетов кода, для каждого из них создается отчет об активации.
- SourceId: System.Hosting.
- Свойство: использует префикс CodePackageActivation, а также содержит имя пакета кода и точку входа CodePackageActivation:CodePackageName:SetupEntryPoint/EntryPoint. Например, CodePackageActivation:Code:SetupEntryPoint.
Регистрация типа службы
System.Hosting сообщает об отсутствии проблем, если тип службы успешно зарегистрирован. Система выдает сообщение об ошибке, если регистрация не выполнена вовремя (настраивается с помощью параметра ServiceTypeRegistrationTimeout). При закрытии среды выполнения регистрация типа службы на узле отменяется и служба Hosting отображает предупреждение.
- SourceId: System.Hosting.
- Свойство: использует префикс ServiceTypeRegistration и содержит имя типа службы. Например, ServiceTypeRegistration:FileStoreServiceType.
Ниже приведен пример исправно работающего развернутого пакета службы.
PS C:\> Get-ServiceFabricDeployedServicePackageHealth -NodeName _Node_1 -ApplicationName fabric:/WordCount -ServiceManifestName WordCountServicePkg
ApplicationName : fabric:/WordCount
ServiceManifestName : WordCountServicePkg
ServicePackageActivationId :
NodeName : _Node_1
AggregatedHealthState : Ok
HealthEvents :
SourceId : System.Hosting
Property : Activation
HealthState : Ok
SequenceNumber : 131445249084026346
SentAt : 7/14/2017 4:55:08 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : The ServicePackage was activated successfully.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
SourceId : System.Hosting
Property : CodePackageActivation:Code:EntryPoint
HealthState : Ok
SequenceNumber : 131445249084306362
SentAt : 7/14/2017 4:55:08 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : The CodePackage was activated successfully.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
SourceId : System.Hosting
Property : ServiceTypeRegistration:WordCountServiceType
HealthState : Ok
SequenceNumber : 131445249088096842
SentAt : 7/14/2017 4:55:08 PM
ReceivedAt : 7/14/2017 4:55:14 PM
TTL : Infinite
Description : The ServiceType was registered successfully.
RemoveWhenExpired : False
IsExpired : False
Transitions : Error->Ok = 7/14/2017 4:55:14 PM, LastWarning = 1/1/0001 12:00:00 AM
Загрузка
System.Hosting сообщает об ошибке при скачивании пакета службы.
- SourceId: System.Hosting.
- Свойство:Загрузка, включая версию релиза.
- Дальнейшие действия: выясните причину ошибки при скачивании на узле.
Проверка обновления
System.Hosting сообщает об ошибке проверки во время обновления или об ошибке обновления на узле.
- SourceId: System.Hosting.
- Свойство: использует префикс FabricUpgradeValidation и содержит версию обновления.
- Описание: сведения о возникшей ошибке.
Неопределенная емкость узла для метрик управления ресурсами
System.Hosting сообщает о предупреждении, если емкости узла не определены в манифесте кластера и конфигурация автоматического обнаружения отключена. В Service Fabric возникает предупреждение о работоспособности, когда пакет службы, использующий систему управления ресурсами, регистрируется на указанном узле.
- SourceId: System.Hosting.
- Свойство:ResourceGovernance.
- Дальнейшие действия. Предпочтительный способ решения этой проблемы — изменение манифеста кластера, чтобы включить автоматическое обнаружение доступных ресурсов. Другой способ — обновление манифеста кластера, путем указания правильных значений емкости узла для этих метрик.