你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Get-ServiceFabricClusterHealthChunk

获取 Service Fabric 群集及其子级的运行状况信息。

语法

Get-ServiceFabricClusterHealthChunk
   [-ConsiderWarningAsError <Boolean>]
   [-MaxPercentUnhealthyApplications <Byte>]
   [-MaxPercentUnhealthyNodes <Byte>]
   [-ApplicationHealthPolicies <ApplicationHealthPolicyMap>]
   [-ApplicationTypeHealthPolicyMap <ApplicationTypeHealthPolicyMap>]
   [-NodeTypeHealthPolicyMap <NodeTypeHealthPolicyMap>]
   [-ApplicationFilters <System.Collections.Generic.List`1[System.Fabric.Health.ApplicationHealthStateFilter]>]
   [-NodeFilters <System.Collections.Generic.List`1[System.Fabric.Health.NodeHealthStateFilter]>]
   [-TimeoutSec <Int32>]
   [<CommonParameters>]

说明

Get-ServiceFabricClusterHealthChunk cmdlet 按高级输入筛选器请求获取 Service Fabric 群集和群集实体的运行状况信息。 默认情况下,不会返回任何子实体。 如果指定,则以分层方式返回尊重输入的所有实体。

Service Fabric 报告以下运行状况。

  • 没问题。 实体符合运行状况准则。
  • 错误。 该实体不符合运行状况准则。
  • 警告。 实体符合运行状况准则,但遇到一些问题。

群集的聚合运行状况状态会考虑群集上的所有运行状况报告以及所有子项的聚合运行状况状态,递归方式。 运行状况评估使用群集运行状况策略和群集中每个应用程序的应用程序运行状况策略。 可以将群集的运行状况策略和应用程序评估作为输入传递。 如果未指定,则运行状况评估使用群集和应用程序清单中适用的运行状况策略(如果指定清单);否则使用默认策略。

群集运行状况区块仅包含输入筛选器中指定的感兴趣的子级。 筛选是在服务器端完成的,因此消息大小会最小化。

如果请求的输出不适合消息,则不会返回任何结果。

在 Service Fabric 群集上执行任何操作之前,请使用 Connect-ServiceFabricCluster cmdlet 建立与群集的连接。

示例

示例 1:使用节点筛选器获取群集的运行状况

PS C:\> $ErrorFilter = [System.Fabric.Health.HealthStateFilter]::Error
PS C:\> $AllFilter = [System.Fabric.Health.HealthStateFilter]::All
PS C:\> $NodeFilter1 = New-Object System.Fabric.Health.NodeHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $NodeFilter2 = New-Object System.Fabric.Health.NodeHealthStateFilter -Property @{NodeNameFilter="N0010";HealthStateFilter=$ErrorFilter}
PS C:\> $NodeFilters = New-Object System.Collections.Generic.List[System.Fabric.Health.NodeHealthStateFilter]
PS C:\> $NodeFilters.Add($NodeFilter1)
PS C:\> $NodeFilters.Add($NodeFilter2)
PS C:\> Get-ServiceFabricClusterHealthChunk -NodeFilter $NodeFilters

此命令查询群集的运行状况。 它指定筛选器以返回除节点 N0010 之外的所有节点,仅当节点为 Error 中的聚合运行状况状态时,才应包含该节点。

示例 2:使用已部署实体筛选器获取群集的运行状况

PS C:\> $ErrorFilter = [System.Fabric.Health.HealthStateFilter]::Error
PS C:\> $AllFilter = [System.Fabric.Health.HealthStateFilter]::All
PS C:\> $DspFilter1 = New-Object System.Fabric.Health.DeployedServicePackageHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $DaFilter1 =  New-Object System.Fabric.Health.DeployedApplicationHealthStateFilter -Property @{HealthStateFilter=$AllFilter;NodeNameFilter="N0020"}
PS C:\> $DaFilter1.DeployedServicePackageFilters.Add($DspFilter1)
PS C:\> $AppFilter = New-Object System.Fabric.Health.ApplicationHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $AppFilter.DeployedApplicationFilters.Add($DaFilter1)
PS C:\> $AppFilters = New-Object System.Collections.Generic.List[System.Fabric.Health.ApplicationHealthStateFilter]
PS C:\> $AppFilters.Add($AppFilter)
PS C:\> Get-ServiceFabricClusterHealthChunk -ApplicationFilters $AppFilters

此命令查询群集的运行状况。 它指定筛选器以返回指定节点上的所有应用程序和已部署的应用程序和已部署的服务包, (N0020) 。

示例 3:使用包含递归内部筛选器的应用程序筛选器获取群集的运行状况

PS C:\> $ErrorFilter = [System.Fabric.Health.HealthStateFilter]::Error
PS C:\> $AllFilter = [System.Fabric.Health.HealthStateFilter]::All
PS C:\> $ReplicaFilter1 = New-Object System.Fabric.Health.ReplicaHealthStateFilter -Property @{ReplicaOrInstanceIdFilter= 130984777977143495;HealthStateFilter=$ErrorFilter}
PS C:\> $ReplicaFilter2 = New-Object System.Fabric.Health.ReplicaHealthStateFilter -Property @{HealthStateFilter=$AllFilter}

PS C:\> $PartitionFilter = New-Object System.Fabric.Health.PartitionHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $PartitionFilter.ReplicaFilters.Add($ReplicaFilter1)
PS C:\> $PartitionFilter.ReplicaFilters.Add($ReplicaFilter2)

PS C:\> $SvcFilter1 = New-Object System.Fabric.Health.ServiceHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $SvcFilter1.PartitionFilters.Add($PartitionFilter)

PS C:\> $AppFilter = New-Object System.Fabric.Health.ApplicationHealthStateFilter -Property @{ApplicationNameFilter="fabric:/app1"}
PS C:\> $AppFilter.ServiceFilters.Add($SvcFilter1)

PS C:\> $AppFilters = New-Object System.Collections.Generic.List[System.Fabric.Health.ApplicationHealthStateFilter]
PS C:\> $AppFilters.Add($AppFilter)
PS C:\> Get-ServiceFabricClusterHealthChunk -ApplicationFilters $AppFilters

此命令查询群集的运行状况。 它指定仅返回应用程序的筛选器。 筛选器返回所有应用程序服务,对于每个服务,它将返回所有分区。 对于每个分区,它包括除130984777977143495之外的所有副本,仅当它处于错误状态时才应返回。

参数

-ApplicationFilters

指定 System.Fabric.Health.ApplicationHealthStateFilter 对象的 Systems.Collections.Generic.List。 仅返回符合最特定筛选器的应用程序。 可以为单个应用程序或所有应用程序指定筛选器。 每个应用程序只允许一个常规筛选器和一个筛选器。

如果未指定此参数,则不返回任何应用程序。

类型:System.Collections.Generic.List`1[System.Fabric.Health.ApplicationHealthStateFilter]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ApplicationHealthPolicies

指定 System.Fabric.Health.ApplicationHealthPolicyMap ,其中包含部分或所有应用程序的自定义运行状况策略。 如果未指定此参数,或者未在应用程序的映射中包含条目,则会使用应用程序清单中定义的应用程序运行状况策略(如果存在)或默认策略进行评估。

类型:ApplicationHealthPolicyMap
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ApplicationTypeHealthPolicyMap

指定定义每个应用程序类型允许的不正常应用程序的最大百分比的映射。 此映射中的应用程序类型使用特定百分比而不是全局 MaxPercentUnhealthyApplications 百分比进行评估。

例如,如果某个类型的某些应用程序至关重要,群集管理员可以向该应用程序类型的映射添加一个条目,并为其分配值为 0% ((即,不允许任何故障) )。 可以使用 MaxPercentUnhealthyApplications 设置为 20% 评估所有其他应用程序,以容忍数千个应用程序实例中出现某些故障。

仅当群集清单启用应用程序类型运行状况评估的配置条目用于 HealthManager/EnableApplicationTypeHealthEvaluation 使用应用程序类型运行状况策略映射。

类型:ApplicationTypeHealthPolicyMap
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ConsiderWarningAsError

指示是否在运行状况评估期间将警告运行状况报告视为错误。 此值用于评估节点和群集运行状况报告。

如果未指定任何群集运行状况策略参数,则运行状况评估将使用群集清单中的群集运行状况策略(如果存在)或允许不失败的默认策略。

类型:Boolean
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MaxPercentUnhealthyApplications

指定不正常应用程序的最大容忍百分比。 如果存在与容忍的聚合运行状况状态相比更多的应用程序,则群集的运行状况状态为 Error。

如果未指定任何群集运行状况策略参数,则运行状况评估将使用群集清单中的群集运行状况策略(如果存在)或允许不失败的默认策略。

类型:Byte
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MaxPercentUnhealthyNodes

指定不正常节点的最大容忍百分比。 如果节点的聚合运行状况状态比可容忍的节点多,则群集的计算结果为“错误”。 如果未指定此参数,运行状况评估将使用群集清单中提供的值。

如果未指定任何群集运行状况策略参数,则运行状况评估将使用群集清单中的群集运行状况策略(如果存在)或允许不失败的默认策略。

类型:Byte
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-NodeFilters

指定 System.Fabric.Health.NodeHealthStateFilter 对象的 Systems.Collections.Generic.List。 仅返回遵循最特定筛选器的节点。 可以为单个节点或所有节点指定筛选器。 每个节点只允许一个常规筛选器和一个筛选器。 如果未指定此参数,则不返回任何节点。

类型:System.Collections.Generic.List`1[System.Fabric.Health.NodeHealthStateFilter]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-NodeTypeHealthPolicyMap

定义特定节点类型的最大百分比不正常节点的映射。

节点类型运行状况策略映射可以在群集运行状况评估期间用于描述特殊的节点类型。 映射中包含的节点类型根据映射中包含的百分比进行评估,并且全局 (也查看 System.Fabric.Health.ClusterHealthPolicy.MaxPercentUnhealthyNodes) 。 映射中指定的节点类型的节点节点也根据节点的全局池进行计数:它们是独立的检查。

类型:NodeTypeHealthPolicyMap
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-TimeoutSec

指定操作的超时时间段(以秒为单位)。

类型:Int32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

None

输出

System.Object