Share via


Get-ServiceFabricClusterHealthChunk

取得 Service Fabric 叢集及其子系的健康情況資訊。

Syntax

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>]

Description

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 除外,只有當節點為 [錯誤] 中的匯總健康狀態時,才會包含該節點。

範例 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。 只會傳回遵守最特定篩選的應用程式。 您可以指定個別應用程式或所有應用程式的篩選。 每個應用程式只允許一個一般篩選和一個篩選。

如果您未指定此參數,則不會傳回任何應用程式。

Type:System.Collections.Generic.List`1[System.Fabric.Health.ApplicationHealthStateFilter]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationHealthPolicies

指定 System.Fabric.Health.ApplicationHealthPolicyMap ,其中包含部分或所有應用程式的自訂健康情況原則。 如果您未指定此參數,或者如果您未在應用程式的對應中包含專案,則會使用應用程式資訊清單中定義的應用程式健康情況原則來評估該應用程式,否則為預設原則。

Type:ApplicationHealthPolicyMap
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationTypeHealthPolicyMap

指定對應,定義每個應用程式類型允許之狀況不良應用程式的最大百分比。 此對應中的應用程式類型是使用特定百分比來評估,而不是全域 MaxPercentUnhealthyApplications 百分比。

例如,如果類型的某些應用程式很重要,叢集管理員可以將專案新增至該應用程式類型的對應,並將值指派為 0% (,請勿容忍任何失敗) 。 所有其他應用程式都可以使用 MaxPercentUnhealthyApplications 設定為 20% 來評估,以容許數千個應用程式實例中的某些失敗。

只有在叢集資訊清單使用 HealthManager/EnableApplicationTypeHealthEvaluation 的設定項目啟用應用程式類型健康情況評估時,才會使用應用程式類型健康原則對應。

Type:ApplicationTypeHealthPolicyMap
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConsiderWarningAsError

指出是否要在健康情況評估期間將警告健康情況報告視為錯誤。 此值用於評估節點和叢集健康情況報告。

如果未指定任何叢集健康情況原則參數,則健康情況評估會使用叢集資訊清單中的叢集健康情況原則、如果有的話,或容許沒有失敗的預設原則。

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxPercentUnhealthyApplications

指定狀況不良應用程式的最大容許百分比。 如果有比容許的匯總健康狀態更多的應用程式,則叢集的健康狀態為 Error。

如果未指定任何叢集健康情況原則參數,則健康情況評估會使用叢集資訊清單中的叢集健康情況原則、如果有的話,或容許沒有失敗的預設原則。

Type:Byte
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxPercentUnhealthyNodes

指定狀況不良節點的最大容許百分比。 如果節點的匯總健康情況狀態比容許的還要多,則叢集會評估為 Error。 如果您未指定此參數,健康情況評估會使用叢集資訊清單中提供的值。

如果未指定任何叢集健康情況原則參數,則健康情況評估會使用叢集資訊清單中的叢集健康情況原則、如果有的話,或容許沒有失敗的預設原則。

Type:Byte
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NodeFilters

指定System.Fabric.Health.NodeHealthStateFilter物件的Systems.Collections.Generic.List。 只會傳回符合最特定篩選準則的節點。 您可以指定個別節點或所有節點的篩選。 每個節點只允許一個一般篩選和一個篩選。 如果您未指定此參數,則不會傳回任何節點。

Type:System.Collections.Generic.List`1[System.Fabric.Health.NodeHealthStateFilter]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NodeTypeHealthPolicyMap

針對特定節點類型,定義具有最大百分比狀況不良節點的對應。

節點類型的健康狀態原則對應,可用於在叢集健康狀態評估期間描述特殊的節點類型。 對應中包含的節點類型會根據對應中包含的百分比進行評估,而且全域 (請參閱 System.Fabric.Health.ClusterHealthPolicy.MaxPercentUnhealthyNodes) 。 對應中指定的節點類型節點也會計入節點的全域集區;它們是獨立的檢查。

Type:NodeTypeHealthPolicyMap
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TimeoutSec

指定作業的逾時期間,以秒為單位。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

None

輸出

System.Object