你当前正在访问 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 之外的所有节点,只有在节点 N0010 处于“错误”中的聚合运行状况状态时才应包含这些节点。

示例 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